๐ English ยท Korean
Every road. Every delivery.
4-Wheel Independent Swerve Drive Platform by ROBOTIS AI
Get Started ยป
โยทโ
Packages ยป
โยทโ
Architecture ยป
AntBot is a production-ready, open-source software stack for the ROBOTIS AI AntBot autonomous delivery robot, a 4-Wheel Independent Swerve Drive platform built for last-mile delivery.
Go anywhere. Open everywhere. โ Read the full story โ
This repository provides a complete, modular software stack to operate the robot:
- Swerve-drive controller โ inverse kinematics, motion profiling, and odometry
- Hardware interface โ ANT-RCU board via Dynamixel Protocol 2.0
- Multi-camera driver โ V4L2, USB, and RGB-D
- Sensor integration โ 2D/3D LiDAR, IMU, and GNSS
- Complete URDF model โ sensor frames and visual meshes
- One-command bringup โ launch the entire robot system
| Package | Description |
|---|---|
antbot |
Meta-package for the AntBot project |
antbot_bringup |
Launch files for all hardware drivers, controllers, and sensors |
antbot_description |
URDF / Xacro robot model with sensor frames and meshes |
antbot_swerve_controller |
ros2_control swerve-drive controller with IK, motion profiling, and odometry |
antbot_hw_interface |
ros2_control SystemInterface plugin for the RCU board |
antbot_libs |
Shared C++ library for Dynamixel Protocol 2.0 communication |
antbot_interfaces |
Custom ROS 2 message and service definitions |
antbot_camera |
Multi-driver camera package (V4L2 / USB / RGB-D) |
antbot_imu |
IMU driver with complementary filter and auto-calibration |
antbot_teleop |
Keyboard/joystick teleoperation with holonomic velocity control |
antbot_navigation |
Nav2 navigation stack with SLAM, localization (EKF), and path planning |
antbot_gazebo |
Ignition Gazebo simulation environment with ros2_control integration |
External sensor drivers included:
vanjee_lidar_sdk(3D LiDAR) andvanjee_lidar_msg(LiDAR message definitions).
System Block Diagram (click to expand)
antbot_bringup antbot_description
(launch files) (URDF / Xacro, meshes)
โ โ
โ launches โ robot_description
โผ โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ros2_control Framework โ
โ (Controller Manager) โ
โ โ
โ antbot_swerve_controller โโโโโ /cmd_vel โ
โ (IK, motion profiling, odometry) โ
โ โโโ /odom โ
โ โโโ /tf โ
โโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
read() โ write()
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ antbot_hw_interface โ
โ (BoardInterface plugin) โ
โ โ
โ Wheel โ Steering โ
โ Encoder โ Motor โ
โ Battery โ Ultrasound โ
โ Cargo โ Headlight โ Wiper โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโ
โ antbot_libs โ โโโโโโโโโโโโโโโโโโโโโโโ
โ Communicator โ โ antbot_imu โ
โ ControlTableParser โ โ (ImuNode) โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโฌโโโโโโโโโโโ
โ โ
โโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโ
โ Serial (Dynamixel Protocol 2.0) โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโ
โ โ
โโโโโโโโผโโโโโโโ โโโโโโโโผโโโโโโโ
โ ANT-RCU โ โ IMU Board โ
โ Motors x4 โ โ Accel/Gyro โ
โ Steering x4โ โโโโโโโโโโโโโโโ
โ Encoders โ
โ Battery โ
โโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ antbot_camera โ
โ V4L2 / USB / RGB-D โโโโโ /sensor/camera/*/image_raw
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ vanjee_lidar_sdk โ
โ 3D LiDAR โโโโโ /sensor/lidar_3d/point_cloud
โ 2D LiDAR ร 2 โโโโโ /sensor/lidar_2d_{front,back}/scan
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
bringup.launch.py
โโโ robot_state_publisher.launch.py โ URDF โ /tf, /tf_static
โโโ controller.launch.py โ ros2_control + swerve controller
โโโ imu.launch.py โ 6-axis IMU
โโโ lidar_2d.launch.py โ 2ร 2D LiDAR (USB serial)
โโโ lidar_3d.launch.py โ 3D LiDAR (Ethernet)
โโโ ublox_gps_node-launch.py โ u-blox GNSS
โโโ camera.launch.py โ V4L2 + USB + RGB-D cameras
โโโ teleop_joy.launch.py โ DualSense joystick teleop
antbot/
โโโ antbot/ # Meta-package
โโโ antbot_bringup/ # Launch files (bringup, view, controller, sensors)
โโโ antbot_description/ # URDF / Xacro model, meshes, RViz config
โโโ antbot_swerve_controller/ # Swerve-drive controller (IK, odometry, profiling)
โโโ antbot_hw_interface/ # ros2_control hardware plugin for ANT-RCU
โโโ antbot_libs/ # Shared C++ library (Dynamixel comms, XML parsing)
โโโ antbot_interfaces/ # Custom ROS 2 message and service definitions
โโโ antbot_camera/ # Multi-driver camera node (V4L2, USB, RGB-D)
โโโ antbot_imu/ # IMU driver with complementary filter
โโโ antbot_teleop/ # Keyboard/joystick teleoperation (Python)
โโโ antbot_navigation/ # Nav2 navigation (SLAM, EKF localization, path planning)
โโโ antbot_gazebo/ # Ignition Gazebo simulation (worlds, URDF, controllers)
โโโ vanjee_lidar_sdk/ # Vanjee 3D LiDAR driver
โโโ vanjee_lidar_msg/ # Vanjee LiDAR message definitions
โโโ docs/ # Documentation and images
โโโ scripts/ # Utility scripts
โ โโโ setting.sh # Dependency installation script
โโโ additional_repos.repos # External repository list for vcs import
Quick Start โ Already have ROS 2 Humble installed?
mkdir -p ~/antbot_ws/src && cd ~/antbot_ws/src git clone https://github.com/ROBOTIS-move/antbot.git cd ~/antbot_ws/src/antbot && bash scripts/setting.sh cd ~/antbot_ws && colcon build --symlink-install && source install/setup.bash ros2 launch antbot_bringup bringup.launch.py
1. Create a workspace and clone the repository:
mkdir -p ~/antbot_ws/src && cd ~/antbot_ws/src
git clone https://github.com/ROBOTIS-move/antbot.git2. Run the setup script to install dependencies (system tools, external repos, and ROS dependencies via rosdep):
cd ~/antbot_ws/src/antbot
bash scripts/setting.sh3. Build the workspace:
cd ~/antbot_ws
colcon build --symlink-install4. Source the workspace:
source ~/antbot_ws/install/setup.bash๐ก Tip: Add
source ~/antbot_ws/install/setup.bashto your~/.bashrcfor automatic sourcing on every new terminal.
Launch the complete system โ ros2_control, swerve controller, IMU, LiDAR, GPS, and cameras:
ros2 launch antbot_bringup bringup.launch.pyMonitor all sensors with RViz (run on a separate PC):
ros2 launch antbot_bringup view.launch.pyPreview the URDF model (no hardware required):
ros2 launch antbot_description description.launch.pyDrive the robot with your keyboard/joystick:
# Keyboard teleop (run in terminal)
ros2 run antbot_teleop teleop_keyboard
# Joystick teleop (DualSense, USB)
ros2 launch antbot_teleop teleop_joy.launch.pyKey bindings:
| Key | Action |
|---|---|
W / X |
Forward / Backward |
A / D |
Strafe Left / Right |
Q / E |
Rotate CCW / CW |
1 ~ 9 |
Speed Level |
ESC |
Quit |
Joystick button bindings (DualSense):
# Drive forward at 0.5 m/s
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist \
"{linear: {x: 0.5, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
# Strafe right at 0.3 m/s
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist \
"{linear: {x: 0.0, y: -0.3, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.0}}"
# Rotate in place at 1.0 rad/s
ros2 topic pub /cmd_vel geometry_msgs/msg/Twist \
"{linear: {x: 0.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 1.0}}"SLAM mapping โ build a map while driving:
ros2 launch antbot_navigation slam.launch.pyAutonomous navigation โ navigate using a saved map:
ros2 launch antbot_navigation navigation.launch.pyEKF localization only:
ros2 launch antbot_navigation localization.launch.pyRun the full simulation without physical hardware:
ros2 launch antbot_gazebo gazebo.launch.pyTeleoperate in simulation:
ros2 run antbot_teleop teleop_keyboard| Component | Specification |
|---|---|
| Drive Type | 4-Wheel Independent Swerve Drive |
| Control Board | ANT-RCU (Dynamixel Protocol 2.0, ID 200) |
| Communication | USB Serial @ 4 Mbps |
| Wheel Motors | 4ร (M1โM4), range: โ185 ~ 185 RPM |
| Steering Motors | 4ร (S1โS4), range: โ56.2ยฐ ~ 56.2ยฐ |
| Cameras | 1ร Stereo RGB-D + 4ร Mono (V4L2) |
| 3D LiDAR | 3D LiDAR (Ethernet) |
| 2D LiDAR | 2ร 2D LiDAR (USB Serial) |
| IMU | 6-axis (3-axis accelerometer + 3-axis gyroscope) |
| GNSS | u-blox GPS receiver |
| Battery | BMS monitored (voltage, current, SoC, temperature) |
| Topic | Type | Description |
|---|---|---|
/cmd_vel |
Velocity commands (linear x/y + angular z) |
| Service | Type | Description |
|---|---|---|
/cargo/command |
Lock / unlock the cargo door | |
/headlight/operation |
Turn headlight on / off | |
/wiper/operation |
Set wiper mode (OFF / ONCE / REPEAT) |
Distributed under the Apache License 2.0. See LICENSE for more information.
Copyright 2026 ROBOTIS AI CO., LTD.
ROBOTIS AI CO., LTD.
- ๐ Website: www.robotis.com
- ๐ง Contact: peter@robotis.com
.png)