Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Autonomous Navigation and 3D Mapping for Grass-Cutting Robots on Inclined Terrains

Project Overview

This project enhances the autonomy of a grass-cutting robot (Clearpath Moose) to operate on uneven, hilly terrain. The system addresses slope hazards through three core software components:

  1. Extended Kalman Filter (EKF): 6-state filter [x, y, z, roll, pitch, yaw] fusing wheel odometry with GPS, IMU and compass measurements for accurate localization.
  2. 3D LiDAR Mapping: Builds an OctoMap-based occupancy grid to represent complex terrain.
  3. Slope-Aware Navigation: Uses an A* planner with a custom cost function to identify and avoid hazardous gradients (>20°) while maintaining coverage.

Main Source Code

The core logic for this project is found in the following file:

.../moose/moose/controllers/moose_path_following/moose_path_following.c


Prerequisites

  • Webots R2022a

Key Results

Metric Value
EKF localization accuracy RMSE = 4 mm
LiDAR frames processed 4,735+ (800K+ points)
Elevation grid coverage 86.6 %
Navigation goals reached 6+
Tip-over hazard threshold 20.05° (0.35 rad roll/pitch, 32 ms safety loop)
Traversability cost weights slope × 200 + roughness × 55

Presentation video

Watch the presentation video

Watch on YouTube: https://youtu.be/MwyOcCSr9X8 · Download the mp4


System Architecture

System architecture and workstream dependency map

1. Kinematics & Low-Level Control

  • Modified Hardware Interface: Custom Moose.proto with 8-wheel PositionSensors enabled closed-loop odometry.
  • Differential Drive Logic: Converts raw encoder ticks into metric state estimates (x, y, θ) using skid-steering kinematics.

2. Sensor Fusion (EKF)

  • State Prediction: Propagates system uncertainty (Covariance Matrix P) based on motion model.
  • Update Step: Fuses GPS position (x, y, z), IMU roll/pitch and magnetometer (compass) yaw with the prediction to eliminate odometric drift.
  • Auto-Calibration: Solves coordinate frame mismatch by aligning odometry θ with the initial compass reading.

3. 3D Mapping (OctoMap)

  • LiDAR Pipeline: Filters point clouds (0.3m < d < 50m) and downsamples on a 0.1 m voxel grid (200³ cells).
  • Occupancy Grid: Probabilistic log-odds update model with dynamic map recentring for unbounded exploration.
  • Traversability Analysis: Converts 3D data into a 2D cost map, penalizing surface roughness and slopes.

4. Navigation & Planning

  • Slope-Aware A:* Global planner that treats gradients > 20° as obstacles.
  • Hazard Detection: High-frequency (32ms) safety layer that monitors IMU Roll/Pitch to prevent tipping.
  • Stuck Recovery: Monitors displacement over 5s windows; triggers reversing manoeuvres if the robot is physically stuck.

Authorship & Contributions

This project was a collaborative effort. The specific contributions for assessment purposes are listed below.

Yichang Chao

Role: Robot Modelling, Low-level Control & Kinematics File: protos/Moose.proto, controllers/moose_path_following/moose_path_following.c Key Contributions:

  • Modified Moose.proto to add 8-wheel feedback sensors.
  • Implemented low-level C driver for motor/sensor interfacing.
  • Developed Differential Drive Odometry and EKF Prediction step.

Ran Zhang

Role: Sensor Fusion, Calibration & Validation File: controllers/moose_path_following/moose_path_following.c Key Contributions:

  • Implemented EKF Update step (Compass fusion).
  • Developed the "Auto-Alignment" routine to fix coordinate frame inversion.
  • Built the GPS Ground Truth validation system.

Piero Flores López

Role: 3D Mapping & Environment Reconstruction, Sensor Fusion (EKF) File: controllers/moose_path_following/moose_path_following.c Key Contributions:

  • Built the LiDAR processing pipeline (Filtering, Voxel Grid, Transform).
  • Implemented OctoMap-style occupancy grid and ICP Scan Matching.
  • Developed the Traversability Cost function (Slope + Roughness).
  • Co-developed the 6-state EKF sensor fusion (GPS + IMU + compass).

Inika Kumar

Role: Path Planning, Hazard Detection & Evaluation File: controllers/moose_path_following/moose_path_following.c Key Contributions:

  • Implemented the slope-aware A* global planner.
  • Developed the IMU-based Hazard Detection safety layer.
  • Integrated the Navigation Controller (Path Following + Performance Metrics).

About

Slope-aware autonomous navigation & 3D mapping for a Clearpath Moose grass-cutting robot — 6-state EKF, OctoMap, traversability-cost A* (Webots, C)

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages