Johnny 5

  Mars Rover project by Jörg Roth






All Mindstorms projects

Jörg Roth's Homepage

Email email 



Privacy Policy 

German This page
in German



This project was inspired by the mars rovers Spirit and Opportunity. The robot should have to following properties:
  • It should have 6 wheels, 4 of them steered.
  • The maximum number of wheels should be motorized.
  • A maximum of sensors should capture the environment.
  • A sensor arm should move out to scan objects.
  • The robot should receive commands from an operator terminal via Bluetooth.
Whereas the first commands from the operator terminal were simple (e.g. "drive right curve 50cm with radius 30cm"), more complex commands should be possible later. As in the Mars scenario where operators cannot wait for each simple command to be executed (due to long radio transmission times), the robot is required to execute complex commands autonomously.

The drive

In early project stages, I had ambitious aims regarding the drive. The robot should run across small obstacles. For this I considered drives as the Rocker Bogie Suspension like the drive mechanics of the original Mars Rover. However, it turned out, this was very difficult for a number of reasons:
  • Lego Technic bricks have a large mechanic tolerance, thus tend to be unstable in large constructions.
  • More important: for the original Rocker Bogie drive I would need one motor for every wheel and another motor for steered wheels. These are too many motors for a single construction.
Even if I did not incorporate the Rocker Bogie, 6 wheels lead to a number of problems. If we steer, left and right wheel should have different steering angles. Actually, for different distances to the middle wheels, even the angles of each of the 4 steered wheels should be different. This is very difficult to realize with a single motor. As a result, my construction steers all 4 wheel to the same angles. Even though not exact, this does not lead to any steering problems.
I also had to give up the goal to motorize all 6 wheels. Having a single motor for each side, we would need 4 cardan shafts as 4 wheels are steered. But only three were available. As a result, 4 of the 6 wheels were motorized, what required 2 cardan shafts. Experiments showed that this was the minimum. With only 2 motorized wheels, the construction does not always move stable.
To be precise, 2 steered and 2 fix wheels should have differend speeds when driving curves. This would require All these variations were refused due to limited space in the construction. As a result I used one motor for each side without any differential gear. Driving curves, the outer wheels have a higher speed, however, the 2 outer wheels have the same speed. The resulting friction was acceptable and does not lead to any mechanical problem.

The sensors

The sensors should capture the environment. A turnable sensor head should have two degrees of freedom:
  • turning left and right;
  • pitching up and down in order to get distance values above and below the horizon.
A sensor arm similar to the original Mars Rover's sensor arm come out to measure objects that are very close.

The result

The resulting robot contains:
  • Two motors for driving foreward and backward (one on each side), 2 cardan shafts, no differential gear.
  • One motor to steer the 4 steered wheels.
  • One motor to turn the sensor head left and right.
  • One motor to pitch the sensor head up and down.
  • One motor to deploy the sensor arm.
  • Two touch sensors to detect obstacles in driving direction (front and rear).
  • One distance sensor to detect small obstacles in driving direction.
  • One distance sensor to create a distance map (all directions).
  • Two sensors on the sensor arm (e.g. Touch and light sensor).
To sum up:
  • we need 6 motors
  • we need 6 sensors
  • as each brick only can control 3 motors and 4 sensors we need 2 bricks.
The first idea was to use Bluetooth to connect the two bricks. During the project it turned out that Bluetooth from brick to brick is very unstable, especially if one of the bricks is also used to connect to the operator terminal. Bluetooth often resets and only works sporadically. As a great luck, I realized that bricks have a special feature not widely known. Sensor port 4 (and only 4) contains an RS485 interface. Two bricks can simply be connected with a traditional sensor cable. The communication was stable in acceptably quick.

Some important values:
Weight1.7 kg
Size37 cm x 24 cm x 22 cm (length x width x height)
Number of parts581
Minimum curve radius25 cm
Maximum speed50 cm/s