Skip to content

Latest commit

 

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Unitree Go1 2D LiDAR SLAM and Navigation

A ROS1 package for odometry-assisted 2D LiDAR SLAM and click-to-goal navigation on a Unitree Go1. The system converts LaserScan measurements into a persistent occupancy grid, refines odometry with local scan matching, and plans collision-aware paths with A*.

Mapped environment

Navigation in RViz

System pipeline

LaserScan ──> point conversion ──> local scan matching ──┐
                                                        ├─> fixed-map occupancy grid
Odometry ──> pose relative to startup ──────────────────┘

RViz goal + map + pose ──> obstacle inflation ──> A* ──> look-ahead controller
                                                        └─> stop/slowdown from front scan

The key design decision is to anchor the map at the startup pose. Odometry supplies continuous motion prediction, while scan matching searches only near that prediction. This avoids the earlier failure mode in which obstacles were repeatedly written around a moving local origin.

Implemented components

  • LaserScan filtering and Cartesian conversion
  • Odometry-relative pose initialization
  • Local correlative scan matching
  • Log-odds occupancy-grid updates with ray tracing
  • Persistent obstacle visualization
  • ROS TF publication (map -> odom)
  • Occupancy-aware A* with obstacle inflation
  • Look-ahead path following and front-sector emergency stopping
  • RViz launch/configuration for map, path, pose and obstacle inspection

ROS interfaces

Inputs:

/slamware_ros_sdk_server_node/scan
/slamware_ros_sdk_server_node/odom
/move_base_simple/goal

Outputs:

/slam_v44/map
/slam_v44/pose
/slam_v44/slam_path
/slam_v44/global_path
/slam_v44/debug_cmd_vel
/slam_v44/persistent_obstacle_markers
TF: map -> odom

Build and run

Requirements: Ubuntu with ROS Melodic, catkin, a compatible 2D LiDAR/odometry source, and the message packages declared in package.xml.

mkdir -p ~/catkin_ws/src
cp -r slam_v44 ~/catkin_ws/src/
cd ~/catkin_ws
catkin_make
source devel/setup.bash
roslaunch slam_v44 slam_v44.launch

The launch file publishes controller output to a debug topic by default. Verify map, TF, path and velocity direction before remapping it to the robot motion topic.

Demo

Download the RViz/navigation recording

Limitations

  • The scan matcher is local and relies on usable odometry prediction.
  • This version has no full pose-graph loop closure, so long trajectories may accumulate drift.
  • Parameters were tuned in a classroom environment and need recalibration for different sensors or spaces.
  • Navigation is a compact research controller, not a safety-certified robot stack.

Project context

This package was developed and evaluated as part of a team robotics course assignment. The repository presents the shared implementation and team result; it should not be interpreted as sole authorship of every team artifact. Third-party robot drivers and SDKs are intentionally excluded.

About

Odometry-assisted 2D LiDAR SLAM, occupancy mapping and A* navigation for a Unitree Go1 in ROS1.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages