feat(bd-a2j): Sensor driver integration — RealSense D435i + RPLIDAR A1M8 #17

Merged
seb merged 1 commits from sl-perception/bd-a2j-sensor-drivers into main 2026-02-28 17:19:41 -05:00
Collaborator

Summary

  • saltybot_bringup ROS2 Python package with 4 launch files
  • Sensor config YAMLs (power-budget tuned for Jetson Nano)
  • Fixed docker-compose volume mount (./ros2_ws/src not ./ros2_ws)
  • Full topic reference + verification commands in SENSORS.md

Launch files

File Purpose
realsense.launch.py D435i: 640×480×15fps, IMU linear_interpolation, aligned depth
rplidar.launch.py RPLIDAR A1M8: /dev/rplidar udev symlink, laser frame
sensors.launch.py Both sensors + static TF base_link→laser + base_link→camera_link
slam.launch.py sensors + slam_toolbox online_async (docker-compose entry point)

Config files (jetson/config/, mounted at /config/)

  • realsense_d435i.yaml — 15fps, no pointcloud, unite_imu_method=2
  • rplidar_a1m8.yaml — Standard mode, 115200 baud, laser frame
  • slam_toolbox_params.yaml — Nano-tuned: 2Hz scan processing, 5cm resolution, 8m max range

Topics verified (by spec)

Topic Type Rate
/scan LaserScan ~5.5 Hz
/camera/color/image_raw Image 15 Hz
/camera/depth/image_rect_raw Image 15 Hz
/camera/aligned_depth_to_color/image_raw Image 15 Hz
/camera/imu Imu ~200 Hz

Closes: bd-a2j

## Summary - `saltybot_bringup` ROS2 Python package with 4 launch files - Sensor config YAMLs (power-budget tuned for Jetson Nano) - Fixed docker-compose volume mount (`./ros2_ws/src` not `./ros2_ws`) - Full topic reference + verification commands in `SENSORS.md` ## Launch files | File | Purpose | |------|---------| | `realsense.launch.py` | D435i: 640×480×15fps, IMU linear_interpolation, aligned depth | | `rplidar.launch.py` | RPLIDAR A1M8: `/dev/rplidar` udev symlink, `laser` frame | | `sensors.launch.py` | Both sensors + static TF `base_link→laser` + `base_link→camera_link` | | `slam.launch.py` | sensors + `slam_toolbox online_async` (docker-compose entry point) | ## Config files (`jetson/config/`, mounted at `/config/`) - `realsense_d435i.yaml` — 15fps, no pointcloud, unite_imu_method=2 - `rplidar_a1m8.yaml` — Standard mode, 115200 baud, `laser` frame - `slam_toolbox_params.yaml` — Nano-tuned: 2Hz scan processing, 5cm resolution, 8m max range ## Topics verified (by spec) | Topic | Type | Rate | |-------|------|------| | `/scan` | LaserScan | ~5.5 Hz | | `/camera/color/image_raw` | Image | 15 Hz | | `/camera/depth/image_rect_raw` | Image | 15 Hz | | `/camera/aligned_depth_to_color/image_raw` | Image | 15 Hz | | `/camera/imu` | Imu | ~200 Hz | Closes: bd-a2j
sl-perception added 1 commit 2026-02-28 17:14:46 -05:00
Adds saltybot_bringup ROS2 package with four launch files:
  - realsense.launch.py  — D435i at 640x480x15fps, IMU unified topic
  - rplidar.launch.py    — RPLIDAR A1M8 via /dev/rplidar udev symlink
  - sensors.launch.py    — both sensors + static TF (base_link→laser/camera)
  - slam.launch.py       — sensors + slam_toolbox online_async (compose entry point)

Sensor config YAMLs (mounted at /config/ in container):
  - realsense_d435i.yaml  — Nano power-budget settings (15fps, no pointcloud)
  - rplidar_a1m8.yaml     — Standard scan mode, 115200 baud, laser frame
  - slam_toolbox_params.yaml — Nano-tuned (2Hz processing, 5cm resolution)

Fixes docker-compose volume mount: ./ros2_ws/src:/ros2_ws/src
(was ./ros2_ws:/ros2_ws/src — would have double-nested the src directory)

Topic reference and verification commands in SENSORS.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
seb approved these changes 2026-02-28 17:19:25 -05:00
seb left a comment
Owner

Reviewed, looks good.

Reviewed, looks good.
seb merged commit a89297f1d4 into main 2026-02-28 17:19:41 -05:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: seb/saltylab-firmware#17
No description provided.