Software Navigation Stack - rsx-utoronto/rsx-rover GitHub Wiki

Navigation Stack Overview

This section explains the core components of our robot's navigation system. It covers how we localize, plan paths, avoid obstacles, and control movement.

Localization

Mapping

Planning

Control

Obstacle Avoidance

GPS


Localization

What it does:
Determines the robot's position in the environment using sensor data.

What we use:

  • Sensor inputs: [ZED Camera / IMU / Realsense] /EXPAND ON THIS

Key files / nodes:

  • /TO BE COMPLETED

Mapping

Overview

Generates a 3D occupancy map of the environment using incoming sensor data. This enables elevation-aware navigation and obstacle detection in complex terrains.

Primary Launch File: octomap.launch

Basic Usage

roslaunch rover octomap.launch

Core Components

  1. OctoMap
    Probabilistic 3D mapping system that builds occupancy maps from PointCloud2 data

  2. octomap_server Node
    Real-time map builder that publishes:

    • Binary octomaps (/octomap_binary)
    • Full-resolution maps (/octomap_full)
    • Visualization markers (/occupied_cells_vis_array)
    • Node Documentation
  3. octomap_rviz Node - Visualization

  4. Input Topic

<remap from="cloud_in" to="/zed_node/point_cloud/cloud_registered"/>

Planning

Overview

Provides real-time navigation and collision avoidance using sensor data. Implements Dynamic Window Approach (DWA) for local path planning in dynamic environments.

Primary Launch File: dwa_planner.launch

Basic Usage

roslaunch rover dwa_planner.launch

Core Components

  1. DWA (Dynamic Window Approach)
    Real-time local planner that:

    • Evaluates feasible velocity windows
    • Optimizes for obstacle clearance and path alignment
    • Dynamically adjusts to new obstacles
  2. dwa_planner Node
    Custom implementation that:

    • Processes occupancy maps and localization data
    • Generates collision-free trajectories
    • Publishes velocity commands
  3. 'dwa_rviz' Node

  1. Core Topics
<param name="odom_topic" value="/rtabmap/odom" />
<param name="octomap_topic" value="/octomap_full"/>
<param name="map_topic" value="/map" />

Control

What it does:
Translates the planned path into actual robot movement.

Key files / nodes:

  • /TO BE COMPLETED

Obstacle Avoidance

What it does:
Uses real-time sensor data to update the robot's local costmap and avoid collisions.

Key files / nodes:

  • /TO BE COMPLETED

GPS

What it does:
Provides global positioning data, primarily used for outdoor navigation. Fused with IMU and odometry through the EKF to improve localization accuracy.

Key files / nodes:

  • /TO BE COMPLETED