Skip to content

Fonyuy45/donar_description

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Donar Mobile Robot - ROS2 Simulation Package

ROS2 Humble Gazebo License: MIT

A differential drive mobile robot simulation package for ROS2 Humble with stable ball caster design for Gazebo Ignition.


image image

Project Highlights

  • Stable Differential Drive: 2 powered wheels with differential drive controller
  • No-Hop Ball Casters: Redesigned from complex swivel casters to simple ball casters, eliminating reverse motion hopping
  • Extensible Design: Ready for sensor integration (Lidar, Camera, IMU)

Demo

Gazebo Simulation

ros2 launch donar_description gazebo.launch.py

RViz Visualization

ros2 run rviz2 rviz2 -d src/donar_description/rviz/urdf_config.rviz

Keyboard Control

ros2 run teleop_twist_keyboard teleop_twist_keyboard \
  --ros-args -r /cmd_vel:=/donar_robot/cmd_vel

Quick Start

Prerequisites

  • OS: Ubuntu 22.04
  • ROS2: Humble
  • Gazebo: Ignition Garden or Fortress
  • Tools: Colcon, Git

Installation

# Create workspace
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src

# Clone repository
git clone https://github.com/Fonyuy45/donar_description.git

# Install dependencies
cd ~/ros2_ws
rosdep install --from-paths src --ignore-src -r -y

# Build
colcon build --packages-select donar_description

# Source
source install/setup.bash

Usage

Launch Gazebo Simulation:

source install/setup.bash
killall -9 gz ruby
export GZ_SIM_RESOURCE_PATH=$GZ_SIM_RESOURCE_PATH:~/donar_ws/install
ros2 launch donar_description gazebo.launch.py

Control the Robot:

# Install keyboard teleop
sudo apt install ros-humble-teleop-twist-keyboard

# Run teleop
ros2 run teleop_twist_keyboard teleop_twist_keyboard \
  --ros-args -r /cmd_vel:=/donar_robot/cmd_vel

Robot Specifications

Parameter Value
Type Differential Drive
Total Mass ~40 kg
Wheel Radius 0.14 m
Wheel Separation 0.52 m
Max Linear Velocity 3 m/s
Max Angular Velocity 3.0 rad/s
Caster Type Ball (40mm radius)
Control Interface geometry_msgs/Twist

Key Components

Main Files:

  • models/donar_robot/model.sdf - Primary robot definition for Gazebo
  • urdf/donar_robot.xacro - URDF description for RViz/Nav2
  • launch/gazebo_sdf.launch.py - Main simulation launcher

Robot Links:

  • base_link - Main robot chassis (35 kg)
  • left_wheel_1, right_wheel_1 - Driven wheels (2 kg each)
  • left_caster_wheel_1, right_caster_wheel_1 - Ball casters (0.4 kg each)

Topics:

  • /donar_robot/cmd_vel - Velocity commands (input)
  • /donar_robot/odometry - Odometry feedback (output)
  • /joint_states - Joint positions/velocities (output)


Development Roadmap

Completed

  • Base robot model with differential drive
  • Simplified ball caster design
  • Gazebo Ignition integration
  • RViz visualization support
  • Odometry and joint state publishing
  • Teleop control interface

In Progress

  • RPLidar A2 sensor integration
  • Intel RealSense camera
  • IMU sensor (for sensor fusion)

Planned Features

  • Nav2 navigation stack integration
  • SLAM capability (slam_toolbox)
  • Autonomous waypoint navigation
  • Gazebo world scenarios
  • Hardware deployment guide

Documentation

Additional Resources

API Reference

Published Topics:

/donar_robot/odometry [nav_msgs/Odometry]
/joint_states [sensor_msgs/JointState]
/clock [rosgraph_msgs/Clock]
/tf [tf2_msgs/TFMessage]

Subscribed Topics:

/donar_robot/cmd_vel [geometry_msgs/Twist]

Parameters:

wheel_separation: 0.52
wheel_radius: 0.14
max_linear_velocity: 3
max_angular_velocity: 3.0

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Development Setup

# Fork the repository
# Clone your fork
git clone https://github.com/Fonyuy45/donar_description.git

# Create feature branch
git checkout -b feature/your-feature

# Make changes and commit
git commit -m "feat: add your feature"

# Push and create PR
git push origin feature/your-feature

License

This project is licensed under the MIT License - see the LICENSE file for details.


👤 Author

Dieudonne YUFONYUY


Acknowledgments

  • ROS2 Community - For excellent documentation and support
  • Gazebo Team - For powerful simulation tools
  • fusion2urdf - For CAD to URDF conversion
  • Open source robotics community

Project Stats

GitHub last commit GitHub issues GitHub stars


Related Projects


⭐ If you find this project useful, please consider giving it a star!

About

Differential drive robot simulation in ROS2/Gazebo. Baselie for developing and testing autonomous navigation (Nav2), SLAM, computer vision and autonomy algorithms.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors