Motion of Unmanned Ground Vehicles

Asutosh Dalei

SEDS-VIT
3 min readJul 31, 2020
Perseverance Rover | Credits: NASA

The Perseverance rover is part of NASA’s Mars Exploration Program, a long-term effort of robotic exploration of the Red Planet. The main tasks of the rover include finding signs of past life and collecting soil and rock samples. To accomplish these tasks, the rover must, first, be able to traverse an unknown terrain without any human interference. Autonomous Traversal is very important as the rover cannot be monitored at all times and also because of the time it will take for a command sent from the Earth to reach it.

In this article, we will take a look at a simple algorithm that will help the rover or any Unmanned Ground Vehicle (UGV), reach a given destination. To reduce complexity, we will assume that the UGV is on the Earth, where we have a strong magnetic field and an accurate GPS.

Components Required

  • Arduino Board or Raspberry Pi
  • GPS Module: Neo6M
  • Magnetometer Sensor: HMC5883L
  • Chassis with motors
  • Motor Driver

Note: The magnetometer gives the strength of the magnetic field in all three axes (in Gauss). Since the UGV moves on a plane, we use the readings of X and Y axes.

HMC58883L Magnetometer

Note: Before we start designing the algorithm, note that the source location of the UGV will be called ‘A’ and the destination will be called ‘B’.

Algorithm

  1. Using the magnetometer, find the orientation of the UGV.
  2. Find the bearing towards ‘B’ calculated using PyProj, which is a geography-based python package.
  3. Next, the distance between ‘A’ and ‘B’ needs to be calculated using the Haversine Formula.
  4. The UGV should orient itself in the direction of the bearing.
  5. Finally, the UGV should move forward until it reaches ‘B’. Another way to approach it would be to calculate the time taken for the UGV to move until we reach ‘B’ and move it till then.

Note: A self-correcting mechanism can be added where the UGV stops at the midpoint of ‘A’ and ‘B’ and verifies its orientation. If there is an error, it can re-align itself and proceed towards ‘B’.

Problems faced during implementation

The problems faced will mostly be with the hardware and its calibration. Some issues are listed below along with some probable solutions.

  1. GPS — Obtaining a GPS satellite lock is based on your hardware and climatic conditions. Unless these are favourable, the GPS will not give correct readings.
  2. Magnetic Interference — The circuit of the UGV may distort the readings of the magnetometer. It can be solved with proper insulation of the circuit.
  3. Magnetic and geographic pole offset — The magnetic and geographic pole offset may influence the readings of the magnetometer. The only solution is to use a better magnetometer which has inbuilt features to compensate for these offsets.

This approach is to be used by our team for a competition held in the USA.

--

--

SEDS-VIT

The official blog of SEDS-VIT, Indian Headquarters of the Global NPO, Students for the Exploration and Development of Space.