29 June 2020

NASA Space Robotics Challenge - Phase 2

Another NASA Centennial Challenge began earlier this year. It will be the 3rd I've entered. I also entered the 2019 ARIAC competition which makes 4 competitions. The current competition is the Space Robotics Challenge - Phase 2 (SRC2). In this competition robotic mining rovers explore the Moon to detect volatiles and collect them, detect a low orbiting cube sat, and position one rover aligned with a fiducial on a processing station.

Links to Follow-on Posts

In the following posts I'll explain what I can about this topic. There are a number of research papers available however my posts will provide a simplified explanation. 

Explicit Steering

The biggest challenge in this competition is controlling the rover. It is the size of a small SUV with Explicit Four Wheel Steering, i.e. each of the four wheels is steered separately. If you've seen the Mars rover it is a similar design. That's the base rover, above.

Explicit steering allows flexibility in movement of the rover. It can turn all four wheels to the same angle to move sideways in a crab movement. This also provides straight forward movement. By orienting the wheels at different angles the rover can turn. An extreme example of this is pivoting in place.

Robot Operating System

The base software for the competition is the Robot Operating System (ROS) which consists of the fundamentals for communicating amongst software nodes and a large number of packages that provide useful capabilities. Unfortunately there isn't one for controlling the SRC2 rover.

There are two ways of controlling the wheels for locomotion. The predominant one is issuing a speed command. A number of ROS controller packages provide this capability. Another specified the effort or torque. There are effort controllers but none directly apply to the SRC2 rover.

The location of the rover on the surface is required for reporting the position of volatiles, moving to them, and generally controlling the rover's movement. This requires deriving odometry from wheel movement, vision processing via stereo cameras and an inertial measurement unit (IMU). Again, this is not provided. It is especially challenging due to the low friction between the wheels and simulated Moon surface which allows slippage of the wheels.

Frustration on Frustration

I've been beating my head against this for quite awhile. What I've managed so far is:
  • Control the wheel orientation and effort,
  • Calculate the orientation of the wheels for:
    • Movement in a turn,
    • Crab movement which is also straight forward movement,
    • Pivoting in place.
  • Calculate the differing efforts for the wheels when turning,
    • This is required to minimize wheel spinning due to the low friction between the wheels and surface
What I haven't accomplished is:
  • Control of acceleration and deceleration to reduce wheel spinning and sliding.
  • Detection and control of side slippage when on a slope.
  • Any form of odometry

No comments:

Post a Comment

SRC2 - Explicit Steering - Wheel Speed

SRC2 Rover This fourth post about the  qualifying round of the NASA  Space Robotics Challenge - Phase 2  (SRC2) addresses t he speed of the ...