Skip to content

ROBOTIS-move/antbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

2 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŒ English ยท Korean

Antbot Banner

ROS 2 Humble C++17 Python 3 Ubuntu 22.04 Jetson Orin

GitHub Stars GitHub Forks GitHub Issues GitHub Last Commit GitHub Repo Size


4-Wheel Independent Swerve-Drive Platform by ROBOTIS AI

Get Started ยป โ€‚ยทโ€‚ Packages ยป โ€‚ยทโ€‚ Architecture ยป



๐Ÿ“Œ Table of Contents

  1. About
  2. Packages
  3. Architecture
  4. Directory Structure
  5. Getting Started
  6. Usage
  7. Hardware Specifications
  8. ROS 2 Topics & Interfaces
  9. License
  10. Contact
  11. Contributors

๐Ÿค– About

Antbot is a production-ready, open-source ROS 2 robot stack designed for the ROBOTIS AI Antbot autonomous delivery robot โ€” a 4-wheel independent swerve-drive platform built for last-mile delivery.

This repository provides a complete, modular software stack to operate the robot:

  • ๐Ÿ›ž Swerve-drive controller with inverse kinematics, motion profiling, and odometry
  • ๐Ÿ”Œ Hardware interface for the ANT-RCU board via Dynamixel Protocol 2.0
  • ๐Ÿ“ท Multi-camera driver supporting V4L2, USB, and Orbbec Gemini 336L RGB-D
  • ๐Ÿ“ก Sensor integration for 2D/3D LiDAR, IMU, and GNSS
  • ๐Ÿค– Complete URDF model with sensor frames and visual meshes
  • ๐Ÿš€ One-command bringup to launch the entire robot system

Built entirely on ROS 2 Humble and the ros2_control framework.

(back to top)


๐Ÿ“ฆ Packages

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_camera Multi-driver camera package (V4L2 / USB / Orbbec Gemini 336L RGB-D)
antbot_imu IMU driver with complementary filter and auto-calibration
antbot_teleop Keyboard/joystick teleoperation with holonomic velocity control

External sensor drivers included: vanjee_lidar_sdk (3D LiDAR) and vanjee_lidar_msg (LiDAR message definitions).

(back to top)


๐Ÿ›๏ธ Architecture

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 / Gemini 336L    โ”‚โ”€โ”€โ”€โ”€ /sensor/camera/*/image_raw
          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

          โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
          โ”‚   vanjee_lidar_sdk            โ”‚
          โ”‚   Vanjee WLR-722 (3D)         โ”‚โ”€โ”€โ”€โ”€ /sensor/lidar_3d/point_cloud
          โ”‚   COIN D4 (2D) ร— 2            โ”‚โ”€โ”€โ”€โ”€ /sensor/lidar_2d_{front,back}/scan
          โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Launch Dependency Graph

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ร— COIN D4 (USB serial)
 โ”œโ”€โ”€ lidar_3d.launch.py                โ†’  Vanjee WLR-722 (Ethernet)
 โ”œโ”€โ”€ ublox_gps_node-launch.py          โ†’  u-blox GNSS
 โ”œโ”€โ”€ camera.launch.py                  โ†’  V4L2 + USB + RGB-D cameras
 โ””โ”€โ”€ teleop_joy.launch.py             โ†’  DualSense joystick teleop

(back to top)


๐Ÿ“‚ Directory Structure

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)
โ”œโ”€โ”€ vanjee_lidar_sdk/              # Vanjee 3D LiDAR driver
โ”œโ”€โ”€ vanjee_lidar_msg/              # Vanjee LiDAR message definitions
โ”œโ”€โ”€ docs/                          # Documentation and images
โ”œโ”€โ”€ setting.sh                     # Dependency installation script
โ””โ”€โ”€ additional_repos.repos         # External repository list for vcs import

(back to top)


๐Ÿš€ Getting Started

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 setting.sh
cd ~/antbot_ws && colcon build --symlink-install && source install/setup.bash
ros2 launch antbot_bringup bringup.launch.py

Prerequisites

  • Ubuntu
  • ROS 2
  • C++

Installation

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.git

2. Run the setup script to install dependencies (system tools, external repos, and ROS dependencies via rosdep):

cd ~/antbot_ws/src/antbot
bash setting.sh

3. Build the workspace:

cd ~/antbot_ws
colcon build --symlink-install

4. Source the workspace:

source ~/antbot_ws/install/setup.bash

๐Ÿ’ก Tip: Add source ~/antbot_ws/install/setup.bash to your ~/.bashrc for automatic sourcing on every new terminal.

(back to top)


๐ŸŽฎ Usage

Full Robot Bringup

Launch the complete system โ€” ros2_control, swerve controller, IMU, LiDAR, GPS, and cameras:

ros2 launch antbot_bringup bringup.launch.py

Visualization

Monitor all sensors with RViz (run on a separate PC):

ros2 launch antbot_bringup view.launch.py

Preview the URDF model (no hardware required):

ros2 launch antbot_description description.launch.py

Teleoperation

Drive 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.py

Key bindings:

Key Action
W / X Forward / Backward
A / D Strafe Left / Right
Q / E Rotate CCW / CW
S Stop
1 ~ 9 Speed Level
ESC Quit

Joystick button bindings (DualSense):

Input Action
Left Stick Y Forward / Backward
Left Stick X Curve turning (while moving)
L2 / R2 In-place rotate CCW / CW
Triangle / Cross Speed level UP / DOWN
Square / Circle Cargo lock / unlock
L1 / R1 Headlight / Wiper toggle

Manual Velocity Commands

# 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}}"

(back to top)


๐Ÿ”ง Hardware Specifications

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 (Orbbec Gemini 336L) + 4ร— Mono (Novitec V4L2)
3D LiDAR Vanjee WLR-722 (Ethernet)
2D LiDAR 2ร— COIN D4 (USB Serial)
IMU 6-axis (3-axis accelerometer + 3-axis gyroscope)
GNSS u-blox GPS receiver
Battery BMS monitored (voltage, current, SoC, temperature)

(back to top)


๐Ÿ“ก ROS 2 Topics & Interfaces

Published Topics

Topic Type Description
/odom nav_msgs Robot odometry from swerve controller
/tf tf2_msgs Transform tree
/imu_node/imu/accel_gyro sensor_msgs IMU data (quaternion, angular velocity, linear acceleration)
/sensor/camera/*/image_raw sensor_msgs Camera image streams
/sensor/camera/*/camera_info sensor_msgs Camera calibration data
/sensor/lidar_3d/point_cloud sensor_msgs 3D point cloud
/sensor/lidar_2d_front/scan sensor_msgs Front 2D laser scan
/sensor/lidar_2d_back/scan sensor_msgs Rear 2D laser scan

Subscribed Topics

Topic Type Description
/cmd_vel geometry_msgs Velocity commands (linear x/y + angular z)

Services

Service Type Description
cargo/command antbot_interfaces/CargoCommand Lock / unlock the cargo door
headlight/operation std_srvs/SetBool Turn headlight on / off
wiper/operation antbot_interfaces/WiperOperation Set wiper mode (OFF / ONCE / REPEAT)

Key Dependencies

Package Purpose
dynamixel_sdk Dynamixel Protocol 2.0 communication
ros2_control Controller manager framework
generate_parameter_library Declarative parameter generation
cv_bridge ROS โ†” OpenCV image conversion
tinyxml2 Control table XML parsing
rviz_imu_plugin IMU visualization in RViz

(back to top)


๐Ÿ“„ License

Distributed under the Apache License 2.0. See LICENSE for more information.

Copyright 2026 ROBOTIS AI CO., LTD.

(back to top)


๐Ÿ‘ฅ Contributors

(back to top)


๐Ÿ“ฌ Contact

ROBOTIS AI CO., LTD.

(back to top)


ROBOTIS
Made with ๐Ÿ’š by ROBOTIS AI

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors