SlyWare Home | Products | Downloads | Free Source Code | Current Projects | Articles and Papers | About |
|
|||||||
Introduction | Progress | Robots | Control Software (RaSCL) | Robotics Resources | |||||||
Big boys toys...
It's a bit of a guts dragger currently; I'll wait till a later phase to mount everything!
|
Project SlyBot IntroductionQuick Introduction
I will post here pictures and videos of the robots, and details of what has been learnt along the way. In due time I will make the control software available to aid others in their own robotics adventures! Aims and ScopeThe overall aim is:
Hardware wise, initially the robot will be built from technic Lego, use SuperTek/GWS servos and a 12 channel servo driver. As things develop it will use a Sharp Zaurus (running Linux) to host the control software, and use an I2C servo controller and sensors for input. Goto Top |
||||||
Build schedule likely to change due to work commitments!
|
Build Project ProgressThe following outlines roughly where I want this project to go. I've split the development into a number of phases, each providing a significant advance in functionality over the previous.
Further phases will follow! Goto Top |
||||||
|
Developed Robots
Goto Top |
||||||
RaSCL: Hum, somewhat fitting logo don't you think ;-)
|
Control Software (RaSCL)RaSCL - Robotics and Sensorial Control LanguageOne of the main drivers I have for this SlyBot project is to experiment with control software. My background is in software, but whilst I have been developing SlyBot one hurdle I've had is the hardware and electronics side. For other robotics hobbyists and enthusiasts, the barrier may be automation; they have a robot, but no idea how to get it to do something useful! This is where RaSCL comes in; Robotics and Sensorial Control Language. RaSCL is a high level yet powerful language to aid interaction between a PC/PDA and servos/sensors. It is by no means meant to be embedded; it aims to provide a generic platform to develop algorithms such as walking gait and collision avoidance, and present them in a markup that users can swap and customise. For SlyBot I will be running this software on a Linux based Zaurus PDA. However, the major advantage this has is that an interpreter will also be available for Windows, so you can prototype your own control software on the desktop. My goal here is so that users with a servo controlled robot can download the interpreter, configure their controller encodings (or use a pre-defined one), plug in the serial cable, and call the in-built routines to get their bot to move! They are then free to customise the routines to their needs. Learn more from my RaSCL project page! RaSCL - Language Outline
Short RaSCL Code ExampleThe following gives a flavour for the language: this function sets all configured servos to a given position at a given speed, and waits for all servos to complete their move before returning. To make sense of the following you may need to know:
Learn more from my RaSCL project page! (::*complex_function set_all_servos) # Split out params - icar extracts an item from a given list index position (::= .lPos (icar func_args 0)) (::= .lSpeed (icar func_args 1)) # Following defines a variable to be the empty list (::= .lTimes {}) # For each servo (::foreach gBotServos) # Each servo pointer will be in iItem - split it out (::= .lEntry iItem) (::= .lServo (dynamic_cast (car lEntry))) # This instructs the servo to move. The setpos method on a Servo object returns the # time it will take to move that servo, given its last position and the specified speed. # The resulting times are appended to the end of the lTimes list. (::= .lTimes (carpush (*lServo::setpos (list lPos lSpeed)) lTimes)) (::endforeach) # Sleep until the servo with the longest distance to move has completed. (::sleep (max lTimes)) (::endfunc)Goto Top |
||||||
|
Robotics Resources
Tutorials/Guides Zaurus PDA Lego! |
||||||
Last Updated /projects_slybot.shtml (21263 bytes) on Mar 22 at 2005 | |||||||
|