October 13, 2012
John Wright, Rover Planner for Mars Curiosity Rover from JPL
For the October meeting, we were fortunate to welcome John Wright, who is a Rover Planner at JPL for the Mars Curiosity Rover.
Hardware
First, John reviewed the spectacular landing with the aid of a very detailed CGI video of the landing. He then moved on to cover several aspects of the basic rover mechanics and instrumentation.
- Curiosity is powered by a Radioisotope Thermal Generator (RTG), which will fuel the rover for at least the prime mission, which is 1 Mars year, or about 23 Earth months. The power is about 2500 Whr, compared to about 800 Whr for the previous rovers that used solar arrays. This allows about 30 – 40 meters of travel per sol (the time from sunrise-to-sunrise on Mars is about 24 hours and 39 minutes).
-
The mast assembly has a total of seven cameras / imaging devices:
- Two stereo pairs for navigation that do all on-board processing, which takes about 45s, before acquiring another image.
- A 5 degree field-of-view and 15 degree FOV camera, each with its own CPU and memory.
- The “ChemCam,” which is a laser blaster that can evaporate rock, along with a remote micro imager (spectrometer) for chemical analysis.
- The robotic arm has a turret with several instruments, such as a drill, scoop, sieve, high resolution camera (MAHLI), and X-Ray spectrometer. This allows the rover to acquire a sample, do sifting to obtain 150um particles, and drop them into an inlet.
- Through the inlet, the rover has a large number of sample cells to prevent cross-contamination. Each can be analyzed using X-Ray diffraction to determine mineral structure.
- In addition, there are instruments for soil and atmospheric analyses, radiation detectors, and a neutron measureing device.
Software
Next John moved to the software side, which he is responsible for.
- The rover is controlled through either Java or C++ through a message passing interface.
- The software consists of about 1 million lines of code, developed by 4 coders. Some of the code is borrowed from previous rover missions.
- The main command builder, which is kind of like an IDE, is written in Java. The application for visualization and simulation of the rover is based on C++ / Coin / Open Inventor / Qt.
- The robot has a frame manager to manage coordinate frames of the arm, instruments, etc., and has a self-collision model. Because the turret is so heavy, it causes about 7cm of droop in the arm when extended, which means that rigid body mechanics cannot be used without corrections. The weight also causes body to shift.
- The navigation cameras can build a terrain model about 30m ahead, providing visual odometry. The rover stops about once per meter between taking terrain images. In addition, an IMU provides roll-pitch-yaw information, and also allows correlation with the gravity vectors. The camera also allows tracking the sun, which with time can be converted to latitude/longitude data. There are also corrections for slip and sinking of the wheels, which can induce errors in position.
Author's Note : Much of the software is similar to ROS. ROS also uses a message passing interface that allows control using C++, Java, Python, Lisp, and other languages. The simulation software is very similar to RViz (and maybe Gazebo), and the frame manager sounds much like /tf.
Wrapping Up
Afterward was a lengthy Q&A session, most of which was wrapped into the above notes. John began as a ChemE, before returning to school for a M.S. in Computer Science. This moved onto him working on flight simulators and 3D graphics, and then later to JPL. He also showed some videos of one of his favorite projects, the NASA Athlete Robot.
Business Meeting
Announcements
Riverside Robotics Expo - Thomas spoke to everyone again about the Riverside Robotics Expo, which will take place 11/3/2012 from 12pm - 4pm. Please contact him if you would like to participate ASAP.
Check out this link for more information!
Current sample of some parties / exhibits attending the Expo
- OC Mini Maker
- Robotis / Soccer / Dancing
- Prof. Mason : candy grabbing arm, squirrel hunter
- Walter : battlebot and RSSC table. Members, bring your robots for display!
December Meeting - There was some discussion about having a potluck type lunch. Stay tuned for more details.
Upcoming Classes (11:00 – 12:00)
Month | Class | Presenter |
November 10 | Bioloid | Prof Mason and Jinux from Robotis |
December 8 | EZ Robot | Thomas |
Upcoming Competitions:
December - Annual Robot Talent Contest
Line Following Robot Competition
Our first Line Following Competition of the year took place this month.
For the full account, please follow this link : Line Following Robot Competition (October 2012)
Show and Tell
Gary
Gary showed a "string pot" that he created, which acts as an absolute linear encoder. It basically consists of a keychain extender, pulley, and 10-turn trimpot mounted on a metal plate. Instead of purchasing an encoder for $250 - $400, Gary made this sensor for about $25!
Jinux
Jinux showed some work he had done on a Halloween candy dispenser. It uses a servo to pop up a little monster/dude and make a sound when you clap 3 times. This sits inside the normal plastic pumpkin.
Martin
Martin quickly reviewed the Energia project, which is a port of the Arduino IDE to support the TI MSP430. He said this will also support TI's new ARM Cortex board, which is selling now for about $14. For the IDE, check out http://energia.github.com/Energia/ and for more info on the Stellaris ARM board see http://www.ti.com/tool/ek-lm4f120xl. He wrote a tutorial on getting started here http://profmason.com/?p=2001
James
James displayed a project he was working on to log temperature and humidity in a server closet at work. It is based on Arduino, with an Ethernet shield (primariliy for SD card support), a real-time clock, LCD display, and the obvious temp/humidity sensor. It logs every 1 to 5 minutes.
Thomas
Thomas covered his sore disappointment at the Solidoodle 3D Printer. Before you even think about getting one, read his review here : http://www.robots-and-androids.com/solidoodle-review.html