August 11, 2012
Dr. Rainer
Class : ROS / Arduino Integration
ROS is an open source "Robot Operating System" that offers a vast amount of complex software modules such as navigation, mapping, simulation, motion planning, and distributed processing, to name just a few. Arduino is an open hardware design that vastly lowers the barrier of entry to microncontroller programming, giving users easy access to reading sensors and controlling actuators.
Dr. Rainer presented his solution to merge these two amazing projects by implementing a serial communication protocol between the two, which allowed him to build his own hardware for a robot with navigation and mapping capabilities (see picture below). During his talk, he presented code that will read an analog value from a potentiometer and convert this to a ROS message on a laptop. He also showed a ROS node that takes messages, converts them to Arduino format, and allows controlling the position of a servo.
You can find much more information on Dr. Rainer's blog located here : http://www.hessmer.org
His original blog post on the serial communications is here : http://www.hessmer.org/blog/2010/11/21/sending-data-from-arduino-to-ros/
And finally, the files from his presentation are downloadable here : ros_to_serial.zip
Business Meeting
Old / New Business
Walter thanked all of those who came to represent RSSC at the Mini Maker Faire last month. I will post some pictures soon as minutes for the July meeting.
There was a poll of interest in teaching a class for kids, such as soldering or building a small robot.
Discussion about upcoming classes and contests.
Announcements
We are now in room 302 effective today.
Upcoming Classes (11:00 – 12:00)
Month | Class | Presenter |
September 8 | TI MSP-430 | Jim / John |
Otober 13 | ROS Launch Files | Doug / Bruce |
Upcoming Competitions:
September - Walking robot competition
December - Annual Robot Talent Show
Show and Tell
Prof. Mason
Martin discussed his work to build the cheapest robot possible, for educational purposes. It is a BOE-Bot "clone" gone Arduino. In this rendition, he is using peanut butter jar lids for wheel, with rubber bands for traction. One challenge is reducing the servo cost. He found servos from Hobby King in the US for $3.25 each (here is the link Hobby King Standard Servo). Although it is a standard servo, it can be easily modified for continuous rotation, as he demonstrated. Simply remove the back, cut the tab off the main gear, center the servo (pot), and then cut off the pot adjustment know, and put it back together!
Martin also showed a small robot for sumo battles. It is based on a chassis from FingerTech (link) and uses a Pololu Orangutan controller (Baby Orangutan).
Dr. Bruce
This week Dr. Bruce showed his update on Leaf 2.0. He is using Phidget encoders and motor control boards, a Kinect, and a Zagros wheeled base. He has it up to the point that he can control the robot using a joystick (cordless rumblepad).
The joystick connects wirelessly to a USB plug, and is read by a joystick node (from ROS) that publishes a range of -1 to 1. This is connected to the clearpath_teleop node, which sends cmd_vel messages to a motor controller node (phidgets), which eventually translates the -1 to 1 range on the joystick to 0 to 100% PWM of the motors.
Additionally, the encoders are read by an encoder node (phidgets), which publishes to a ROS odometry node. The odometry publishes messages that the motor control board listens to, and uses a PID control loop to adjust the velocity to that requested by the joystick.
The next step is to get navigation working, but overall Dr. Bruce is happy that everything is now functioning and he can control the robot's motion.
Doug
Doug gave an overview of a bipedal walking robot that he's started working on. It's based on an article series that started in Servo Magazine - February 2011 issue. That article outlined the concept of a "big walker" that is adult sized. The feet use 3 load cells, which can be used to balance weight on the foot using center of mass. He found a website that discusses reading a load cell with an Arduino using a TI INA125 chip, and got that working. Upon asking for some feedback on selecting an instrumentation amplifier based on the many criteria, the feedback was that a single-supply amplifier should work, and that bandwidth, etc. will not matter much as the signals are not varying quickly.
Here is a link to the load cell read out with Arduino : http://cerulean.dk/words/?page_id=42
And here is a link to the Phidgets site, where the 20kg load cells were purchased : http://www.phidgets.com/products.php?category=3
Jim
Jim attended the AUVSI conference (http://www.auvsi.org) and gave a brief report. You can see the website for details, but in summary, there is a lot of discussion going on about how to sell more UAV's when we have wars that are ending, and a lot of politics, privacy, and safety issues with UAV's flying around in common airspace. Regardless, it's only a matter of time, but the challenge will be preventing collisions of these vehicles with commercial aircraft, buildings, and in the worst case pedestrians.
One of the highlights that Jim mentioned was a hand shown by HDT (link). It is a variation of the Belgrade hand developed at USC. For more info on this topic, check out this article (http://www.wired.com/gadgetlab/2008/09/robotic-hands-h/)
Jim also showed his upgraded walking robot, that has an IR sensor to detect the edge of a table, at which point it will walk backwards. This is in addition to the bump sensors.
John
John quickly showed off a TI MSP 430 development board, that costs only $4.30. It has a programmer side (USB interface, debugging system) and a microcontroller side. It is designed for very low power applications, and can run on 3V. He and Jim are going to give a class on this MCU next month.
Tim
Tim demonstrated operation of a 9 degree of freedom IMU available from SparkFun (9 Degrees of Freedom - Razor IMU). The nice thing about this IMU, unlike some less expensive models, is that is has a microncontroller on it that is programmable, so it outputs Roll, Pitch, and Yaw on its own. Sergei noted that quaternions are much better since they do not have critical points where angles go to zero/infinity. But of course, the disadvantage is that you have to use quaternions.