« The Basics of Entrepreneurship, Part 3: Mission | Main | The Basics of Entrepreneurship, Part 4: Marketing »

Primer on Autonomous Systems

There are a number of disciplines that comprise a mobile robot.  However, it is usually more worthwhile to approach the development of autonomous systems through understanding the basic subsystems that make up an autonomous or mobile robotic system.  I wrote this primer to help bring Aero/Astro students up to speed on autonomy for a class in designing a Mars rover, and I thought it was worth posting here.

Introduction

There are a number of ways to break up the subsystems involved in an automous mobile robot.  One of the easier ways is to break it down by functionality and work up from there:

  • Locomotion (Driving/Walking)
  • Manipulation
  • Sensing
  • Localization
  • Mapping
  • Path Planning (Navigation)
  • Decision-making

These seven disciplines are combined in different ways to form the subsystems of a mobile robotic system.  (Note: the entire robot is viewed as the "system" hence all of the major components are called "subsystems" instead of systems.)

Oftentimes one can group these seven functions into two or three major subsystems: hardware control, navigation, decision-making.  The hardware control handles the execution of locomotion and manipulation commands, as well as managing incoming sensor data.  Navigation includes localization and mapping which feed into the path planning that does the actual robot navigation.  Finally, the decision-making chooses the series of actions to pursue in order to complete the goals set for the robot.

Usually the architecture of the system is broken into three subsystems: navigation, visual servoing, and decision-making.  Visual servoing is the use of a video camera to navigate tough terrain and complete mission goals such as picking up or placing objects, taking pictures of interesting features, or navigating narrow or difficult terrain.

After I discuss the three subsystems, I will cover the basics of the disciplines that are not as explicit in the subsystems, such as locomotion and sensing.

Navigation

Mapping

Mapping is creating and managing a map of the robots surroundings.  As the robot collects data on the world around it, it updates the map with this data.  Many robots begin with an a priori map, a pre-made map that's uploaded to the robot to give it a starting place.  Other robots have a complete map that's never updated, and other start with no map at all.

The map is used by the path planner to decide how to get the robot to its goal location.  It can take many different forms, two common ones are a grid or a potential field (where obstacles have virtual forces that increase as the robot nears them).

One of the challenges faced in generating maps is the management of limited data storage resources.  For example, one cannot generate a map with a fidelity of two centimeters square if its supposed to span a square mile - the amount of data storage is gigantic.  To work around this issue, roboticists often use a global map that's comprised of a number of smaller local maps that describe important or dangerous areas in detail.

Localization

Localization is the process of using salient features in the surrounding environment to ensure that the robot has correctly identified its position in its map.  This process can be done using all sorts of methods including beacons or pseudolites, sonar or laser ranging, or visual identification.  The localization procedure is used periodically to correct the errors in the robot's "dead-reckoning" or where it believes itself to be based on measurements of how far each wheel has moved.

SLAM!

SLAM stands for Simultaneous Localization and Mapping and is one of the biggest challenges in modern mobile robotics.  When a robot has to generate its map at the same time that it is trying to find or correct its position in that map the errors can become enormous.  There are now dozens of techniques for conducting SLAM, including using "breadcrumbs" or past sets of sensor data that are compared against the latest dataset to see if they match, thereby indicating the robot has returned to an area it has already been through.

Path Planning

Path Planning is the part of the navigation subsystem that plans a path from the robot's current location to the location it intends to go to (provided by the decision-making subsystem).  The complexity of the Path Planner largely depends on the type of map that is used.  In a grid map, the Planner must compute a cost for each cell of the grid, which can become complex and processor intensive.  In a potential field map, the Planner just has to follow the "path of least resistance" and is very simple.

Visual Servoing

Vision

While vision sometimes will play a role in updating data in the map, it is much more important for visual servoing operations.  In these operations, the vision system must be able to identify an object of interest, classify the position of the object relative to the robot, and provide enough data that the robot can "servo" or move to the object and interact with it.  The vision system will often also serve as the main sensor for interaction with the target.

In some robotic systems, the vision system may be replaced by another system such as a radar system, if say the target were burried underground.

There are many different methods for manipulating data from the camera sensors to extract information that is useful for the robot.  Such methods focus on picking out distinct collorations, detecting motion, and/or detecting edges of objects.

Manipulation

Manipulation is a key feature of many visual servoing subsystems.  Manipulation is the use of a robotic arm to interact with the environment.  Oftentimes the robot will have a set of functions it will call in order to fulfill different roles with the arm. 

Servoing

Servoing is the small movements and adjustments made by the locomotion system in order to properly position the sensor or grappling arm in order to achieve its goal.  This movement is different from the path planning situation, because it requires a lot of small movements or a smaller "loop" from the sensor input to the output of the motors.

Decision-Making

The decision-making plans a series of actions in order to achieve a goal.  This planning includes setting goal locations for the Path Planner and deciding when to switch control of the robot between the Path Planner and the Visual Servo. 

The simplest form of a decision-maker just arbitrates between the Path Planner and the Visual Servo.  However, highly complex systems can do much more, including layout detailed contingency plans and failure modes.

Locomotion

Locomotion systems abstract the low-level movement commands sent to the motors away from the autonomy software.  These systems usually take in a goal location in either an x,y or an r,theta coordinate system to direct it to traverse to the next waypoint set by the path planner.  The locomotion system then uses "dead reckoning" based on odometry data (data on how far each wheel or leg has moved) to traverse to the next waypoint.

Sensing

Sensors are also abstracted from the autonomy software.  Sensor processing is done in the low-level software and the smoothed data is sent to the mapping software in the form of line segments or obstacles.  The advantages to this architecture include the ability to support many different sensors with the same interface and the ability to include a reactive layer (like human reflexes) in the sensing layer of the architecture so that the robot can stop immediately if it bumps into something or detects an object that is too close to the robot.

TrackBack

TrackBack URL for this entry:
http://www.studentvc.com/blog-mt/mt-tb.fcgi/35

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)