60 lines
2.0 KiB
Markdown
60 lines
2.0 KiB
Markdown
# RPLIDAR A1 — LIDAR Container
|
||
|
||
ROS 2 container for the Slamtec RPLIDAR A1, using the upstream
|
||
[sllidar_ros2](https://github.com/Slamtec/sllidar_ros2) driver cloned at build time.
|
||
|
||
---
|
||
|
||
## Architecture
|
||
|
||
```
|
||
┌──────────────────────────────────────┐
|
||
│ sllidar_ros2 (rplidar_node) │
|
||
│ │
|
||
│ serial 115200 baud │
|
||
│ angle_compensate = true │
|
||
│ ▼ │
|
||
│ /dev/ttyUSB0 ──────> RPLIDAR A1 │
|
||
│ │
|
||
/scan <───────│ LaserScan @ ~10 Hz │
|
||
(sensor_msgs/ │ 360° scan, range 0.15–12 m │
|
||
LaserScan) │ │
|
||
└──────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## How the build works
|
||
|
||
The [Dockerfile](Dockerfile) clones the upstream driver from GitHub at build time:
|
||
|
||
```
|
||
git clone https://github.com/Slamtec/sllidar_ros2.git
|
||
colcon build --packages-select sllidar_ros2
|
||
```
|
||
|
||
To pin to a specific branch or tag, pass `SLLIDAR_REF` as a build arg:
|
||
|
||
```bash
|
||
docker compose build --build-arg SLLIDAR_REF=v2.0.0 lidar
|
||
```
|
||
|
||
---
|
||
|
||
## Published topics
|
||
|
||
| Topic | Type | Description |
|
||
|---|---|---|
|
||
| `/scan` | `sensor_msgs/LaserScan` | 360° laser scan |
|
||
|
||
## Device
|
||
|
||
The RPLIDAR A1 connects via USB serial at `/dev/ttyUSB0` (default), 115200 baud.
|
||
The container receives access to that device via the `devices` mapping in
|
||
[docker-compose.yml](../docker-compose.yml). To use a different port, set
|
||
`LIDAR_PORT` in your `.env` file:
|
||
|
||
```bash
|
||
LIDAR_PORT=/dev/ttyUSB1
|
||
```
|