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 :-).


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.


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).

  3 Responses to “ROS Indroduction Class with Ardros”

  1. I am recently switching to arduino and wonder what driver/code/stack you using for communication over ethernet to the arduino.

    How are you getting along?

  2. I only use serial communication which is built into the Arduino board and very well supported. Communication over ethernet would require an extra shield.

  3. Hello, I am a beginner for Arduino and ROS. I am not sure that how can I apply some received joystick signal from by using ROS rxconsole to Arduino. I am not understand how can I use Ardros package between Arduino and joy package. Thanks a lot

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>