Design
Design criteria and desired functionality
Autonomous Navigation: Be capable of collision-free navigation and real-time obstacle detection
Exploration & Mapping: Be able to autonomously explore and incrementally map unknown environments
Safety: Maneuver safely around debris and obstacle, maintaining conservative velocity limits and safety margins in both path planning and execution
Hardware Integration: Needs to operate on the Unitree Go2 quadruped robot and be fully integrated within the ROS2 ecosystem
Description of Chosen Design
The system follows a standard perception–planning–actuation pipeline built on ROS2 and tailored to the Unitree Go2 hardware platform.
Sensing
- Lidar: The robot uses a 3D Lidar sensor to capture environmental data and detect obstacles in real time
- Odometry: The robot tracks its current pose and motion through an onboard odometry system. This estimate is derived from internal sensor fusion, including joint encoders, IMU data, and foot contact information.
Planning
The navigation and exploration pipeline consists of the following stages:
- Lidar to 2D Occupancy Grid: 3D Lidar data is projected into a 2D occupancy grid
- 2D Occupancy Grid to CostMap: The occupancy grid is inflated and converted into a costmap for navigation planning
- Costmap to frontiers: Frontiers are identified as boundaries between free space and unknown space
- Frontier Selection: A suitable frontier is selected as the next exploration goal.
- Navigation to chosen frontier: The robot navigates autonomously to the selected frontier using Nav2.
Actuation
- Velocity command Interface: Velocity commands generated by Nav2 (cmd_vel) are converted into Unitree-specific API calls, enabling seamless integration between ROS2 navigation and the robot’s low-level control interface.
Design Choices and Trade-offs
Lidar to 2D occupancy grid
To generate a 2D occupancy grid from 3D LiDAR data, points within a vertical column were selected and aggregated. The occupancy state of each grid cell was determined using a log-odds update formulation applied across all points in that column.
- Design choice: Use of log-odds probabilities for occupancy updates.
- Trade-off: Probability (of update) is tuned individually for free and occupied space to balance map stability against responsiveness for dynamic obstacles
Frontier identification and selection
A frontier is defined as a point on the border of the known region and unknown region. These would be areas that the lidar hasn’t seen before, such as areas behind obstacles. It also includes the space directly behind or even inside an obstacle, since only the front edge of the obstacle is observed.
- Design choice: We chose to filter out these frontiers by removing candidates that were too close to obstacles by comparing with the occupancy grid.
- Trade-off: Improves safety and reliability, at the expense of reduced exploration completeness for narrow passages and edge cases, and bias towards open space
- Design Choice: Use Euclidean distance for simplicity and speed of development
- Trade-off: Euclidean distance was chosen for simplicity, at the expense of suboptimal frontiers compared to a more computationally complex path-length choice computed by Nav2.