Feb 132011
 

Yesterday, at the Robotics Society of Southern California meeting (http://www.rssc.org/), I taught a class about ROS, the Robot Operating System from Willow Garage. In the first part of the presentation (slide deck as pdf file) I focused on generic ROS functionality. For the second half of the presentation I switched to demo mode using the current state of ‘Ardros’, my new Arduino based robot that is controlled via ROS, as a practical example for how ROS can benefit hobby roboticists. Here is a portrait of Ardros decorated with the artsy head that my sister created :-).

ArdrosRobot20110213

Ardros currently publishes odometry and tf transform information as required for future integration with the ROS navigation stack (see http://www.ros.org/wiki/navigation/Tutorials/RobotSetup). In addition it subscribes to the topic cmd_vel to accept velocity commands. The robot can be remotely controlled with a wireless PS3 controller. I use a teleop node that translates joystick messages to properly configured Twist messages to send drive commands to the robot as illustrated in the block diagram below. The teleop concept is explained inhttp://www.ros.org/wiki/ps3joy/Tutorials/WritingTeleopNode.

BlockDiagram

All the code is open source and can be downloaded from the Google code project http://code.google.com/p/drh-robotics-ros/. I expect the code to evolve quite a bit in the future. To see the code that matches the presentationrevision 51 should be used. The Arduino controller code resides in the folder \Arduino; the Python code for the ROS nodes is located in the folder \ros\ardros. Mike Feguson’s ArbotiX base_controller.py code was a great help for me and not surprisingly the code of my arduino node borrows heavily from Mike Feguson’s implementation (see http://www.ros.org/wiki/arbotix_python).

Jan 162010
 

In my first post about a self-balancing two-wheeled robot I introduced the prototype. Now it is time for the beginnings of the construction of the ‘real’ thing. This post focuses on the platform. In order for it to be sturdy enough to eventually let a human ride on it, I opted for a pair of wheelchair motors with wheels that I bought used from ebay. The pictures show the dimensions (inches) of one of the Pride Jet motors with the attached gear box.

2009-12-30-18-18-12-028-cropped-small   2009-12-30-18-19-42-030-cropped-small

The motors come with an electric brake attached at the end opposite to the gearbox. In the photos the black bowl shaped cover and the electric brake (still attached to two white wires) have been removed from the motor. Instead of the brake I will attach wheel encoders (more about this in a later post). The matching wheels came with the motor.

2009-12-30-19-45-24-031-cropped-small

In a wheelchair the motors are mounted horizontally. However, in order to gain more ground clearance I decided on a vertical mount for the robot. The next pictures show the assembled wooden base of the robot.

2010-01-05-16-36-00-002-cropped-small 2010-01-05-16-37-54-004-small
2010-01-05-16-38-28-006-small

The gearboxes are attached to a board on the underside of the round base board. On the top of the base board, behind the motors that stick out from below, two sealed lead acid AGM (Absorbed Glass Matt) batteries are mounted. The off center configuration balances out most of the motors’ weight. The two batteries, model RBC6 12V 12Ah SLA Sealed Lead Acid AGM, are offered by Battery Geek on ebay for US $31 plus US $12 shipping.

This covers the construction of the base. Apart from the motors and the batteries all materials can be bought in a local hardware store.

Next I will work on the electrical system and the electronics. Stay tuned …