Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Delivery Robot ROS

Delivery robot CAD render Delivery robot in Gazebo city simulation

An open-source ROS 2 and Gazebo simulation project for a six-wheel autonomous delivery robot. The project contains a SolidWorks-derived robot description, Gazebo simulation assets, simulated onboard sensors, keyboard teleoperation, and a lightweight autonomous city-delivery demo from Shop A to Shop B with obstacle avoidance.

Highlights

  • ROS 2 Jazzy package for a six-wheel delivery robot.
  • Xacro/URDF robot model using exported SolidWorks visual meshes.
  • Gazebo Harmonic simulation with differential drive over six wheel joints.
  • Simulated front LiDAR published as /scan.
  • Sensor frames for Intel RealSense D435i, LiDAR, IMU, and ultrasonic sensors.
  • WASD keyboard teleoperation.
  • City-like Gazebo world with shops, road, sidewalks, crosswalks, trees, lamps, a parked car, and pedestrian obstacles.
  • Reactive autonomous navigation from Shop A to Shop B using waypoints and LiDAR obstacle avoidance.
  • Dynamic speed control based on distance to waypoints, final goal, heading error, and obstacle distance.

Project Layout

Delivery-Robot-ROS/
+-- docs/
|   +-- images/
|       +-- gazebo-city-autonomy.png
+-- src/
|   +-- delivery_robot_description/
|       +-- config/
|       +-- launch/
|       +-- meshes/
|       +-- rviz/
|       +-- scripts/
|       +-- urdf/
|       +-- worlds/
+-- .gitignore
+-- LICENSE
+-- README.md

Requirements

  • Ubuntu 24.04 or WSL2 Ubuntu.
  • ROS 2 Jazzy.
  • Gazebo Harmonic / Gazebo Sim 8.
  • colcon, xacro, ros_gz_sim, ros_gz_bridge, robot_state_publisher.

Install the common runtime dependencies:

sudo apt update
sudo apt install -y \
  ros-jazzy-ros-gz-sim \
  ros-jazzy-ros-gz-bridge \
  ros-jazzy-robot-state-publisher \
  ros-jazzy-joint-state-publisher-gui \
  ros-jazzy-xacro \
  ros-jazzy-rviz2 \
  ros-jazzy-teleop-twist-keyboard

Build

From the repository root:

source /opt/ros/jazzy/setup.bash
colcon build --symlink-install
source install/setup.bash

If you keep this repository on Windows and build inside WSL, copy or mount it into your ROS workspace first.

Run The City Autonomy Demo

This launches Gazebo with the city world, spawns the robot at Shop A, starts the Gazebo-ROS bridges, and runs the autonomous waypoint navigator toward Shop B.

source /opt/ros/jazzy/setup.bash
source install/setup.bash
ros2 launch delivery_robot_description street_autonomy.launch.py

The robot will:

  • start near Shop A,
  • follow a waypoint route toward Shop B,
  • slow down near waypoints and the final goal,
  • use /scan to detect obstacles,
  • steer around the pedestrian / parked obstacle,
  • stop near Shop B.

Keyboard Driving

Launch Gazebo and the bridges:

ros2 launch delivery_robot_description keyboard_drive.launch.py

In another terminal:

ros2 run delivery_robot_description wasd_teleop.py

Controls:

W  forward
S  backward
A  turn left
D  turn right
X  stop
Q  quit

Main Topics

/cmd_vel    geometry_msgs/msg/Twist
/odom       nav_msgs/msg/Odometry
/scan       sensor_msgs/msg/LaserScan
/tf         tf2_msgs/msg/TFMessage

Robot Notes

The simulated robot is based on the real delivery robot CAD and design assumptions:

  • total robot mass: 25 kg,
  • payload capacity: 12 kg,
  • six wheels, three per side,
  • each side is driven by one 150 W geared DC motor through a chain/gear mechanism,
  • wheel diameter: approximately 195 mm,
  • front passive suspension,
  • rear active suspension concept with approximately +/- 17 degrees of travel,
  • D435i camera height: 485 mm from ground,
  • LiDAR height: 445 mm from ground,
  • three ultrasonic sensors in front and three in rear.

Current Simulation Scope

This project currently implements lightweight reactive autonomy, not a full Nav2 navigation stack. It is useful for simulation bring-up, sensor placement, Gazebo testing, and early behavior prototyping.

Planned next steps:

  • Nav2 integration with costmaps and planner,
  • better robot collision geometry and footprint tuning,
  • D435i RGB/depth camera Gazebo plugins,
  • ultrasonic range sensor plugins,
  • active suspension joints and controllers,
  • higher quality visual assets and textures.

Releases

DOI

Archived releases of this repository are published on Zenodo: 10.5281/zenodo.21962178.

License

This project is released under the MIT License. See LICENSE.

About

ROS 2 Jazzy and Gazebo Harmonic simulation for a six-wheel autonomous delivery robot with CAD meshes, LiDAR obstacle avoidance, WASD teleop, and city waypoint navigation.

Topics

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages