Skip to content

deepglint/Cross-Embodiment-Navigation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

3 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿค– Cross-Embodiment Navigation System

A Cross-Embodiment navigation solution based on the ROS Navigation framework, featuring both global and local navigation options, designed for easy integration into your robot platform.

ROS Ubuntu C++

๐ŸŽฏ Project Introduction

We have developed a complete robot navigation solution based on the ROS Navigation framework, capable of achieving Cross-Embodiment navigation. The system includes both global and local navigation options, featuring a concise and user-friendly design that allows for easy embedding into your existing robot navigation solutions.

โœจ Key Features

  • ๐Ÿš€ Plug and Play - Simple interface design for quick integration into existing systems
  • ๐ŸŽฏ High-Precision Navigation - Based on real-time point cloud data, providing accurate localization and path planning
  • ๐Ÿ”„ Flexible Configuration - Supports multiple navigation modes to adapt to different scenario requirements
  • ๐Ÿ“Š Real-time Performance - Optimized algorithm implementation ensures real-time responsiveness

๐Ÿ’ป Development Environment

Component Version Requirement
Operating System Ubuntu 22.04 LTS
ROS Version ROS1 Noetic
C++ Standard C++ 14

๐Ÿ“ฆ Dependency Installation

# Install ROS Noetic base packages
sudo apt-get install ros-noetic-desktop-full

# Install necessary dependencies
sudo apt-get install \
  ros-noetic-navigation \
  ros-noetic-slam-gmapping \
  ros-noetic-pointcloud-to-laserscan \
  libeigen3-dev \
  libpcl-dev

Contributors

Junfeng Zhu ๆœฑๅณป้”‹๏ผŒAxiang Sun ๅญ™้˜ฟ็ฅฅ๏ผŒZhongxia Zhao ่ตตไปฒๅค, Dongliang Li ๆŽๆ ‹ๆข, Gaohao Zhou ๅ‘จ้ซ˜่ฑช,Yihao Xu ่ฎธ็›Š่ฑช, Xin Li ๆŽ้‘ซ, Xiang An ๅฎ‰็ฟ”, Ziyong Feng ๅ†ฏๅญๅ‹‡๏ผŒHuajie Tan ่ฐญๆกฆๆฐ

๐Ÿงญ Navigation Architecture

๐ŸŒ Global Navigation

Based on our previous work on FAST_LIO.

The global navigation module is based on our optimized Fast-LIO workflow, providing critical real-time data processing capabilities for the navigation system:

  • Real-time Point Cloud Data Support - Efficiently processes LiDAR point cloud data
  • Accurate Localization Information - Provides centimeter-level (sub-centimeter) localization accuracy
  • Global Map Building - Supports large-scale environment mapping
  • Real-time Performance - Optimized algorithms ensure real-time responsiveness

๐Ÿ“ Local Navigation

We offer two local navigation solutions; choose based on your actual needs:

Option One: Dynamic Update Region (Recommended)

  • Principle: Defines a dynamic update region centered on the robot body
  • Map Maintenance: Local map information is maintained in real-time in the background
  • Performance Advantage: Low computational overhead, fast response speed
  • Applicable Scenarios: Dynamic environments, applications requiring high real-time performance

Option Two: Gmapping Integration (Standard)

  • Principle: Based on the official ROS gmapping tool
  • Map Maintenance: Gmapping maintains the map based on real-time point cloud data
  • Mature and Stable: Based on the established ROS ecosystem tools
  • Applicable Scenarios: Traditional applications requiring full SLAM functionality

๐Ÿš€ Quick Start

1. Set Up Workspace

# Create the workspace directory
mkdir -p ~/catkin_src/src
# Navigate to the workspace src directory
cd ~/catkin_src/src

2. Clone Project Code

# Clone the navigation system repository
git clone https://github.com/deepglint/Cross-Embodiment-Navigation.git

3. Compile Project

# Return to the workspace root directory
cd ~/catkin_src
# Install project dependencies
rosdep install --from-paths src --ignore-src -r -y
# Compile the project (standard output)
catkin_make

4. Set Environment Variables

# Add the following to ~/.bashrc
echo "source ~/catkin_src/devel/setup.bash" >> ~/.bashrc
# Source the environment variables immediately
source ~/.bashrc

5. Launch Navigation System

You can launch global navigation using the commands below. Note that static map data must be pre-configured before launching global navigation. You can publish your raw 3D point cloud map by running roslaunch ply_map publish_ply.launch. Then, run roslaunch octomap_nav octomap_server.launch to compute the OctoMap from the point cloud map.

# Launch the fast_lio script; an initial robot pose must be provided for localization after launch
cd scripy
chmod +x start_global_navigation1.sh
./start_global_navigation1.sh
# Open a new terminal to launch the subsequent script for robot localization and global navigation
cd scripy
chmod +x start_global_navigation2.sh
./start_global_navigation2.sh

You can launch local navigation using the commands below, which does not require a global map of the current environment.

# Local navigation based on Dynamic Update Region
cd scripy
chmod +x start_local_navigation_our.sh
./start_local_navigation_our.sh

# Local navigation based on Gmapping
cd scripy
chmod +x start_local_navigation_gmapping.sh
./start_local_navigation_gmapping.sh

๐Ÿ“– Usage Guide

Basic Usage Flow

Step Terminal Command Description
1. Terminal 1 roscore Start the ROS Master
2. 2 start scripy Start the Navigation System
3. 3 rostopic pub /move_base_simple/goal geometry_msgs/PoseStamped '{header: {frame_id: "map"}, pose: {position: {x: 1.0, y: 0.5, z: 0.0}, orientation: {x: 0.0, y: 0.0, z: 0.0, w: 1.0}}}' Send Navigation Goal (Example)

โš™๏ธ Configuration Details

Main Configuration Files

All configuration files are located in the config/ directory:

  • config/global_costmap_params.yaml: Global costmap parameters
  • config/local_costmap_params.yaml: Local costmap parameters
  • config/dwa_local_planner_params.yaml: DWA local planner parameters
  • config/teb_local_planner_params.yaml: TEB local planner parameters

๐Ÿ› Frequently Asked Questions

1. Compilation Errors

Problem Solution Steps
Dependency error during compilation 1. Ensure rosdep is updated: rosdep update
2. Re-install dependencies: rosdep install --from-paths src --ignore-src -r -y

2. Navigation Performance Issues

Problem Resolution Focus
Robot navigation is slow or unresponsive 1. Adjust local planner (e.g., DWA/TEB) parameters
2. Decrease map update frequency (update_frequency)
3. Check sensor data latency (rostopic hz /your/sensor/topic)

โญ If this project is helpful to you, please give it a Star!

Making robot navigation simpler and smarter

๐Ÿ“ฆ Acknowledgments

In this work, the robot sdk refers to go2_ros_sdk, thanks to their great work.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published