Skip to content

Latest commit

 

History

History
47 lines (40 loc) · 2.11 KB

README.md

File metadata and controls

47 lines (40 loc) · 2.11 KB

Autonomy

Code for Moon Ranger's autonomy computer lives here (in a ROS workspace)

The autonomy repository has the following components:

  • Rover Executive
    • Decides what to do when. This components hosts the state machine which makes all the decisions.
  • Global Planner
    • Keeps information in the global sense like the global map and generates plan on them. For example, given a goal generates a path which avoids craters and shadows.
  • Navigator
    • Operates on the local frame, issues drive commands and navigates the robot avoiding non-traversable regions as the come up.
  • Position Estimator
    • Estimates the position of the robot in both the local frame to be used by the navigator and global frame to reference the global map.
  • Wifi Gateway
    • Main entry point to the autonomy computer. Talks to the wifi chip and transmits information back and forth including images and telemetry.
  • Intercom
    • Similar to the wifi-gateway but talks to the embedded computer. Gets information like IMU and encoders and sends motor commands, state updates etc.
  • Health Monitor
    • Monitors all the faults and reports to the executive. Generally does not take any actions execept restarting the executive when it is not active.
  • Telemetry Manager
    • Responsible for packaging and sending telemetry information to the embedded computer and back to ground.
  • Camera Driver
    • Controls the cameras and receives images from them.
  • autonomy_common_msgs
    • ROS messages which are common between the different nodes live here. This is to make sure we do not run into circular dependencies.

Setup

  • Clone the workspace using the clone command git clone https://github.com/PlanetaryRobotics/autonomy.git

  • This should create the autonomy ROS workspace. To build, go to this directory and use catkin_make

cd autonomy
catkin_make
  • To build the unit-tests use catkin_make with the following option
catkin_make --make-args tests
  • To run the unit-tests use
catkin_make --make-args run_tests

I used the instructions on this page to setup the unit tests. Refer to that for more details.