Vision system for Eurobot 2026 competition. Supports 4 RealSense cameras with ArUco marker detection.
cd docker/
bash start_docker.shOption A: tmux (recommended for debugging)
./start_vision_tmux.sh- Window 0: 4 camera panes (front, back, left, right)
- Window 1: Detector + Scanner nodes
- Window 2: RViz
Option B: Single launch file
# Inside Docker container
source /opt/ros/humble/setup.bash
colcon build
source install/setup.bash
ros2 launch aruco_object multi_camera.launch.py| Parameter | Default | Description |
|---|---|---|
default_active_camera |
right |
Initial active camera (front/back/left/right) |
team_color |
blue |
Team color (blue/yellow) |
log_level |
info |
ROS log level |
Example:
ros2 launch aruco_object multi_camera.launch.py default_active_camera:=front team_color:=yellowOnly one camera processes at a time. Publish to /robot/dock_side (Int16):
| Side | Value |
|---|---|
| Front | 0 |
| Right | 1 |
| Back | 2 |
| Left | 3 |
ros2 topic pub /robot/dock_side std_msgs/msg/Int16 "data: 2" -1 # Switch to backxhost +local:docker # Run BEFORE entering container
ros2 run rviz2 rviz2start_vision_tmux.sh / multi_camera.launch.py
├── 4× RealSense cameras (640x480@15fps, depth disabled)
├── 4× object_detector nodes (ArUco pose detection)
└── 4× aruco_row_scanner nodes (hazelnut flip detection)
All nodes subscribe to /robot/dock_side - only the matching camera side processes images.
Launch individual camera, detector, or scanner nodes with camera position:
start docker first
docker exec -it vision-ws bash
ros2 run aruco_object aruco_detector_node --ros-args \
-p camera_position:=leftros2 run aruco_object aruco_row_scanner --ros-args \
-p camera_position:=front \
-p team_color:=blue# Launch all 4 detector nodes
ros2 launch aruco_object detector_multi.launch.py default_dock_side:=1
# Launch all 4 scanner nodes
ros2 launch aruco_object scanner_multi.launch.py default_dock_side:=1 team_color:=blueuse rs-enumerate-devices to list the serial number
left: 218622276534
right: 218622276687
back: 419122270813
front (d435): 313522070126
ros2 launch realsense2_camera rs_launch.py \
camera_namespace:=right \
camera_name:=right \
serial_no:="'218622276687'" \
rgb_camera.color_profile:=640,480,15 \
enable_depth:=false
ros2 launch realsense2_camera rs_launch.py \
camera_namespace:=back \
camera_name:=back \
serial_no:="'419122270813'" \
rgb_camera.color_profile:=640,480,15 \
enable_depth:=false
ros2 launch realsense2_camera rs_launch.py \
camera_namespace:=left \
camera_name:=left \
serial_no:="'218622276534'" \
rgb_camera.color_profile:=640,480,15 \
enable_depth:=false