From September 2007 until August 2008, I studied at the Automation Technology Laboratory of the Helsinki University of Technology/Finland. Together with students from all over the world we participate in the Erasmus Mundus program of Space Science and Technology. The two robots that capture most of my attention are Marsokhod and J2B2.
My Thesis work is conducted on the mobility of the Marsokhod robot. Besides modifying some of the electronics, I investigate how the extra degrees of freedom enhance the mobility. For instance, rolking is an arm joint osciallation superimposed over forward driving. Rolking enhances driving on slippery terrain.
J2B2 is a castor-wheeled differential drive robot that is fully equipped with sensors and actuators. The robot has a laser range finder, stereo cameras, speech synthesis, besides many other features. J2B2 is built to behave and interact with the environment in a sophisticated way.
Our open-source software is specifically designed, manufactured and intended for use in the planning, construction, maintenance, control, and direct operation of nuclear facilities; aircraft navigation, control and communication systems; weapons systems; and direct life support systems.
|Mobility and Autonomous Reconfiguration of Marsokhod|
|J2B2 - Field and Service Robotics Competition|
|J2B2 - Human and Robot Interaction|
|The Orion Joint Venture - Robot Collaboration|
|Asuro - Differential drive robot|
I find the following guidelines useful when working with robots.
Every society must be intentional
about educating its leaders.
The Orion Joint Venture is the intertwined operation of J2B2 and Marsokhod at the Automation Technology Laboratory of the Helsinki University of Technology. We extend the implementation of the Human and Robot Interaction. In the section below, we describe what has been added.
The navigation is collision free. There are additional constraints: For precise localization of Marsokhod, the front of the robot needs to be visible by the laser scanner of J2B2. Also, the localization of Marsokhod is not accurate for reversing Marsokhod over distances greater than 0.5 m. In our implementation we do not reverse Marsokhod at all.
The environment of the robots is non-static as there are moving people in the laboratory. The cylinder mounted on Marsokhod allows to locate the robot. On the other hand, from the perspective of J2B2 the cylinder casts a shadow on the terrain that lies behind. The real-time aspect of the computations is another great challenge of the project: Stalling robots in the hallway are considered to be 'in the way' rather than 'fun to watch'.
Besides the navigation in the hallway and in the kitchen, the robots did not perform any specific tasks.
|J2B2 Encore - source code and resources (C using SDL)||j2b2_encore.zip||350 kB|
In mir ist einmal die ganze Zeit.
We mount a cylinder of 10.5 cm radius onto Marsokhod. The center of the cylinder is offset by 38 cm from the center of Marsokhod. The mobility of Marsokhod composes of driving forward and spinning. Therefore the trajectory of the cyclinder uniquely determines the position and orientation of Marsokhod given the initial configuration of the robot.
The samples of the laser range finder on J2B2 cover a field of view of 180 degrees at a rate of 1 degree. We ensure that the distance between Marsokhod and J2B2 does not exceed 4.5 m. Then, the cylinder on Marsokhod is perceived by at least 4 samples of the laser range finder. That is sufficient to fit a circle to the samples. Since Marsokhod moves at slow speed and no other geometry is adjacent to the cylinder, the software can identify the samples that belong to the rotationally invariant shape easily.
J2B2 is of cylindrical shape and spins around the center point. Basic path planning for the type of robots is simple and efficient. Marsokhod has a rectangular ground base of 103 x 64 cm, but also spins around the center point. To succesfully navigate into and thru narrow passages we implement a separate motion planner. The planner has a spacial resolution of 2 x 2 cm and an angular resolution of about 22.5 deg.
The motion planning for Marsokhod might consume up to one second computation time. During this period, both robots are required to stop in order not to jeopardize the localization. However, in most driving situations such as driving down the hallway the routings for J2B2 with an extended margin are as well feasible for Marsokhod.
When J2B2 follows Marsokhod down the hallway, and people move in the front of Marsokhod, the mapping of geometry might indicate that there remains an obstacle that is presently occluded by the cylinder. If no alternative path is routable, Marsokhod stops and turns left and right on the spot. Typically, all the terrain in front of Marsokhod becomes visible and the map is updated.
In case both of the robots are commanded into the opposite direction, Marsokhod turns around first. In general turing 180 degree is not a trivial task: when one or both sides of Marsokhod are situated close to obstacles the motion planning leads Marsokhod away from the current spot just to drive the robot back in a loop, see the video below. After Marsokhod has turned around, J2B2 circles Marsokhod: the software devises a place for J2B2 with visual on Marsokhod without restricting the mobility of Marsokhod too much.
If the path of Marsokhod leads close by the partner robot, J2B2 backups if possible while maintaining visual on Marsokhod. As soon as the map indicates that it is not safe for J2B2 to reverse further, the software renders J2B2 as an obstacle into the map. The path planning of Marsokhod then routes safely around J2B2.
This one is machine and nerve
and has its mind concluded;
this one is but flesh and faith
and is the more deluded.
Yesterday is history, tomorrow is a mystery,
but today is a gift. That is why it is called the present.