Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

CoBot — ROS 2 Robotic Platform

ROS 2 Jazzy · Ubuntu 24.04

A distributed ROS 2 system split across two workspaces: a lightweight edge node running on a Raspberry Pi, and a compute-heavy brain running on a CUDA-enabled laptop. Together they drive a 4WD mobile base with a 6-DOF xArm manipulator, 3D LiDAR, and RGB-D vision.


The Robot

CoBot Robot


Demo Video

https://youtu.be/pPVNTSV94Bw?si=5ImayjD9v3hi-nGu


System Architecture

Four ROS2 nodes communicating over well-defined topics and message types:

System Architecture

Node Role
Perception Node ZED Mini interface, object detection, depth filtering
TF Broadcaster Node Converts detections to TF frames, maintains ROS2 TF tree
IK & Control Node Analytical IK solver + trajectory generation
Arm Controller Joint position controller → xArm 1s hardware interface

Object Detection to Robotic Picking Workflow

End-to-end pipeline from camera input to physical pick execution:

Picking Workflow

Pipeline Steps:

  1. ZED Mini Camera captures RGB + depth frames
  2. Object Detection Node identifies target, extracts 3D (x, y, z) in camera frame
  3. Hand-Eye Calibration (ArUco markers, AX = XB) resolves zed_camera_link → base_link
  4. TF Broadcasting publishes target_link into the ROS2 TF tree
  5. Custom Processing Node computes joint angles via IK
  6. Joint Trajectory Command sends angles to the xArm controller
  7. xArm Motion Execution picks the object

ZED Mini Point Cloud

Raw stereo point cloud used for depth-aware object localization:

Point Cloud


2D Mapping (SLAM)

Occupancy grid generated during navigation for path planning on the mobile base:

Occupancy Map


Current Status

Module Status
4WD Mobile Base ✅ Operational
xArm Driver (Serial Bridge) ✅ Operational
2D LiDAR (RPLidar) ✅ Operational
3D LiDAR Integration ✅ Added to system
3D Mapping (FAST-LIO) ✅ 3D map successfully generated
Autonomous Navigation (Nav2) 🔧 In Progress
cobot_perception (ZED Mini + IK) 🔧 In Development

Latest: Added a 3D LiDAR to the system and successfully created a 3D map using FAST-LIO. Currently working on full autonomous navigation with Nav2.


Repository Structure

CoBot-ROS2/
├── CoBot-ROS2/               # Edge Node workspace (Raspberry Pi)
│   ├── src/
│   │   ├── bumperbot_*       # Core robot packages
│   │   ├── xarm_driver/      # Serial bridge to xArm servos
│   │   ├── cobot_perception/ # ZED Mini vision + ikpy IK solver
│   │   └── my_robot_bringup/ # Launch files for the Pi
│   └── README.md
│
├── cobot_compute_ws/         # Compute Brain workspace (Laptop / CUDA)
│   ├── src/
│   │   ├── bumperbot_*       # Shared packages built on laptop side
│   │   └── my_robot_bringup/ # SLAM, Nav2, EKF launch files
│   └── README.md
│
├── docs/images/              # Project images for documentation
└── README.md                 # You are here

Quick Start

Edge Node (Raspberry Pi)

cd CoBot-ROS2
source install/setup.bash
ros2 launch my_robot_bringup edge_node.launch.py

Compute Brain (Laptop)

cd cobot_compute_ws
source install/setup.bash
ros2 launch my_robot_bringup compute_brain.launch.py

Both machines must share the same ROS_DOMAIN_ID:

export ROS_DOMAIN_ID=42
export ROS_LOCALHOST_ONLY=0

Workspace READMEs

About

ROS 2 Jazzy distributed robotic platform — 4WD base + xArm + 3D LiDAR + FAST-LIO + Nav2

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages