mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-04 20:17:47 +08:00
fix: add new device support details
This commit is contained in:
@@ -1,219 +0,0 @@
|
|||||||
# OrbbecSDK ROS2 LiDAR Driver
|
|
||||||
|
|
||||||
This ROS2 driver supports your use of Orbbec single-line/multi-line LiDAR. This document provides installation instructions## 4. IMU Data
|
|
||||||
|
|
||||||
### 4.1 IMU Topics
|
|
||||||
|
|
||||||
When IMU is enabled, the following topics will be published:
|
|
||||||
|
|
||||||
- **`/lidar/imu/sample`**: Unified IMU topic containing synchronized accelerometer and gyroscope data in `sensor_msgs/Imu` format.
|
|
||||||
- **`/lidar/lidar_to_imu`**: Transform from LiDAR frame to IMU frame.
|
|
||||||
|
|
||||||
### 4.2 Using IMU Dataides, and other important information to help you quickly get started using this driver.
|
|
||||||
|
|
||||||
## 1. Installation
|
|
||||||
|
|
||||||
### 1.1 Prerequisites
|
|
||||||
|
|
||||||
Before using the OrbbecSDK ROS2 LiDAR driver, please ensure that the following dependencies are installed on your system:
|
|
||||||
|
|
||||||
- **ROS2**: A valid installation of ROS2 (Humble, Foxy, or other supported distributions).
|
|
||||||
- If you need help, please refer to the [ROS2 Installation Guide](https://docs.ros.org/en/foxy/Installation.html).
|
|
||||||
|
|
||||||
### 1.2 Install deb Dependencies
|
|
||||||
|
|
||||||
```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 Install udev Rules
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/scripts
|
|
||||||
sudo bash install_udev_rules.sh
|
|
||||||
sudo udevadm control --reload-rules && sudo udevadm trigger
|
|
||||||
```
|
|
||||||
|
|
||||||
### 1.4 Build the Package
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd ~/ros2_ws/
|
|
||||||
# Build release version, default is Debug
|
|
||||||
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release
|
|
||||||
```
|
|
||||||
|
|
||||||
### 1.5 Launch the LiDAR Node
|
|
||||||
|
|
||||||
* First terminal
|
|
||||||
|
|
||||||
```bash
|
|
||||||
. ./install/setup.bash
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py
|
|
||||||
```
|
|
||||||
|
|
||||||
* Second terminal
|
|
||||||
|
|
||||||
```bash
|
|
||||||
. ./install/setup.bash
|
|
||||||
rviz2
|
|
||||||
```
|
|
||||||
|
|
||||||
1. Open Rviz2.
|
|
||||||
2. Add a `PointCloud2` or `LaserScan` display.
|
|
||||||
3. For `PointCloud2`, select the `/lidar/cloud/points` topic; for `LaserScan`, select the `/lidar/scan/points` topic.
|
|
||||||
4. Set the `Fixed Frame` to `lidar_lidar_frame` to properly align the data.
|
|
||||||
|
|
||||||
* `PointCloud2` visualization example:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* `LaserScan` visualization example:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## 2. Usage
|
|
||||||
|
|
||||||
### 2.1 Running the Driver
|
|
||||||
|
|
||||||
To start the driver, launch the provided ROS2 launch file:
|
|
||||||
|
|
||||||
```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
|
|
||||||
# Launch the driver with IMU enabled
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py enable_imu:=true imu_rate:=50hz
|
|
||||||
# Launch the driver with both point cloud and IMU data
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_POINT enable_imu:=true imu_rate:=100hz
|
|
||||||
```
|
|
||||||
|
|
||||||
This command will start the node that interfaces with the Orbbec LiDAR device. Please ensure that the LiDAR hardware is properly connected before running this command.
|
|
||||||
|
|
||||||
### 2.2 Get Device Information for Connected LiDARs
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ros2 run orbbec_camera list_devices_node
|
|
||||||
```
|
|
||||||
|
|
||||||
This command will list the connected LiDAR devices and display their respective IP addresses and ports. You can use this information to configure the driver to connect to specific devices.
|
|
||||||
|
|
||||||
### 2.3 Check Which Configurations the LiDAR Supports
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ros2 run orbbec_camera list_camera_profile_mode_node
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2.4 Parameters and Configuration
|
|
||||||
|
|
||||||
The `lidar.launch.py` file contains default parameters for the driver. You can customize these settings by modifying the launch file or creating a custom configuration file. Key parameters include:
|
|
||||||
|
|
||||||
- **device_type**: The type of device to launch. Optional values: `lidar`, `camera`. Setting this parameter to `lidar` launches the LiDAR device, setting it to `camera` launches the camera device.
|
|
||||||
- **camera_name**: Launch node namespace.
|
|
||||||
- **device_num**: Number of devices. This must be filled if you need to launch multiple devices.
|
|
||||||
- **upgrade_firmware**: Firmware upgrade function. The input parameter is the firmware path.
|
|
||||||
- **connection_delay**: Delay time (in milliseconds) for reopening the device. Immediately reopening the device during hot-plugging may cause firmware crashes.
|
|
||||||
- **publish_tf**: Enable TF publishing.
|
|
||||||
- **tf_publish_rate**: TF publishing frequency.
|
|
||||||
- **lidar_format**: Data format for the LiDAR. Optional values: `LIDAR_POINT`, `LIDAR_SPHERE_POINT`, `LIDAR_SCAN`
|
|
||||||
- **lidar_rate**: Scan rate of the LiDAR.
|
|
||||||
- **publish_n_pkts**: Number of frames to accumulate before publishing merged point cloud. Range: 1-12000. Only effective when lidar_format is `LIDAR_POINT` or `LIDAR_SPHERE_POINT`, used to merge specified number of frames before publishing. Default value: `1`
|
|
||||||
- **enable_scan_to_point**: Enable conversion of scan data to point cloud data, publishing PointCloud2 data type topics.
|
|
||||||
- **repetitive_scan_mode**: Repetitive scan mode parameter.
|
|
||||||
- **filter_level**: Add filter level parameter.
|
|
||||||
- **vertical_fov**: Vertical angle parameter.
|
|
||||||
- **min_angle**: Minimum angle of the LiDAR scan range in degrees (e.g., `-135.0`). Default value: `-135.0`.
|
|
||||||
- **max_angle**: Maximum angle of the LiDAR scan range in degrees (e.g., `135.0`). Default value: `135.0`.
|
|
||||||
- **min_range**: Minimum distance the LiDAR can measure in meters. Default value: `0.05`.
|
|
||||||
- **max_range**: Maximum distance the LiDAR can measure in meters. Default value: `30.0`.
|
|
||||||
- **echo_mode**: Echo mode of the LiDAR. Optional values: `Last Echo`, `First Echo`
|
|
||||||
- **point_cloud_qos**: ROS 2 message Quality of Service (QoS) settings. Possible values include `SYSTEM_DEFAULT`, `DEFAULT`, `PARAMETER_EVENTS`, `SERVICES_DEFAULT`, `PARAMETERS`, and `SENSOR_DATA`, and are case-insensitive. These values correspond to `rmw_qos_profile_system_default`, `rmw_qos_profile_default`, `rmw_qos_profile_parameter_events`, `rmw_qos_profile_services_default`, `rmw_qos_profile_parameters`, and `SENSOR_DATA` respectively.
|
|
||||||
- **enumerate_net_device**: Enable automatic enumeration of network devices.
|
|
||||||
- **net_device_ip**: IP address of the network device.
|
|
||||||
- **net_device_port**: Port number on the network side.
|
|
||||||
- **log_level**: SDK log level, default value is `none`, optional values are `debug`, `info`, `warn`, `error`, `fatal`
|
|
||||||
- **time_domain**: Timestamp type of the device. Optional values are `device`, `global`, `system`
|
|
||||||
- **config_file_path**: Path to the YAML configuration file. Default value is "". If no configuration file is specified, default parameters from the launch file will be used.
|
|
||||||
- **enable_heartbeat**: Enable heartbeat function, default is `false`. If set to `true`, the camera node will send heartbeat signals to the firmware; this should also be set to `true` if hardware logging is required.
|
|
||||||
- **enable_imu**: Enable IMU (accelerometer + gyroscope) and output unified IMU topic data.
|
|
||||||
- **imu_rate**: Unified frequency of the IMU (both accelerometer and gyroscope).
|
|
||||||
- **accel_range**: Range of the accelerometer.
|
|
||||||
- **gyro_range**: Range of the gyroscope.
|
|
||||||
- **linear_accel_cov**: Linear acceleration covariance value, default is `0.0001`.
|
|
||||||
- **angular_vel_cov**: Angular velocity covariance value, default is `0.0001`.
|
|
||||||
|
|
||||||
## 3. Point Cloud Data Details
|
|
||||||
|
|
||||||
### 3.1 Point Cloud Format
|
|
||||||
|
|
||||||
PointCloud2 (PointXYZITO) point cloud format is as follows:
|
|
||||||
|
|
||||||
```
|
|
||||||
float32 x # X axis, unit: meters
|
|
||||||
float32 y # Y axis, unit: meters
|
|
||||||
float32 z # Z axis, unit: meters
|
|
||||||
uint8 intensity # LiDAR intensity
|
|
||||||
uint8 tag # LiDAR tag
|
|
||||||
uint32 offset_time # Point cloud offset relative to topic time, unit nanoseconds
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3.2 Point Cloud Aggregation Functionality
|
|
||||||
|
|
||||||
The `publish_n_pkts` parameter enables point cloud aggregation functionality, which allows the LiDAR to accumulate a specified number of frames before publishing, then merge these frames into a larger point cloud data package for publishing.
|
|
||||||
|
|
||||||
#### Features:
|
|
||||||
|
|
||||||
- **Parameter Range**: 1-12000 frames
|
|
||||||
- **Applicable Formats**: Only effective when lidar format is `LIDAR_POINT` or `LIDAR_SPHERE_POINT`
|
|
||||||
- **Default Value**: 1 (no aggregation, each frame published individually)
|
|
||||||
- **Purpose**: Improve point cloud density, suitable for applications requiring denser point cloud data
|
|
||||||
|
|
||||||
#### Usage Examples:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Aggregate 10 frames before publishing
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_POINT publish_n_pkts:=10
|
|
||||||
|
|
||||||
# Aggregate 100 frames before publishing
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_SPHERE_POINT publish_n_pkts:=100
|
|
||||||
```
|
|
||||||
|
|
||||||
**Note**: Increasing the `publish_n_pkts` value will improve point cloud density but will also increase latency and memory usage. Please adjust according to actual application requirements.
|
|
||||||
|
|
||||||
## 4. IMU Data
|
|
||||||
|
|
||||||
### 4.1 IMU Topics
|
|
||||||
|
|
||||||
When IMU is enabled, the following topics will be published:
|
|
||||||
|
|
||||||
- **`/lidar/imu/sample`**: Unified IMU topic containing synchronized accelerometer and gyroscope data in `sensor_msgs/Imu` format.
|
|
||||||
- **`/lidar/lidar_to_imu`**: Transform from LiDAR frame to IMU frame.
|
|
||||||
|
|
||||||
### 4.2 Using IMU Data
|
|
||||||
|
|
||||||
To enable IMU data collection:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Launch with IMU enabled
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py enable_imu:=true imu_rate:=50hz
|
|
||||||
|
|
||||||
# Check IMU topics
|
|
||||||
ros2 topic list | grep imu
|
|
||||||
|
|
||||||
# View IMU data
|
|
||||||
ros2 topic echo /lidar/imu/sample
|
|
||||||
```
|
|
||||||
|
|
||||||
The IMU data includes:
|
|
||||||
|
|
||||||
- **linear_acceleration**: 3D acceleration data (x, y, z) in m/s²
|
|
||||||
- **angular_velocity**: 3D angular velocity data (x, y, z) in rad/s
|
|
||||||
- **orientation**: Quaternion orientation (not provided by hardware, set to zero)
|
|
||||||
-217
@@ -1,217 +0,0 @@
|
|||||||
# OrbbecSDK ROS2 激光雷达驱动
|
|
||||||
|
|
||||||
本ROS2驱动支持您使用奥比中光单线/多线激光雷达。本文档提供安装说明、使用指南和其他重要信息,帮助您快速开始使用此驱动。
|
|
||||||
|
|
||||||
## 1. 安装
|
|
||||||
|
|
||||||
### 1.1 先决条件
|
|
||||||
|
|
||||||
在使用OrbbecSDK ROS2激光雷达驱动之前,请确保您的系统已安装以下依赖项:## 4. IMU数据
|
|
||||||
|
|
||||||
### 4.1 IMU话题
|
|
||||||
|
|
||||||
启用IMU时,将发布以下话题:
|
|
||||||
|
|
||||||
- **`/lidar/imu/sample`**: 统一的IMU话题,包含 `sensor_msgs/Imu`格式的同步加速度计和陀螺仪数据。
|
|
||||||
- **`/lidar/lidar_to_imu`**: 从激光雷达坐标系到IMU坐标系的变换。
|
|
||||||
|
|
||||||
### 4.2 使用IMU数据**: 有效的ROS2安装(Humble、Foxy或其他支持的发行版)。
|
|
||||||
- 如果您需要帮助,请参考[ROS2安装指南](https://docs.ros.org/en/foxy/Installation.html)。
|
|
||||||
|
|
||||||
### 1.2 安装deb依赖项
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 假设您已经配置了ROS环境,下同
|
|
||||||
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
|
|
||||||
```
|
|
||||||
|
|
||||||
### 1.4 构建包
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd ~/ros2_ws/
|
|
||||||
# 构建发布版本,默认为调试版本
|
|
||||||
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release
|
|
||||||
```
|
|
||||||
|
|
||||||
### 1.5 启动激光雷达节点
|
|
||||||
|
|
||||||
* 第一个终端
|
|
||||||
|
|
||||||
```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`可视化示例:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
* `LaserScan`可视化示例:
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## 2. 使用方法
|
|
||||||
|
|
||||||
### 2.1 运行驱动
|
|
||||||
|
|
||||||
要启动驱动,请启动提供的ROS2启动文件:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
source install/setup.bash
|
|
||||||
# 启动带有点云数据的驱动
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_POINT
|
|
||||||
# 启动带有球面点云数据的驱动
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_SPHERE_POINT
|
|
||||||
# 启动带有激光扫描数据的驱动
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_SCAN
|
|
||||||
# 启动启用IMU的驱动
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py enable_imu:=true imu_rate:=50hz
|
|
||||||
# 启动同时包含点云和IMU数据的驱动
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_POINT enable_imu:=true imu_rate:=100hz
|
|
||||||
```
|
|
||||||
|
|
||||||
此命令将启动与奥比中光激光雷达设备接口的节点。请确保在运行此命令之前正确连接激光雷达硬件。
|
|
||||||
|
|
||||||
### 2.2 获取已连接激光雷达的设备信息
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ros2 run orbbec_camera list_devices_node
|
|
||||||
```
|
|
||||||
|
|
||||||
此命令将列出已连接的激光雷达设备并显示其各自的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**: 激光雷达的扫描频率。
|
|
||||||
- **publish_n_pkts**: 多帧数据合并发布的帧数量。范围:1-12000。仅在激光雷达格式为 `LIDAR_POINT` 或 `LIDAR_SPHERE_POINT` 时生效,用于累积指定数量的帧后再发布合并的点云数据。默认值:`1`
|
|
||||||
- **enable_scan_to_point**: 启用扫描数据到点云数据的转换,发布PointCloud2数据类型话题。
|
|
||||||
- **repetitive_scan_mode**: 重复扫描模式参数。
|
|
||||||
- **filter_level**: 添加过滤级别参数。
|
|
||||||
- **vertical_fov**: 垂直角度参数。
|
|
||||||
- **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`。
|
|
||||||
- **enable_imu**: 启用IMU(加速度计+陀螺仪)并输出统一的IMU话题数据。
|
|
||||||
- **imu_rate**: IMU的统一频率(加速度计和陀螺仪)。
|
|
||||||
- **accel_range**: 加速度计的量程。
|
|
||||||
- **gyro_range**: 陀螺仪的量程。
|
|
||||||
- **linear_accel_cov**: 线性加速度协方差值,默认为 `0.0001`。
|
|
||||||
- **angular_vel_cov**: 角速度协方差值,默认为 `0.0001`。
|
|
||||||
|
|
||||||
## 3. 点云数据详细说明
|
|
||||||
|
|
||||||
### 3.1 点云格式
|
|
||||||
|
|
||||||
PointCloud2 (PointXYZITO) 点云格式如下:
|
|
||||||
|
|
||||||
```
|
|
||||||
float32 x # X轴,单位:米
|
|
||||||
float32 y # Y轴,单位:米
|
|
||||||
float32 z # Z轴,单位:米
|
|
||||||
uint8 intensity # 激光雷达强度
|
|
||||||
uint8 tag # 激光雷达标签
|
|
||||||
uint32 offset_time # 点云相对话题时间的偏移量,单位纳秒
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3.2 点云聚合功能
|
|
||||||
|
|
||||||
通过 `publish_n_pkts` 参数可以开启点云聚合功能,该功能允许激光雷达在发布数据前累积指定数量的帧,然后将这些帧合并为一个更大的点云数据包进行发布。
|
|
||||||
|
|
||||||
#### 功能特点:
|
|
||||||
|
|
||||||
- **参数范围**: 1-12000 帧
|
|
||||||
- **适用格式**: 仅在激光雷达格式为 `LIDAR_POINT` 或 `LIDAR_SPHERE_POINT` 时有效
|
|
||||||
- **默认值**: 1(即不聚合,每帧单独发布)
|
|
||||||
- **用途**: 提高点云密度,适用于需要更密集点云数据的应用场景
|
|
||||||
|
|
||||||
#### 使用示例:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 聚合10帧数据后发布
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_POINT publish_n_pkts:=10
|
|
||||||
|
|
||||||
# 聚合100帧数据后发布
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py lidar_format:=LIDAR_SPHERE_POINT publish_n_pkts:=100
|
|
||||||
```
|
|
||||||
|
|
||||||
**注意**: 增加 `publish_n_pkts` 值会提高点云密度,但同时会增加延迟和内存使用量,请根据实际应用需求进行调整。
|
|
||||||
|
|
||||||
## 4. IMU数据
|
|
||||||
|
|
||||||
### 4.1 IMU话题
|
|
||||||
|
|
||||||
启用IMU时,将发布以下话题:
|
|
||||||
|
|
||||||
- **`/lidar/imu/sample`**: 统一的IMU话题,包含 `sensor_msgs/Imu`格式的同步加速度计和陀螺仪数据。
|
|
||||||
- **`/lidar/lidar_to_imu`**: 从激光雷达坐标系到IMU坐标系的变换。
|
|
||||||
|
|
||||||
### 4.2 使用IMU数据
|
|
||||||
|
|
||||||
要启用IMU数据采集:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 启动并启用IMU
|
|
||||||
ros2 launch orbbec_camera lidar.launch.py enable_imu:=true imu_rate:=50hz
|
|
||||||
|
|
||||||
# 检查IMU话题
|
|
||||||
ros2 topic list | grep imu
|
|
||||||
|
|
||||||
# 查看IMU数据
|
|
||||||
ros2 topic echo /lidar/imu/sample
|
|
||||||
```
|
|
||||||
|
|
||||||
IMU数据包括:
|
|
||||||
|
|
||||||
- **linear_acceleration**: 3D加速度数据(x、y、z),单位:m/s²
|
|
||||||
- **angular_velocity**: 3D角速度数据(x、y、z),单位:rad/s
|
|
||||||
- **orientation**: 四元数方向(硬件不提供,设置为零)
|
|
||||||
@@ -136,6 +136,17 @@ Here is the device support list of main branch (v1.x) and v2-main branch (v2.x):
|
|||||||
<td>full maintenance</td>
|
<td>full maintenance</td>
|
||||||
<td>recommended for new designs</td>
|
<td>recommended for new designs</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td rowspan="3" style="text-align: center; font-weight: bold;">LiDAR</td>
|
||||||
|
<td>Pulsar ME450</td>
|
||||||
|
<td>not supported</td>
|
||||||
|
<td>recommended for new designs</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Pulsar SL450</td>
|
||||||
|
<td>not supported</td>
|
||||||
|
<td>recommended for new designs</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -168,7 +179,7 @@ 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-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-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-xacro \
|
ros-$ROS_DISTRO-diagnostic-updater ros-$ROS_DISTRO-diagnostic-msgs ros-$ROS_DISTRO-statistics-msgs ros-$ROS_DISTRO-xacro \
|
||||||
ros-$ROS_DISTRO-backward-ros libdw-dev libssl-dev
|
ros-$ROS_DISTRO-backward-ros libdw-dev libssl-dev mesa-utils libgl1
|
||||||
```
|
```
|
||||||
|
|
||||||
Enable ROS 2 auto-completion:
|
Enable ROS 2 auto-completion:
|
||||||
@@ -305,6 +316,8 @@ For optimal performance, we strongly recommend updating to the latest firmware v
|
|||||||
| Femto Mega | [1.3.1](https://github.com/orbbec/OrbbecFirmware/releases/tag/Femto-Mega-Firmware) | femto_mega.launch.py |
|
| Femto Mega | [1.3.1](https://github.com/orbbec/OrbbecFirmware/releases/tag/Femto-Mega-Firmware) | femto_mega.launch.py |
|
||||||
| Femto Mega I | [2.0.4](https://github.com/orbbec/OrbbecFirmware/releases/tag/Femto-Mega-I-Firmware) | femto_mega.launch.py |
|
| Femto Mega I | [2.0.4](https://github.com/orbbec/OrbbecFirmware/releases/tag/Femto-Mega-I-Firmware) | femto_mega.launch.py |
|
||||||
| Astra 2 | [2.8.20](https://orbbec-debian-repos-aws.s3.amazonaws.com/product/Astra2_Release_2.8.20.zip) | astra2.launch.py |
|
| Astra 2 | [2.8.20](https://orbbec-debian-repos-aws.s3.amazonaws.com/product/Astra2_Release_2.8.20.zip) | astra2.launch.py |
|
||||||
|
| Pulsar SL450 | 2.2.4.5 | lidar.launch.py |
|
||||||
|
| Pulsar ME450 | 1.0.0.6 | lidar.launch.py |
|
||||||
|
|
||||||
All launch files are essentially similar, with the primary difference being the default values of the parameters set
|
All launch files are essentially similar, with the primary difference being the default values of the parameters set
|
||||||
for different models within the same series. Differences in USB standards, such as USB 2.0 versus USB 3.0, may require adjustments to these parameters. If you encounter a startup failure, please carefully review the specification manual. Pay special attention to the resolution settings in the launch file, as well as other parameters, to ensure compatibility and optimal performance.
|
for different models within the same series. Differences in USB standards, such as USB 2.0 versus USB 3.0, may require adjustments to these parameters. If you encounter a startup failure, please carefully review the specification manual. Pay special attention to the resolution settings in the launch file, as well as other parameters, to ensure compatibility and optimal performance.
|
||||||
|
|||||||
+20
-1
@@ -135,6 +135,23 @@ OrbbecSDK ROS2 Wrapper 提供 Orbbec 相机与 ROS 2 环境的无缝集成,支
|
|||||||
<td>full maintenance</td>
|
<td>full maintenance</td>
|
||||||
<td>recommended for new designs</td>
|
<td>recommended for new designs</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="text-align: center; font-weight: bold;">Astra Mini</td>
|
||||||
|
<td>Astra Mini (S) Pro</td>
|
||||||
|
<td>full maintenance</td>
|
||||||
|
<td>recommended for new designs</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td rowspan="3" style="text-align: center; font-weight: bold;">LiDAR</td>
|
||||||
|
<td>Pulsar ME450</td>
|
||||||
|
<td>not supported</td>
|
||||||
|
<td>recommended for new designs</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Pulsar SL450</td>
|
||||||
|
<td>not supported</td>
|
||||||
|
<td>recommended for new designs</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
**注意**: 如果您没有找到对应的设备,请联系 FAE 或销售代表获取帮助。
|
**注意**: 如果您没有找到对应的设备,请联系 FAE 或销售代表获取帮助。
|
||||||
@@ -166,7 +183,7 @@ 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-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-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-xacro \
|
ros-$ROS_DISTRO-diagnostic-updater ros-$ROS_DISTRO-diagnostic-msgs ros-$ROS_DISTRO-statistics-msgs ros-$ROS_DISTRO-xacro \
|
||||||
ros-$ROS_DISTRO-backward-ros libdw-dev libssl-dev
|
ros-$ROS_DISTRO-backward-ros libdw-dev libssl-dev mesa-utils libgl1
|
||||||
```
|
```
|
||||||
|
|
||||||
启用 ROS 2 自动补全:
|
启用 ROS 2 自动补全:
|
||||||
@@ -302,6 +319,8 @@ ros2 service call /camera/get_sdk_version orbbec_camera_msgs/srv/GetString '{}'
|
|||||||
| Femto Mega | [1.3.1](https://github.com/orbbec/OrbbecFirmware/releases/tag/Femto-Mega-Firmware) | femto_mega.launch.py |
|
| Femto Mega | [1.3.1](https://github.com/orbbec/OrbbecFirmware/releases/tag/Femto-Mega-Firmware) | femto_mega.launch.py |
|
||||||
| Femto Mega I | [2.0.4](https://github.com/orbbec/OrbbecFirmware/releases/tag/Femto-Mega-I-Firmware) | femto_mega.launch.py |
|
| Femto Mega I | [2.0.4](https://github.com/orbbec/OrbbecFirmware/releases/tag/Femto-Mega-I-Firmware) | femto_mega.launch.py |
|
||||||
| Astra 2 | [2.8.20](https://orbbec-debian-repos-aws.s3.amazonaws.com/product/Astra2_Release_2.8.20.zip) | astra2.launch.py |
|
| Astra 2 | [2.8.20](https://orbbec-debian-repos-aws.s3.amazonaws.com/product/Astra2_Release_2.8.20.zip) | astra2.launch.py |
|
||||||
|
| Pulsar SL450 | 2.2.4.5 | lidar.launch.py |
|
||||||
|
| Pulsar ME450 | 1.0.0.6 | lidar.launch.py |
|
||||||
|
|
||||||
所有启动文件基本相似,主要区别在于针对不同型号的默认参数设置。不同的 USB 标准(如 USB 2.0 和 USB 3.0)可能需要调整这些参数。如果遇到启动失败,请仔细查看规格说明书,特别是启动文件中的分辨率设置以及其他参数,以确保兼容性和最佳性能。
|
所有启动文件基本相似,主要区别在于针对不同型号的默认参数设置。不同的 USB 标准(如 USB 2.0 和 USB 3.0)可能需要调整这些参数。如果遇到启动失败,请仔细查看规格说明书,特别是启动文件中的分辨率设置以及其他参数,以确保兼容性和最佳性能。
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 154 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 85 KiB |
Reference in New Issue
Block a user