The goal and purpose of this project is building a robot with the following features:
- Inexpensive. The overall investment into this project should not exceed $150
- The project should reuse stuff you typically can find at home to make the price even lower
- The project should be extensible, so you can add your own functionality later
- The resulting robot should be capable of working in both teleoperated (like an R/C toy) and programmable modes
- The project has to be fun
- The project has to be educational
- The project has to be easy to accomplish. Estimated effort for this project is about 8 hours, but really depends on your qualifications.
- The resulting robot should be easy to program. Instead of specialized programming tools, languages and devices you can use plain Linux shell script language to control it. You can also use any other programming language you like.
Robot is basically a combination of a computer and mechanics. For computer I decided to use Linksys WRT54GL router available in most households. You can actually use any Linux-capable router for this. Since I’m using OpenWRT Linux as the robot operating system all openwrt-compatible hardware can be used for this robotics project. You can find the list of compatible devices here: http://wiki.openwrt.org/TableOfHardware.
The project description is split into a series of posts. One part per day seems to be a reasonable pace, so overall this project will take you about one weekful of evenings. Here’s the project plan:
- Get parts and tools
- Upgrade your router so it can control servos
- Reflash your router with new “routerbot” OS
- Test basics and assemble your robot
- Attach a wireless video camera
- Configure your Routerbot
You can see one of the versions of the routerbot on this video:
Also you can see it in the Routerbot v1 gallery
As you can see on the video the v1 has some limitations like the camera sends video to TV, instead of browser, the robot doesn’t have sensors etc. If you those features you might want to take a look at the routerbot v2. It is more expensive, but also way more functional. Also you can use v2 OS for v1, just edit /routerbot/version.sh file and change the version to “1″. This will give you web interface for v1 too.
For reference here is the full list of commands available for the routerbot. This set is actually available in v2, but as it was mentioned before you can run OS v2 on Routerbot v1.
- cmd() – executes a command in terms of SSC-32 servo controller
- get_distance() – returnes the distance to the object the camera is looking at
- init_robot() – initializes robot
- set_camera_speed() – sets the camera speed
- set_engine_speed() – sets the engine speed
- look() – changes the camera position (up|down|ahead|back|forward|left|right|higher|lower|lefer|righter)
- lookat() – positions the camera absolutely (lookat )
- halt_camera() – stops the camera movement
- halt_engine() – stops the engine movement
- halt() – stops all robot movement at once
- reset_camera() – positions the camera to look forward
- fast_reset_camera() – quickly moves the camera to default position
- stop() – stops roubot movement (not camera)
- go() – moves robot forward or backward (go forward|backward )
- turn() – makes the robot turn (turn left90|right90|left|right|left_cont|right_cont|left180|right180|around)
- say() – make robot “say” something (say yes|no)
- on() – sets the line high. For instance “on 15″ can turn on lights connected to PWM 15
- off() – sets the line low. For instance “off 15″ can turn off lights connected to PWM 15
- camera_lights_on() – turns on the camera headlights
- camera_lights_off() – turns off the camera headlights
- bottom_lights_on() – turns on the bottom lights
- bottom_lights_off() – turns off the bottom lights
- rangefinder_on() – turns on the range finder
- rangefinder_off() – turns off the rangefinder
- poweroff_robot() – turns off the routerbot
- reboot_robot() – reboots the routerbot
- emo() – make robot express an emotion (emo shy|excited)
And, before you continue building your robot please be aware that …
… by following these instructions you acknowledge that you’re making modifications to your valuable equipment (the router) that are not approved or even imagined by the manufacturer. The modifications you’re going to make will definitely void your warranty and possibly will turn your router into a nice-looking non-functional plastic brick. By publishing the articles about turning the router into a robot I’m only sharing my personal experience. If you’re going to do similar horrible things to your router you should take full responsibility for all deep-fried processors, burned pieces of silicon, melted plastic and other side effects of your curiosity. I’m not responsible for that. That is all your fault!
14 Responses to “Routerbot v1”
Leave a Reply
You must be logged in to post a comment.