MoMo - Modular Mobile Robot Research Platform
Overview
MoMo is an open-source autonomous robot designed to serve as a flexible research tool for robotics applications. Currently working on this project under the guidance of Markus Knitt at the Institut für Technische Logistik (ITL) at TUHH.
The primary goal was to design a modular robot that could perform autonomous tasks such as mapping, localization, and navigation using ROS2. Throughout the development process, I worked on the entire system from CAD modeling and simulation to the implementation of navigation and sensor integration. The project is open-source, and the code and documentation are available on GitHub.
Image source: ITL TUHH Social Media
Checkout the published paper here
Key Features
1. CAD Modeling and URDF Creation
- The 3D model of MoMo was created in SolidWorks and exported as a URDF using the SolidWorks URDF exporter. This allowed for simulation and visualization in Gazebo and RViz.
- The URDF includes joints, links, and sensors, ensuring accurate simulation of the robot’s physical and sensor setup.
2. Autonomous Navigation and Mapping
- Mapping: I used the Slam Toolbox to enable MoMo to create maps of unknown environments in real-time.
- Localization: Implemented localization using the Nav2 AMCL package, which provided accurate robot localization in pre-mapped environments.
- Navigation Stack: The full ROS2 Nav2 stack was implemented to allow for autonomous path planning, dynamic obstacle avoidance, and re-routing.
3. Sensor Fusion
- Integrated data from wheel odometry and LiDAR using the robot_localization package, which allowed for improved localization accuracy through sensor fusion.
- Integrated plugins in Gazebo for simulating the sensors, which included LiDAR, cameras, and a depth camera.
4. Documentation
- The documentation for MoMo, including setup instructions, technical details, and animations demonstrating the robot’s capabilities, was created using MkDocs and is available here.
- The animations, created in Fusion 360, demonstrate the assembly and modularity of the robot.
MoMo is an open-source project, and all the source code, CAD files, BOM, assembly instructions, URDF files, and documentation are freely available:
- GitHub Repository: MoMo Project on GitHub
- Documentation Website: MoMo Documentation
Technical Stack
- Programming Languages: Python, C++
- Robotics Middleware: ROS2 (Humble)
- Simulation Tools: Gazebo, RViz
- CAD Software: SolidWorks, Fusion 360
- SLAM and Mapping: slam_toolbox
- Navigation: Nav2
- Sensor Fusion: robot_localization
- Version Control: Git, GitHub
- Documentation: MkDocs
ITL Team :)