The M4 Navigation is a project designed to implement a ROS-based autonomous navigation pipeline for the M4 robot. This repository contains the necessary code and tools to simulate, test, and deploy the navigation stack on the robot.
The M4 robot is a multimodal platform developed at Caltech for complex terrain exploration. The robot shows a high degree of modularity thanks to its many actuators that allow it to change shape depending on the terrain configuration. Also equiped with propellers, the robot is the perfect platform to explore unknown terrain and go over obstacles that would otherwise be too complex to overcome on the ground.
This repository is organized around two main folders:
- simulation_world
- simulation_slam
This folder regroups every modules related to the M4 itself (URDF models, controller configurations, control scripts), Gazebo worlds and RVIZ config files. Launch files are also provided to load the worlds and test the robot in simulation.
This is where the navigation comes alive. This folder includes the navigation modules and the launch files for the autonomous navigation.
- Integration with RTAB-MAP for mapping
- Integration with MoveBase planner (local & global)
- Integration with PCL for point cloud processing
- Implementation and selection of various navigation modes (using either Standard ROS or RL-based pipelines):
- ROLLING: for standard obstacle avoidance
- CRAWLING: under bridge-like obstacles
- FLIGHT: for going above obtacles (not connected to flight controller yet...)
- Integration with Gazebo simulation environment
- Real-time visualization with RVIZ
- Python 3.x
- ROS (Robot Operating System) NOETIC
- Dependencies listed in
requirements.txt
- Realsense Library (https://github.com/issaiass/realsense2_description)
- Clone the repository:
git clone https://github.com/Quentin2000/M4_Navigation.git
- Navigate to the project directory:
cd M4_Navigation
- Install the required dependencies:
pip install -r requirements.txt
- Launch the simulation environment:
cd ~catkin_ws/src/M4_Navigation/simulation_world/launch roslaunch gazebo_rviz.launch
- Run the autonomous navigation:
cd ~catkin_ws/src/M4_Navigation/simulation_slam/launch roslaunch simulation_merged.launch
This project is licensed under the MIT License. See the LICENSE file for details.
For questions or feedback, please contact:
- Quentin2000 (GitHub Profile: Quentin2000)