Files
OrbbecSDK_ROS2/Lidar_CN.MD
T
2025-06-11 15:25:01 +08:00

143 lines
5.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OrbbecSDK ROS2 雷达驱动
此 ROS2 驱动程序支持您使用Orbbec 单线/多线 LiDAR,本文档提供安装说明、使用指南以及其他重要信息,帮助您快速上手使用该驱动程序。
## 1. 安装
### 1.1 先决条件
在使用 OrbbecSDK ROS2 LiDAR驱动程序之前,请确保您的系统上安装了以下依赖项:
- **ROS2**: 有效安装 ROS2(Humble、Foxy 或其他受支持的发行版)。
- 如果您需要帮助,请参阅 [ROS2 安装指南](https://docs.ros.org/en/foxy/Installation.html).
### 1.2 安装 deb 依赖项
```bash
# assume you have sourced ROS environment, same blow
sudo apt install libgflags-dev nlohmann-json3-dev \
ros-$ROS_DISTRO-image-transport ros-${ROS_DISTRO}-image-transport-plugins ros-${ROS_DISTRO}-compressed-image-transport \
ros-$ROS_DISTRO-image-publisher ros-$ROS_DISTRO-camera-info-manager \
ros-$ROS_DISTRO-diagnostic-updater ros-$ROS_DISTRO-diagnostic-msgs ros-$ROS_DISTRO-statistics-msgs \
ros-$ROS_DISTRO-backward-ros libdw-dev
```
### 1.3 安装 udev 规则
```bash
cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/scripts
sudo bash install_udev_rules.sh
sudo udevadm control --reload-rules && sudo udevadm trigger
```
### 2. 入门
```bash
cd ~/ros2_ws/
# build release, Default is Debug
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release
```
启动雷达节点
* 第一个终端
```bash
. ./install/setup.bash
ros2 launch orbbec_camera lidar.launch.py
```
* 第二个终端
```bash
. ./install/setup.bash
rviz2
```
1.打开Rviz2。
2.添加一个 `PointCloud2`或者 `LaserScan`显示。
3.`PointCloud2`选择 `/lidar/cloud/points`话题,`LaserScan`选择 `/lidar/scan/points`话题。
4.将 `Fixed Frame`设置为 `lidar_lidar_frame`,以正确对齐数据。
* `PointCloud2`示例可视化:
![module in rviz2](./docs/images/lidar0.jpg)
* `LaserScan`示例可视化:
![module in rviz2](./docs/images/lidar1.png)
## 2. 用法
### 2.1 运行驱动程序
要启动驱动程序,请启动提供的 ROS2 启动文件:
```bash
source install/setup.bash
# Launch the driver with point cloud data
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_POINT
# Launch the driver with sphere point cloud data
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_SPHERE_POINT
# Launch the driver with laser scan data
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_SCAN
```
此命令将启动与 Orbbec LiDAR 设备接口的节点。运行此命令前,请确保 LiDAR 硬件已正确连接。
### 2.2 获取已连接雷达的设备信息
```bash
ros2 run orbbec_camera list_devices_node
```
此命令将列出已连接的 LiDAR 设备,并显示它们各自的 IP 地址和端口。您可以使用这些信息来配置驱动程序以连接到特定设备。
### 2.3 检查雷达支持哪些配置
```bash
ros2 run orbbec_camera list_camera_profile_mode_node
```
### 2.4 参数和配置
`lidar.launch.py`文件包含驱动程序的默认参数。您可以通过修改启动文件或创建自定义配置文件来自定义这些设置。关键参数包括:
- **device_type**:启动的设备类型。可选的值:`lidar`、`camera`。该参数设置为 `lidar`则启动雷达设备,设置为 `camera`则启动相机设备。
- **camera_name**:启动节点命名空间。
- **device_num**:设备数量。如果需要启动多个设备,则必须填写此项。
- **upgrade_firmware**:固件升级功能。输入参数是固件路径。
- **connection_delay**:重新打开设备的延迟时间(以毫秒为单位)。并且在热插拔时立即重新打开设备可能会导致固件崩溃。
- **publish_tf**:启用 TF 发布。
- **tf_publish_rate**:TF 发布频率。
- **lidar_format**:雷达的数据格式。可选值:`LIDAR_POINT`、`LIDAR_SPHERE_POINT` 、`LIDAR_SCAN`
- **lidar_rate**:雷达的扫描速率。
- **min_angle**:雷达扫描范围的最小角度,以度为单位(例如 `-135.0`)。默认值:`-135.0`。
- **max_angle**:雷达扫描范围的最大角度,以度为单位(例如 `135.0`)。默认值:`135.0`。
- **min_range**:雷达可测量的最小距离,以米为单位。默认值:`0.05`。
- **max_range**:雷达可测量的最大距离,以米为单位。默认值:`30.0`。
- **echo_mode**:雷达的回波模式。可选值:`Last Echo`,`First Echo`
- **point_cloud_qos**:ROS 2 消息服务质量 (QoS) 设置。可能的值包括 `SYSTEM_DEFAULT`、`DEFAULT`、`PARAMETER_EVENTS`、`SERVICES_DEFAULT`、`PARAMETERS` 和 `SENSOR_DATA`,并且不区分大小写。这些值分别对应于 `rmw_qos_profile_system_default`、`rmw_qos_profile_default`、`rmw_qos_profile_parameter_events`、`rmw_qos_profile_services_default`、`rmw_qos_profile_parameters` 和 `SENSOR_DATA`。
- **enumerate_net_device**:启用自动枚举网络设备。
- **net_device_ip**:网络设备的IP地址。
- **net_device_port**:网络这边的端口号。
- **log_level**:SDK日志级别,默认值为 `none`,可选值为 `debug`、`info`、`warn`、`error`、`fatal`
- **time_domain**:设备的时间戳类型。可选值为 `device`、`global`、`system`
- **config_file_path**:YAML 配置文件的路径。默认值为“”。如果未指定配置文件,则将使用启动文件中的默认参数。
- **enable_heartbeat**:启用心跳功能,默认为 `false`。如果设置为 `true`,摄像头节点将向固件发送心跳信号;如果需要硬件日志记录,也应设置为 `true`。
## pointcloud data 详细说明
Livox pointcloud2 (PointXYZRT) 点云格式,如下:
```
float32 x # X axis, unit:m
float32 y # Y axis, unit:m
float32 z # Z axis, unit:m
uint8 reflectivity # lidar reflectivity
uint8 tag # lidar tag
```