Contents Menu Expand Light mode Dark mode Auto light/dark mode
CMR Controls Documentation
Light Logo Dark Logo

Developer Guide

  • Setup
    • Getting Started
    • Setting up VSCode
    • Git Good
  • Documentation
    • Contributing
    • Python and C++ Docs
    • Documentation Deep Dive

Operation

  • Phobos CLI
  • Phobos GUI

Subsystems

  • The Node Framework
    • Creating a Node
    • Node Framework Deep Dive
  • Hardware Abstraction Layer
  • Subsystem Nodes
  • Arm
  • Computer Vision
  • Navigation Subystem
    • System Overview
    • Usage
  • Rover
  • Basestation

Electrical

  • Setup
Back to top

Navigation Subystem#

Behavior:#

Once the autonomous system has enabled the navigation system and all necessary dependencies are acquired (ball detector, HAL, etc), now we can run the rover autonomously. There are two versions of the autonomous traversal: with computer vision and without computer vision.

Attention

The autonomy code functionality has not yet been updated to match the 2021-2022 task yet.

With Vision#

  1. Create a geometry_msg/PosStamped goal to use in the

    ROS planner move_base. This goal a destination point a set number of meters before the entered GPS/UTM coordinates. (Configurable in auto.yaml under the parameter meters_before_destination)

  2. ROS planner will send rover directly to calculated destination point.

  3. Calculate a destination point one meter forward in the direction of the entered GPS/UTM coordinates.

  4. ROS planner sends rover to new destination point.

  5. Rover will rotate 360 degrees at a set interval. (Configurable in auto.yaml under the parameter rotate_radians_)

  6. At each interval, tag detector will search for AR tag.

  7. If tag is detected, tag detector will return how many meters rover is away from the tag in the x and y direction (forward and left),

    and ROS planner will send the rover towards the tag location using the given x and y.

  8. If tag is not detected, repeat steps 3-7 until either the ball detected or rover has reached the entered GPS/UTM coordinates

  9. If tag still is not detected, enter spiral mode.

  10. Rover will move in a square spiral, each leg of the spiral increasing by a meter every new leg. For each leg of the spiral, rover

    will move forward a set number of meters (configurable in auto.yaml under the parameter spiral_steps). After moving forward a set number of meters, rover will rotate 360 degrees and look for the tag, similar to steps 5 and 6. If tag is found, follow step 7. Otherwise, continue.

  11. After 30 legs, if tag is not found, the autonomous system will terminate.

Without Vision#

  1. Create a geometry_msg/PosStamped goal to use in the ROS planner move_base. Created with reference to entered GPS coordinates or UTM coordinates

  2. Planner will send rover directly to the approximate location of the GPS/UTM coordinates with reference to the rover’s own internal GPS.

  • System Overview
    • Coordinate System
    • Frames of Reference
    • Main Nodes:
    • Costmaps
  • Usage
    • Configuration
      • Camera
      • Rviz
    • Pre-task Checks
    • Task
    • Common Issues
Next
System Overview
Previous
Computer Vision
Copyright © 2022, Cornell Mars Rover
Made with Sphinx and @pradyunsg's Furo
Contents
  • Navigation Subystem
    • Behavior:
      • With Vision
      • Without Vision