Update README.MD

This commit is contained in:
jj
2025-05-06 17:41:55 +08:00
parent a5bd9fa9cd
commit c4bb0763e7
47 changed files with 998 additions and 1280 deletions
-40
View File
@@ -1,40 +0,0 @@
## Aligning Depth to Color in ROS 2
This section explains how to align depth images with color images to create an overlay image using ROS 2. This is particularly useful for applications requiring synchronized visual information from different sensor modalities.
### Commands to Align and View Depth and Color Images
1. **Basic Depth to Color Alignment:**
To simply align the depth image to the color image, use the following command:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py depth_registration:=true
```
This command activates the depth registration feature without opening a viewer.
2. **Viewing Depth to Color Overlay:**
If you wish to view the depth to color overlay, you need to enable the viewer by using the command below:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py depth_registration:=true enable_d2c_viewer:=true
```
This launches the camera node with depth to color registration and opens a viewer to display the overlay image.
### Selecting Topics in RViz2
To visualize the aligned images in RViz2:
1. Launch RViz2 after running one of the above commands.
2. Select the topic for the depth to color overlay image. An example topic selection is shown here:
![Topic Selection for Depth to Color Overlay](./images/image3.png)
### Example of Depth to Color Overlay
After selecting the appropriate topic in RViz2, you will be able to see the depth to color overlay image. Here's what it might look like:
![Depth to Color Overlay Image](./images/image4.jpg)
-40
View File
@@ -1,40 +0,0 @@
## 在ROS 2中将深度图像与彩色图像对齐
本节介绍如何使用ROS 2将深度图像与彩色图像对齐,以创建叠加图像。这对于需要来自不同传感器模态的同步视觉信息的应用程序特别有用。
### 对齐并查看深度和彩色图像的命令
1. **基本的深度到彩色对齐:**
要简单地将深度图像对齐到彩色图像,使用以下命令:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py depth_registration:=true
```
此命令激活深度注册功能,但不打开查看器。
2. **查看深度到彩色叠加:**
如果您希望查看深度到彩色叠加,您需要通过使用以下命令来启用查看器:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py depth_registration:=true enable_d2c_viewer:=true
```
这将启动具有深度到彩色注册的相机节点,并打开一个查看器以显示叠加图像。
### 在RViz2中选择主题
要在RViz2中可视化对齐的图像:
1. 在运行上述命令之一后启动RViz2。
2. 选择深度到彩色叠加图像的主题。这里显示了一个示例主题选择:
![深度到彩色叠加主题选择](./images/image3.png)
### 深度到彩色叠加示例
在RViz2中选择合适的主题后,您将能够看到深度到彩色叠加图像。这是它可能看起来的样子:
![深度到彩色叠加图像](./images/image4.jpg)
@@ -0,0 +1,295 @@
# All available service for camera control
> The name of the following service already expresses its function.
> However, it should be noted that the corresponding `set_[ir|depth|color]*`
> and `get[ir|right_ir|left_ir|depth|color]*` **services are only available if you set** `enable[ir|depth|color]`
> to `true` in the stream that corresponds to the argument of the launch file.
* `/camera/get_color_exposure`
```bash
ros2 service call /camera/get_color_exposure orbbec_camera_msgs/srv/GetInt32 '{}'
```
* `/camera/get_color_gain`
```bash
ros2 service call /camera/get_color_gain orbbec_camera_msgs/srv/GetInt32 '{}'
```
* `/camera/set_color_auto_exposure`
```bash
ros2 service call /camera/set_color_auto_exposure std_srvs/srv/SetBool '{data: true}'
```
* `/camera/set_color_exposure`
```bash
ros2 service call /camera/set_color_exposure orbbec_camera_msgs/srv/SetInt32 '{data: 1}'
```
* `/camera/set_color_gain`
```bash
ros2 service call /camera/set_color_gain orbbec_camera_msgs/srv/SetInt32 '{data: 64}'
```
* `/camera/set_color_ae_roi`
```bash
#In data_param, the first value is the Left setting, the second value is the Right setting, the third value is the Top setting, and the fourth value is the Bottom setting.
ros2 service call /camera/set_color_ae_roi orbbec_camera_msgs/srv/SetArrays '{data_param: [0,1279,0,719]}'
```
* `/camera/set_color_mirror`
```bash
#v2 version is not supported yet
ros2 service call /camera/set_color_mirror std_srvs/srv/SetBool '{data: true}'
```
* `/camera/toggle_color`
```bash
ros2 service call /camera/toggle_color std_srvs/srv/SetBool '{data: true}'
```
* `/camera/get_depth_exposure`
```bash
ros2 service call /camera/get_depth_exposure orbbec_camera_msgs/srv/GetInt32 '{}'
```
* `/camera/get_depth_gain`
```bash
ros2 service call /camera/get_depth_gain orbbec_camera_msgs/srv/GetInt32 '{}'
```
* `/camera/set_depth_auto_exposure`
```bash
ros2 service call /camera/set_depth_auto_exposure std_srvs/srv/SetBool '{data: true}'
```
* `/camera/set_depth_exposure`
```bash
ros2 service call /camera/set_depth_exposure orbbec_camera_msgs/srv/SetInt32 '{data: 3000}'
```
* `/camera/set_depth_gain`
```bash
#v2 version is not supported yet
ros2 service call /camera/set_depth_gain orbbec_camera_msgs/srv/SetInt32 '{data: 64}'
```
* `/camera/set_depth_ae_roi`
```bash
#In data_param, the first value is the Left setting, the second value is the Right setting, the third value is the Top setting, and the fourth value is the Bottom setting.
ros2 service call /camera/set_depth_ae_roi orbbec_camera_msgs/srv/SetArrays '{data_param: [0,847,0,479]}'
```
* `/camera/set_depth_mirror`
```bash
ros2 service call /camera/set_depth_mirror std_srvs/srv/SetBool '{data: true}'
```
* `/camera/toggle_depth`
```bash
ros2 service call /camera/toggle_depth std_srvs/srv/SetBool '{data: true}'
```
* `/camera/get_ir_exposure`
```bash
ros2 service call /camera/get_ir_exposure orbbec_camera_msgs/srv/GetInt32 '{}'
```
* `/camera/get_ir_gain`
```bash
ros2 service call /camera/get_ir_gain orbbec_camera_msgs/srv/GetInt32 '{}'
```
* `/camera/set_ir_long_exposure`
```bash
ros2 service call /camera/set_ir_long_exposure std_srvs/srv/SetBool '{data: true}'
```
* `/camera/set_ir_auto_exposure`
```bash
ros2 service call /camera/set_ir_auto_exposure std_srvs/srv/SetBool '{data: true}'
```
* `/camera/set_ir_exposure`
```bash
ros2 service call /camera/set_ir_exposure orbbec_camera_msgs/srv/SetInt32 '{data: 3000}'
```
* `/camera/set_ir_gain`
```bash
ros2 service call /camera/set_ir_gain orbbec_camera_msgs/srv/SetInt32 '{data: 64}'
```
* `/camera/set_ir_mirror`
```bash
#v2 version is not supported yet
ros2 service call /camera/set_ir_mirror std_srvs/srv/SetBool '{data: true}'
```
* `/camera/switch_ir`
```bash
ros2 service call /camera/switch_ir orbbec_camera_msgs/srv/SetString '{data: left}'
```
* `/camera/toggle_ir`
```bash
ros2 service call /camera/toggle_ir std_srvs/srv/SetBool '{data: true}'
```
* `/camera/get_auto_white_balance`
```bash
ros2 service call /camera/get_auto_white_balance orbbec_camera_msgs/srv/GetInt32 '{}'
```
* `/camera/set_auto_white_balance`
```bash
ros2 service call /camera/set_auto_white_balance std_srvs/srv/SetBool '{data: true}'
```
* `/camera/get_white_balance`
```bash
ros2 service call /camera/get_white_balance orbbec_camera_msgs/srv/GetInt32 '{}'
```
* `/camera/set_white_balance`
```bash
ros2 service call /camera/set_white_balance orbbec_camera_msgs/srv/SetInt32 '{data: 2800}'
```
* `/camera/set_laser_enable`
```bash
ros2 service call /camera/set_laser_enable std_srvs/srv/SetBool '{data: true}'
```
* `/camera/set_ldp_enable`
```bash
ros2 service call /camera/set_ldp_enable std_srvs/srv/SetBool '{data: true}'
```
* `/camera/get_ldp_status`
```bash
ros2 service call /camera/get_ldp_status orbbec_camera_msgs/srv/GetBool '{}'
```
* `/camera/get_lrm_measure_distance`
```bash
ros2 service call /camera/get_lrm_measure_distance orbbec_camera_msgs/srv/GetInt32 '{}'
```
* `/camera/get_device_info`
```bash
ros2 service call /camera/get_device_info orbbec_camera_msgs/srv/GetDeviceInfo
```
* `/camera/get_sdk_version`
```bash
ros2 service call /camera/get_sdk_version orbbec_camera_msgs/srv/GetString
```
* `/camera/reboot_device`
```bash
ros2 service call /camera/reboot_device std_srvs/srv/Empty '{}'
```
* `/camera/save_images`
```bash
ros2 service call /camera/save_images std_srvs/srv/Empty '{}'
```
* `/camera/save_point_cloud`
```bash
ros2 service call /camera/save_point_cloud std_srvs/srv/Empty '{}'
```
* `/camera/set_fan_work_mode`
```bash
ros2 service call /camera/set_fan_work_mode orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
```
* `/camera/set_filter`
```bash
#filter_name is the filter name,filter_enable is whether to enable the filter switch,and filter_param is the filter parameter
#set DecimationFilter
ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: DecimationFilter,filter_enable: false,filter_param: [5]}'
#set SpatialAdvancedFilter
ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: SpatialAdvancedFilter,filter_enable: true,filter_param: [0.5,160,1,8]}'
#set SequenceIdFilter
ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: SequenceIdFilter,filter_enable: true,filter_param: [1]}'
#set ThresholdFilter
ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: SequenceIdFilter,filter_enable: true,filter_param: [0,15999]}'
#set NoiseRemovalFilter
ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: NoiseRemovalFilter,filter_enable: true,filter_param: [256,80]}'
#set HardwareNoiseRemoval
ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: HardwareNoiseRemoval,filter_enable: true,filter_param: []}'
```
* `/camera/set_floor_enable`
```bash
ros2 service call /camera/set_floor_enable std_srvs/srv/SetBool '{data: true}'
```
* `/camera/set_reset_timestamp`
```bash
#Only available when time_domain param is set to device
ros2 service call /camera/set_reset_timestamp std_srvs/srv/SetBool '{data: true}'
```
* `/camera/set_sync_interleaverlaser`
```bash
#Only available if interleave_ae_mode param is set to laser and interleave_frame_enable param is set to true
ros2 service call /camera/set_sync_interleaverlaser orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
```
* `/camera/set_sync_hosttime`
```
ros2 service call /camera/set_sync_hosttime std_srvs/srv/SetBool '{data: true}'
```
+25
View File
@@ -0,0 +1,25 @@
# All available topics
> The names of the following topics already express their functions.
> However, it should be noted that the corresponding `[ir|right_ir|left_ir|depth|color]/[image_raw|camera_info|metadata]`
> topics are only available when `enable[ir|right_ir|left_ir|depth|color]` is set to true in the stream corresponding to the startup file parameters.
- `/camera/color/camera_info` : The color camera info.
- `/camera/color/image_raw`: The color stream image.
- `/camera/color/metadata`: The color stream firmware data.
- `/camera/depth/camera_info`: The depth camera info.
- `/camera/depth/image_raw`: The depth stream image.
- `/camera/depth/metadata`:The depth stream firmware data.
- `/camera/depth/points` : The point cloud, only available when `enable_point_cloud` is `true`.
- `/camera/depth_registered/points`: The colored point cloud, only available when `enable_colored_point_cloud`
is `true`.
- `/camera/depth_filter_status`: The depth sensor filter status.
- `/camera/ir/camera_info`: The IR camera info.
- `/camera/ir/image_raw`: The IR stream image.
- `/camera/ir/metadata`: The IR stream firmware data.
- `/camera/accel/sample`: Acceleration data stream `enable_sync_output_accel_gyro`turned off`enable_accel`turned on
- `/camera/gyro/sample`: Gyroscope data streamenable_sync_output_accel_gyro `turned off`enable_gyro`turned on
- `camera/gyro_accel/sample`: Synchronized data stream of acceleration and gyroscope`enable_sync_output_accel_gyro`
turned on
- `/diagnostics`: The diagnostic information of the camera, Currently, the diagnostic information only includes the
temperature of the camera.
+45
View File
@@ -0,0 +1,45 @@
# Building a Debian Package
## Preparing the Environment
Before starting, install the required tools:
```bash
sudo apt install debhelper fakeroot python3-bloom
```
## Configuring ROS Dependencies
Add the following YAML file to your system at `/etc/ros/rosdep/sources.list.d/00-orbbec.yaml`. Make sure to
replace `focal` with the codename of your Ubuntu version and `humble` with your ROS2 distribution name:
```yaml
orbbec_camera_msgs:
ubuntu:
focal: [ ros-humble-orbbec-camera-msgs ]
```
Next, create a new file `/etc/ros/rosdep/sources.list.d/50-orbbec.list` and add this line to specify the path to the
YAML file:
```bash
yaml file:///etc/ros/rosdep/sources.list.d/00-orbbec.yaml
```
Update the rosdep database to reflect these changes:
```bash
rosdep update
```
## Building the Package
Navigate to your workspace and build the project:
```bash
cd ~/ros2_ws/
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release
. install/setup.bash
cd src/OrbbecSDK_ROS2/
bash .make_deb.sh
```
@@ -0,0 +1,13 @@
# Configuration of depth NFOV and WFOV modes
For the Femto Mega and Femto Bolt devices, the NFOV and WFOV modes are implemented by configuring the resolution of
Depth and IR in the launch file.
In launch file, depth_width、depth_height、ir_width、ir_height represents the resolution of the depth and the resolution of
the IR.
The frame fps and resolution of IR must be consistent with the depth. The correspondence between different modes and
resolutions is as follows:
- NFOV unbinned: 640 x 576.
- NFOV binned: 320 x 288.
- WFOV unbinned: 1024 x 1024.
- WFOV binned: 512 x 512.
+32
View File
@@ -0,0 +1,32 @@
# Depth work mode switch
Orbbec SDK ROS 2 supports the depth work mode switch. The depth work mode switch is supported by Gemini 2, Gemini 2 L,
and Femto and Femto Bolt cameras.
- Before starting the camera, depth work mode (depth_work_mode) can be configured for the corresponding xxx.launch.py
file's support.
- The depth work mode switch is supported by Gemini 2, Gemini 2 L, and Gemini 2 XL cameras.
- The default depth work mode configuration of xxx.launch.py is the camera's default configuration. If you need to
modify it, you can switch to the corresponding mode as needed.
- The specific camera depth work mode support types can be found in the comments of the depth mode.
```python
# Depth work mode support is as follows:
# Unbinned Dense Default
# Unbinned Sparse Default
# Binned Sparse Default
# Obstacle Avoidance
DeclareLaunchArgument('depth_work_mode', default_value='')
```
- View depth work modes:
```bash
ros2 run orbbec_camera list_depth_work_mode_node
```
* Example:
```bash
ros2 launch orbbec_camera gemini2L.launch.py depth_work_mode:="Unbinned Dense Default"
```
@@ -0,0 +1,35 @@
# Efficient intra-process communication:
Our ROS2 Wrapper node supports zero-copy communications if loaded in the same process as a subscriber node. This can reduce copy times on image/pointcloud topics, especially with big frame resolutions and high FPS.
You will need to launch a component container and launch our node as a component together with other component nodes. Further details on "Composing multiple nodes in a single process" can be found [here](https://docs.ros.org/en/rolling/Tutorials/Composition.html).
Further details on efficient intra-process communication can be found [here](https://docs.ros.org/en/humble/Tutorials/Intra-Process-Communication.html#efficient-intra-process-communication).
## Example
### Manually loading multiple components into the same process
* Start the component:
```bash
ros2 run rclcpp_components component_container
```
* Add the wrapper:
```bash
ros2 component load /ComponentManager orbbec_camera orbbec_camera::OBCameraNodeDriver -e use_intra_process_comms:=true
```
Load other component nodes (consumers of the wrapper topics) in the same way.
### Using a launch file
```bash
ros2 launch orbbec_camera gemini_intra_process_demo_launch.py
```
### Limitations
* Node components are currently not supported on RCLPY
* Compressed images using `image_transport` will be disabled as this isn't supported with intra-process communication

Before

Width:  |  Height:  |  Size: 126 KiB

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 143 KiB

Before

Width:  |  Height:  |  Size: 111 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 736 KiB

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

+113
View File
@@ -0,0 +1,113 @@
# Launch parameters
> If you are not sure how to set the parameters, you can connect the orbbec camera and open the [OrbbecViewer](https://github.com/orbbec/OrbbecSDK_v2/releases/tag/v2.3.5) parameter settings.
The following are the launch parameters available:
* `camera_name` : Start the node namespace
* `depth_registration` : Enables alignment of the depth frame to the color frame. This field is required when the `enable_colored_point_cloud` is set to `true`.
* `serial_number` : The serial number of the camera. This is required when multiple cameras are used
* `usb_port` : The USB port of the camera. This is required when multiple cameras are used
* `device_num` : The number of devices. This must be filled in if multiple cameras are required
* `preset_firmware_path` : The input parameter is the perset firmware path. If multiple paths are input, each path needs to be separated by `,`and a maximum of 3 firmware paths can be input
* `uvc_backend` : Optional values: v4l2, libuvc
* `point_cloud_qos`, `[color|depth|left_ir|right_ir|ir]_qos`, `[color|depth|left_ir|right_ir|ir]_camera_info_qos`: ROS 2 Message Quality of Service (QoS) settings. The possible values are `SYSTEM_DEFAULT`, `DEFAULT`, `PARAMETER_EVENTS`, `SERVICES_DEFAULT`, `PARAMETERS`, `SENSOR_DATA` and are case-insensitive. These 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.
* `color_ae_roi_[left|right|top|bottom]`,`depth_ae_roi_[left|right|top|bottom]`:Set Color and Depth auto exposure ROI.
* `enable_point_cloud` : Enables the point cloud
* `enable_colored_point_cloud` : Enables the RGB point cloud
* `cloud_frame_id` : Modifying the frame_id name within the ros message
* `connection_delay` : The delay time in milliseconds for reopening the device. Some devices, such as Astra mini, require a longer time to initialize and reopening the device immediately can cause firmware crashes when hot plugging
* `[color|depth|left_ir|right_ir|ir]_width`,`[color|depth|left_ir|right_ir|ir]_height`,`[color|depth|left_ir|right_ir|ir]_fps`,`[color|depth|left_ir|right_ir|ir]_format`: The resolution and frame rate of the sensor stream
* `enable_color_auto_exposure_priority` : Enables the Color auto exposure priority
* `enable_color_auto_exposure` : Enables the Color auto exposure
* `color_exposure` : Set the Color exposure
* `color_gain` :Set the Color gain
* `enable_color_auto_white_balance` : Enables the Color auto white balance
* `color_white_balance` : Set the Color white balance
* `color_ae_max_exposure` : Set the maximum exposure value for Color auto exposure
* `color_brightness` : Set the Color brightness
* `color_sharpness` : Set the Color sharpness
* `color_gamma` : Set the Color gamma
* `color_saturation` : Set the Color saturation
* `color_constrast` : Set the Color constrast
* `color_hue` : Set the Color hue
* `enable_color_backlight_compenstation` : Enables the Color backlight compenstation
* `enable_color_decimation_filter` : Enables the Color decimation filter
* `color_decimation_filter_scale` : Set the Color decimation filter scale
* `enable_depth_auto_exposure_priority` : Enables the Depth auto exposure priority
* `depth_brightness` : Set the Depth brightness
* `enable_ir_auto_exposure` : Enables the IR auto exposure
* `ir_exposure` : Set the IR exposure
* `ir_gain` : Set the IR gain
* `ir_ae_max_exposure` : Set the maximum exposure value for IR auto exposure
* `ir_brightness` : Set the IR brightness
* `enable_sync_output_accel_gyro` : Enables the sync accel_gyro,and output IMU topic real-time data
* `enable_accel` : Enables the Accelerometer,and output Accelerometer info topic data
* `accel_rate` : The frequency of the accelerometer, the optional values are `1.5625hz`, `3.125hz`, `6.25hz`, `12.5hz`, `25hz`, `50hz`, `100hz`, `200hz`, `500hz`, `1khz`, `2khz`, `4khz`, `8khz`, `16khz`, `32khz`
* `accel_range` : The range of the accelerometer, the optional values are `2g`, `4g`, `8g`, `16g`. The specific value depends on the current camera
* `enable_gyro` : Enables the gyroscope,and output gyroscope info topic data
* `gyro_rate` : The frequency of the gyroscope, the optional values are `1.5625hz`, `3.125hz`, `6.25hz`, `12.5hz`, `25hz`, `50hz`, `100hz`, `200hz`, `500hz`, `1khz`, `2khz`, `4khz`, `8khz`, `16khz`, `32khz`.The specific value depends on the current camera
* `gyro_range` : The range of the gyroscope, the optional values are `16dps`, `31dps`, `62dps`, `125dps`, `250dps`, `500dps`, `1000dps`, `2000dps`. The specific value depends on the
current camera
* `liner_accel_cov` : Covariance of the linear acceleration
* `angular_vel_cov` : Covariance of the angular velocity
* `publish_tf` : Enables the TF publish
* `tf_publish_rate` : Set Rate of the TF publication
* `ir_info_url` : Set URL of the IR image info
* `color_info_url` : Set URL of the color image info
* `enumerate_net_device` : Enable automatically enumerate network devices,this parameter is usually used [net camera](../orbbec_camera/examples/net_camera/README.MD)
* `net_device_ip` : Setting net device's IP address,this parameter is usually used [net camera](../orbbec_camera/examples/net_camera/README.MD)
* `net_device_port` : Setting net device's port.Usually, you can set it to 8090,this parameter is usually used [net camera](../orbbec_camera/examples/net_camera/README.MD)
* `log_level` : SDK log level, the default value is `info`, the optional values are `debug`, `info`, `warn`, `error`, `fatal`
* `enable_publish_extrinsic` : Enables the extrinsics publish
* `enable_d2c_viewer` : Publishes the D2C overlay image (for testing only)
* `enable_hardware_d2d` : false: switch to software disparity convert to depth, true: switch to hardware disparity convert to depth
* `enable_ldp` : Enables the LDP
* `ldp_power_level` : Set power level of the LDP
* `sync_mode` : Set sync mode.The default value is standalone,this parameter is usually used [multi camera synced](../orbbec_camera/examples/multi_camera_synced/README.MD)
* `depth_delay_us` : The delay time of the depth image capture after receiving the capture command or trigger signal in microseconds,this parameter is usually used [multi camera synced](../orbbec_camera/examples/multi_camera_synced/README.MD)
* `color_delay_us` : The delay time of the color image capture after receiving the capture command or trigger signal in microseconds,this parameter is usually used [multi camera synced](../orbbec_camera/examples/multi_camera_synced/README.MD)
* `trigger2image_delay_us` : The delay time of the image capture after receiving the capture command or trigger signal in microseconds,this parameter is usually used [multi camera synced](../orbbec_camera/examples/multi_camera_synced/README.MD)
* `trigger_out_delay_us` : The delay time of the trigger signal output after receiving the capture command or trigger signal in microseconds,this parameter is usually used [multi camera synced](../orbbec_camera/examples/multi_camera_synced/README.MD)
* `trigger_out_enabled` : Enables the trigger out signal,this parameter is usually used [multi camera synced](../orbbec_camera/examples/multi_camera_synced/README.MD)
* `frames_per_trigger` : The frame number of each stream after each trigger in triggering mode,this parameter is usually used [multi camera synced](../orbbec_camera/examples/multi_camera_synced/README.MD)
* `software_trigger_period` : software trigger period in ms,this parameter is usually used [multi camera synced](../orbbec_camera/examples/multi_camera_synced/README.MD)
* `enable_frame_sync` : Enables the frame synchronization
* `ordered_pc` : Enable filtering of invalid point clouds
* `enable_depth_scale` : Enables the depth scale
* `enable_decimation_filter` : Enables the Depth decimation filter.The Depth decimation filter setting parameter is `decimation_filter_scale`
* `enable_hdr_merge` : Enables the Depth hdr merge filter.The Depth hdr merge filter setting parameter is `hdr_merge_exposure_1`,`hdr_merge_gain_1`,`hdr_merge_exposure_2`,`hdr_merge_gain_2`
* `enable_sequence_id_filter` : Enables the Depth sequence id filter.The Depth sequence id filter setting parameter is `sequence_id_filter_id`
* `enable_threshold_filter` : Enables the Depth threshold filter.The Depth threshold filter setting parameter is `threshold_filter_max`,`threshold_filter_min`
* `enable_hardware_noise_removal_filter` : Enables the Depth hardware noise removal filter
* `enable_noise_removal_filter` : Enables the Depth software noise removal_filter.The Depth noise removal filter setting parameter is `noise_removal_filter_min_diff`,`noise_removal_filter_max_size`
* `enable_spatial_filter` : Enables the Depth spatial filter.The Depth spatial filter setting parameter is `spatial_filter_alpha`,`spatial_filter_diff_threshold`,`spatial_filter_magnitude`,`spatial_filter_radius`
* `enable_temporal_filter` : Enables the Depth temporal filter.The Depth temporal filter setting parameter is `temporal_filter_diff_threshold`,`temporal_filter_weight`
* `enable_hole_filling_filter` : Enables the Depth hole filling filter.The Depth hole filling filter setting parameter is `hole_filling_filter_mode`
* `align_mode` : The alignment mode to be used. Options are `HW` for hardware alignment and `SW` for software alignment
* `diagnostic_period` : Diagnostic period in seconds
* `enable_laser` : Enables the laser. The default value is `true`
* `depth_precision` : The depth precision should be in the format `1mm`. The default value is `1mm`
* `device_preset` : The default value is `Default`. Only the G330 series is supported. For more information, refer to the [G330 documentation](https://www.orbbec.com/docs/g330-use-depth-presets/). Please refer to the table below to set the `device_preset` value based on your use case. The value should be one of the preset names listed [in the table](./predefined_presets.md)
* `retry_on_usb3_detection_failure` : If the camera is connected to a USB 2.0 port and is not detected, the system will attempt to reset the camera up to three times. This setting aims to prevent USB 3.0 devices from being incorrectly recognized as USB 2.0. It is recommended to set this parameter to `false` when using a USB 2.0 connection to avoid unnecessary resets
* `laser_energy_level` : Set the laser energy level
* enable_sync_host_time : Enables synchronization of the host time with the camera time. The default value is `true`, if use global time, Set to `false`. Some old devices may not support this feature
* `time_domain` : Select timestamp type: device , global and system
* `enable_color_undistortion` : Enables the Color undistortion
* `config_file_path` : The path to the YAML configuration file. The default value is `""`. If the configuration file is not specified,the default parameters from the launch file will be used. If you want to use a custom configuration file, please refer to `gemini_330_series.launch.py`.`enable_heartbeat` enables the heartbeat function, which is set to `false` by default. If set to `true`, the camera node will send heartbeat signals to the firmware, and if hardware logging is desired, it should also be set to `true`
* `enable_heartbeat` : Enables the heartbeat function, which is set to `false` by default. If set to `true`, the camera node will send heartbeat signals to the firmware, and if hardware logging is desired, it should also be set to `true`
* `gmsl_trigger_fps` : Set gmsl trigger fps,this parameter is usually used [gmsl camera](../orbbec_camera/examples/gmsl_camera/README.MD)
* `enable_gmsl_trigger` : Enables the gmsl trigger out signal,this parameter is usually used [gmsl camera](../orbbec_camera/examples/gmsl_camera/README.MD)
* `disparity_range_mode` : Disparity search length,this parameter is usually used [disparity search offset](../orbbec_camera/examples/disparity_search_offset/README.MD)
* `disparity_search_offset` : Set Disparity search offset value,this parameter is usually used [disparity search offset](../orbbec_camera/examples/disparity_search_offset/README.MD)
* `disparity_offset_config` : Disparity search offset interleave frames,this parameter is usually used [disparity search offset](../orbbec_camera/examples/disparity_search_offset/README.MD)
* `frame_aggregate_mode` : Set frame aggregate output mode.The optional values are `full_frame`,`color_frame`,`ANY`,`disable`
* `interleave_ae_mode` : Set laser or hdr interleave,this parameter is usually used [interleave ae mode](../orbbec_camera/examples/interleave_ae_mode/README.MD)
* `interleave_frame_enable` : Whether to enable interleave frame mode,this parameter is usually used [interleave ae mode](../orbbec_camera/examples/interleave_ae_mode/README.MD)
* `interleave_skip_enable` : Whether to enable skip frames,this parameter is usually used [interleave ae mode](../orbbec_camera/examples/interleave_ae_mode/README.MD)
* `interleave_skip_index` : Set skip pattern IR or flood IR,this parameter is usually used [interleave ae mode](../orbbec_camera/examples/interleave_ae_mode/README.MD)
* `[hdr|laser]_index[0|1]_[laser_control|depth_exposure|depth_gain|ir_brightness|ae_max_exposure]`:In interleave frame mode, set the 0th and 1st frame parameters of hdr or laser interleaving frames,this parameter is usually used [interleave ae mode](../orbbec_camera/examples/interleave_ae_mode/README.MD)
**IMPORTANT**: *Please carefully read the instructions regarding software filtering settings
at [this link](https://www.orbbec.com/docs/g330-use-depth-post-processing-blocks/). If you are uncertain, do not modify
these settings.*
-108
View File
@@ -1,108 +0,0 @@
## Using Multiple Cameras with the Orbbec ROS 2 Package
This section describes how to configure and use multiple Orbbec cameras simultaneously in a ROS 2 environment.
### Identifying Camera USB Ports
#### Script to List Connected Cameras
To determine which USB ports the cameras are connected to, you can use the following bash script. This script lists all Orbbec devices attached to the system along with their USB port and serial number.
```bash
#!/bin/bash
VID="2bc5"
for dev in /sys/bus/usb/devices/*; do
if [ -e "$dev/idVendor" ]; then
vid=$(cat "$dev/idVendor")
if [ "$vid" == "${VID}" ]; then
port=$(basename $dev)
product=$(cat "$dev/product" 2>/dev/null) # product name
serial=$(cat "$dev/serial" 2>/dev/null) # serial number
echo "Found Orbbec device $product, usb port $port, serial number $serial"
fi
fi
done
```
Save this script to a file and execute it in your terminal to output a list of connected cameras.
### Launching Multiple Cameras
#### Setup for Multiple Camera Launch
You can launch multiple cameras by specifying different USB ports for each camera. Below is an example Python script that uses the ROS 2 launch system to start two cameras with individual configurations.
```python
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription, GroupAction, ExecuteProcess
from launch.launch_description_sources from ament_index_python.packages import get_package_share_directory
import os
def generate_launch_description():
package_dir = get_package_share_directory('orbbec_camera')
launch_file_dir = os.path.join(package_dir, 'launch')
launch1_include = IncludeLaunchDescription(
PythonLaunchDescriptionSource(os.path.join(launch_file_dir, 'gemini_330_series.launch.py')),
launch_arguments={'camera_name': 'camera_01', 'usb_port': '2-3.4.4.4.1', 'device_num': '2', 'sync_mode': 'free_run'}.items()
)
launch2_include = IncludeLaunchDescription(
PythonLaunchDescriptionSource(os.path.join(launch_file_dir, 'gemini_330_series.launch.py')),
launch_arguments={'camera_name': 'camera_02', 'usb_port': '2-3.4.4.4.3', 'device_num': '2', 'sync_mode': 'free_run'}.items()
)
ld = LaunchDescription([
GroupAction([launch1_include]),
GroupAction([launch2_include])
])
return ld
```
#### Running the Launch File
To execute the launch configuration for multiple cameras, use the command:
```bash
ros2 launch orbbec_camera multi_camera.launch.py
```
### Configuring the TF Tree for Multiple Cameras
#### Example TF Configuration for Two Cameras
When using multiple cameras, it's essential to calibrate them and publish a static TF tree for each camera. The following Python script configures the TF tree based on your calibration results:
```python
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
ld = LaunchDescription([
Node(
package='tf2_ros',
executable='static_transform_publisher',
name='camera_01_tf',
arguments=['0', '0', '0', '0', '0', '0', 'base_link', 'camera_01_link'],
output='screen'
),
Node(
package='tf2_ros',
executable='static_transform_publisher',
name='camera_02_tf',
arguments=['0', '0', '0', '0', '0', '0', 'base_link', 'camera_02_link'],
output='screen'
)
])
return ld
```
Save this configuration as `multi_camera_tf.launch.py` in the launch directory of the Orbbec camera package. To run it, use:
```bash
ros2 launch orbbec_camera multi_camera_tf.launch.py
```
-109
View File
@@ -1,109 +0,0 @@
## 使用Orbbec ROS 2包配置多个摄像头
本节介绍如何在ROS 2环境中同时配置和使用多个Orbbec摄像头。
### 识别摄像头USB端口
#### 列出连接的摄像头的脚本
要确定摄像头连接到哪些USB端口,您可以使用以下bash脚本。该脚本列出了连接到系统的所有Orbbec设备及其USB端口和序列号。
```bash
#!/bin/bash
VID="2bc5"
for dev in /sys/bus/usb/devices/*; do
if [ -e "$dev/idVendor" ]; then
vid=$(cat "$dev/idVendor")
if [ "$vid" == "${VID}" ]; then
port=$(basename $dev)
product=$(cat "$dev/product" 2>/dev/null) # 产品名称
serial=$(cat "$dev/serial" 2>/dev/null) # 序列号
echo "发现Orbbec设备 $productusb端口 $port,序列号 $serial"
fi
fi
done
```
将此脚本保存为一个文件,并在您的终端中执行,以输出连接的摄像头列表。
### 启动多个摄像头
#### 多摄像头启动配置
您可以通过为每个摄像头指定不同的USB端口来启动多个摄像头。下面是一个使用ROS 2启动系统启动两个摄像头的Python脚本示例。
```python
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription, GroupAction, ExecuteProcess
from launch.launch_description_sources import PythonLaunchDescriptionSource
from ament_index_python.packages import get_package_share_directory
import os
def generate_launch_description():
package_dir = get_package_share_directory('orbbec_camera')
launch_file_dir = os.path.join(package_dir, 'launch')
launch1_include = IncludeLaunchDescription(
PythonLaunchDescriptionSource(os.path.join(launch_file_dir, 'gemini_330_series.launch.py')),
launch_arguments={'camera_name': 'camera_01', 'usb_port': '2-3.4.4.4.1', 'device_num': '2', 'sync_mode': 'free_run'}.items()
)
launch2_include = IncludeLaunchDescription(
PythonLaunchDescriptionSource(os.path.join(launch_file_dir, 'gemini_330_series.launch.py')),
launch_arguments={'camera_name': 'camera_02', 'usb_port': '2-3.4.4.4.3', 'device_num': '2', 'sync_mode': 'free_run'}.items()
)
ld = LaunchDescription([
GroupAction([launch1_include]),
GroupAction([launch2_include])
])
return ld
```
#### 运行启动文件
要执行多摄像头的启动配置,请使用命令:
```bash
ros2 launch orbbec_camera multi_camera.launch.py
```
### 配置多摄像头的TF树
#### 两个摄像头的TF配置示例
使用多个摄像头时,校准它们并为每个摄像头发布静态TF树是必不可少的。以下Python脚本基于您的校准结果配置TF树:
```python
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
ld = LaunchDescription([
Node(
package='tf2_ros',
executable='static_transform_publisher',
name='camera_01_tf',
arguments=['0', '0', '0', '0', '0', '0', 'base_link', 'camera_01_link'],
output='screen'
),
Node(
package='tf2_ros',
executable='static_transform_publisher',
name='camera_02_tf',
arguments=['0', '0', '0', '0', '0', '0', 'base_link', 'camera_02_link'],
output='screen'
)
])
return ld
```
将此配置保存为 `multi_camera_tf.launch.py` 在Orbbec摄像头包的启动目录中。运行它,请使用:
```bash
ros2 launch orbbec_camera multi_camera_tf.launch.py
```
-106
View File
@@ -1,106 +0,0 @@
## Multi-camera synchronous image storage and script analysis
This section describes how to use multiple Orbbec cameras to store images synchronously in a ROS 2 environment and use scripts to parse the data.
### Connection preparation
Please follow the instructions to connect multiple Orbbec cameras and Multi-Camera Sync Hub Pro.
* For detailed guidance on Multi-Camera Sync Hub Pro, you can refer to [Set up cameras for external synchronization](https://www.orbbec.com/docs/set-up-cameras-for-external-synchronization_v1-2/).
* Example of connecting multiple cameras to Multi-Camera Sync Hub Pro.
![Schematic diagram of multi-machine synchronizer connection](./images/image7.jpg)
### Multi-camera synchronous image storage
#### Check the USB port of your device
```bash
ros2 run orbbec_camera list_devices_node
```
![Check the USB port](./images/image8.jpg)
#### **Parameter configuration**
##### multi_camera_synced.launch.py
1. `usb_port` is set to the USB port of the device.
2. `device_num` is set to 2, indicating that two cameras are started.
3. `sync_mode` is set to primary, indicating that the camera device is set to host mode.
4. The slave sets `trigger_out_enabled` to false.
![Launch Configuration](./images/image9.jpg)
##### multi_save_rgbir_params.json
Configure USB ports and names for multiple devices.
![Json Configuration](./images/image10.jpg)
##### camera_params.yaml
Enable the left IR camera.
`enable_left_ir: true`
##### start_multi_sync.sh
`{data: 100}` means that each stream of each camera stores 100 images.
![Shell Configuration](./images/image11.jpg)
#### Running
Start multiple Orbbec cameras (select 1).
* On terminal 1
```bash
cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/tools
sudo chmod +x start_multi_sync.sh
bash start_multi_sync.sh
```
![Startup Script](./images/image12.jpg)
Save the image synchronously (select 4).
* On terminal 2
```bash
cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/tools
bash start_multi_sync.sh
```
### Script parsing
`multicamera_sync` - save the image and analysis script storage directory.
* `ouput` - save the image directory
* `Python` - analysis script directory
Note: `multicamera_sync` needs to be copied to the current workspace directory (same level as the `install` directory).
#### Configuration Files
* `Config.ini` configures the camera's actual frame rate and maximum error timestamp threshold.
* `DevicesInfo.txt` configures the number of cameras and the camera's pid, vid, SN number and other parameters.
* `StreamProfileInfo.txt` configures the camera resolution, frame rate, and encoding format.
Note: `DevicesInfo.txt` and `StreamProfileInfo.txt` are files required by the parsing script and need to be copied to the same directory as the `TotalModeFrames` folder (The `TotalModeFrames` directory is created by the image saving script and is used to store image data collected synchronously by multiple cameras).
#### Running
Run the parsing script to parse the images stored synchronously by multiple cameras.
```bash
cd ~/ros2_ws/multicamera_sync/Python
python3 SyncFramesMain.py
```
#### Output
* `matchFrames`: Incomplete dataset of the same camera group, camera image information is missing.
* `notMatchFrames`: Complete dataset of the same camera group.
* `abnormal`: The same set of complete data sets of cameras, and the camera synchronization time exceeds the parameter `tspRangeThreshold` set in `Config.ini`.
-106
View File
@@ -1,106 +0,0 @@
## 多机同步存图及脚本解析
本节介绍如何在ROS 2环境中使用多个Orbbec摄像头同步存图,并使用脚本解析数据。
### 连接准备
请根据指导连接多个Orbbec摄像头和多机同步器。
* 有关多机同步器的详细指导,请参阅[设置相机进行外部同步](https://www.orbbec.com/docs/set-up-cameras-for-external-synchronization_v1-2/)。
* 多个Orbbec摄像头和多机同步器的连接示例。
![多机同步器连接示意图](./images/image7.jpg)
### 多机同步存图
#### 查看设备的USB端口
```bash
ros2 run orbbec_camera list_devices_node
```
![查看设备的USB端口](./images/image8.jpg)
#### 参数配置
##### multi_camera_synced.launch.py
1. `usb_port` 设置为设备的USB端口。
2. `device_num` 设置为2,说明启动了两个相机。
3. `sync_mode` 设置为 primary,说明相机设备设置为主机模式。
4. 从机设置 `trigger_out_enabled` 为 false。
![launch配置](./images/image9.jpg)
##### multi_save_rgbir_params.json
配置多个设备的USB端口和名称。
![json配置](./images/image10.jpg)
##### camera_params.yaml
启用左IR摄像头。
`enable_left_ir: true`
##### start_multi_sync.sh
`{data: 100}` 表示每台相机的每个流存储100张图片。
![脚本配置](./images/image11.jpg)
#### 启动多机同步存图
启动多个Orbbec摄像头(选择1)。
* 终端1
```bash
cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/tools
sudo chmod +x start_multi_sync.sh
bash start_multi_sync.sh
```
![启动脚本](./images/image12.jpg)
同步保存图片(选择4)。
* 终端2
```bash
cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/tools
bash start_multi_sync.sh
```
### 脚本解析
`multicamera_sync` - 保存图片以及解析脚本存放目录。
* `ouput` - 保存图片目录
* `Python` - 解析脚本目录
注意:`multicamera_sync` 需要复制到当前工作空间目录(与 `install` 目录同级)。
#### 配置文件
* `Config.ini` 配置相机实际帧率和最大误差时间戳阈值。
* `DevicesInfo.txt` 配置相机数量以及相机的pid、vid、SN号等参数。
* `StreamProfileInfo.txt` 配置相机分辨率、帧率以及编码格式。
注意:`DevicesInfo.txt``StreamProfileInfo.txt` 是解析脚本所需要的文件,需要复制到 `TotalModeFrames` 文件夹同级目录( `TotalModeFrames` 目录由存图脚本创建,用于存储多相机同步采集的图像数据)。
#### 运行脚本
运行解析脚本解析多机同步存储的图片。
```bash
cd ~/ros2_ws/multicamera_sync/Python
python3 SyncFramesMain.py
```
#### 输出结果
* `matchFrames`:同一组摄像头不完整的数据集,存在摄像头图片信息缺失。
* `notMatchFrames`:同一组摄像头完整的数据集。
* `abnormal`:同一组摄像头完整的数据集,且相机同步时间超过 `Config.ini` 设置的参数 `tspRangeThreshold`
-53
View File
@@ -1,53 +0,0 @@
## Enabling and Visualizing Point Cloud in ROS 2
This section demonstrates how to enable point cloud data output from the camera node and visualize it using RViz2, similarly to the initial camera node setup discussed in the [Starting Camera Node](./start_camera_node.MD) document.
### Enabling Depth Point Cloud
#### Command to Enable Depth Point Cloud
To activate the point cloud data stream for depth information, use the following command:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py enable_point_cloud:=true
```
#### Visualizing Depth Point Cloud in RViz2
After running the above command, perform the following steps to visualize the depth point cloud:
1. Open RViz2.
2. Add a `PointCloud2` display.
3. Select the `/camera/depth/points` topic for visualization.
4. Set the fixed frame to `camera_link` to properly align the data.
##### Example Visualization
Here is what the depth point cloud might look like in RViz2:
![Depth Point Cloud Visualization](./images/image5.jpg)
### Enabling Colored Point Cloud
#### Command to Enable Colored Point Cloud
To enable the colored point cloud feature, enter the following command:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py enable_colored_point_cloud:=true
```
#### Visualizing Colored Point Cloud in RViz2
To visualize the colored point cloud data:
1. Launch RViz2 following the command execution.
2. Add a `PointCloud2` display panel.
3. Choose the `/camera/depth_registered/points` topic from the list.
4. Ensure the fixed frame is set to `camera_link`.
##### Example Visualization
The result of the colored point cloud in RViz2 should look similar to this:
![Colored Point Cloud Visualization](./images/image6.jpg)
-53
View File
@@ -1,53 +0,0 @@
## 在ROS 2中启用和可视化点云
本节演示如何从相机节点启用点云数据输出,并使用RViz2进行可视化,类似于之前讨论的[启动相机节点](./start_camera_node.MD)文档中的初始相机节点设置。
### 启用深度点云
#### 启用深度点云的命令
要激活深度信息的点云数据流,请使用以下命令:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py enable_point_cloud:=true
```
#### 在RViz2中可视化深度点云
运行上述命令后,执行以下步骤来可视化深度点云:
1. 打开RViz2。
2. 添加一个`PointCloud2`显示。
3. 选择`/camera/depth/points`主题进行可视化。
4. 将固定帧设置为`camera_link`以正确对齐数据。
##### 示例可视化
以下是在RViz2中可能看到的深度点云的样子:
![深度点云可视化](./images/image5.jpg)
### 启用彩色点云
#### 启用彩色点云的命令
要启用彩色点云功能,请输入以下命令:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py enable_colored_point_cloud:=true
```
#### 在RViz2中可视化彩色点云
要可视化彩色点云数据:
1. 在执行命令后启动RViz2。
2. 添加一个`PointCloud2`显示面板。
3. 从列表中选择`/camera/depth_registered/points`主题。
4. 确保固定帧设置为`camera_link`
##### 示例可视化
在RViz2中彩色点云的结果应类似于这样:
![彩色点云可视化](./images/image6.jpg)
+15
View File
@@ -0,0 +1,15 @@
# Predefined presets
| Preset | Features | Recommended use cases |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Default | - Best visual perception``- Overall good performance in accuracy, fill rate, tiny objects, etc. | - Generic `<br>`- Robotics |
| Hand | - Clear hand and finger edges | - Gesture recognition |
| High Accuracy | - Depth of high confidence `<br>`- Barely noise depth values `<br>`- Lower fill rate | - Collision avoidance `<br>`- Object scanning |
| High Density | - Higher fill rate `<br>`- More tiny objects `<br>`- May suffer from noise depth values | - Object recognition `<br>`- Pick & place `<br>`- Foreground & background animation |
| Medium Density | - Balanced performance in fill rate and accuracy `<br>`- In comparison to Default: lower fill rate, better edge quality | - Generic and alternative to Default |
| Custom | - User defined Preset `<br>`- Derived from Presets above, with customized modifications, e.g. a new configuration for the post-processing pipeline, modified mean intensity set point of depth AE function, etc. | - Better depth performance achieved using customized configurations in comparison to using predefined presets `<br>`- For well-established custom configurations |
Choose the appropriate preset name based on your specific use case and set it as the value for the `device_preset`
parameter.
-83
View File
@@ -1,83 +0,0 @@
## Starting the Camera Node in ROS 2
This guide provides instructions on how to launch the camera node with a colored point cloud feature enabled using ROS 2.
### Command to Start the Node
To start the camera node, execute the following command in your terminal:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py enable_colored_point_cloud:=true
```
This command initiates the camera node and enables the colored point cloud.
### Published Topics
Once the camera node is running, it will publish data on several ROS topics. Below is a list of the available topics:
- **IMU Data and IMU Information:**
- `camera/accel/imu_info`
- `camera/gyro/imu_info`
- `camera/gyro_accel/sample`
- **Color Camera Topics:**
- `/camera/color/camera_info`
- `/camera/color/image_raw`
- `/camera/color/image_raw/compressed`
- `/camera/color/image_raw/compressedDepth`
- `/camera/color/image_raw/theora`
- `/camera/color/metadata`
- **Depth Camera Topics:**
- `/camera/depth/camera_info`
- `/camera/depth/image_raw`
- `/camera/depth/image_raw/compressed`
- `/camera/depth/image_raw/compressedDepth`
- `/camera/depth/image_raw/theora`
- `/camera/depth/metadata`
- `/camera/depth/points`
- `/camera/depth_filter_status`
- `/camera/depth_registered/points`
- `/camera/depth_to_color`
- `/camera/depth_to_left_ir`
- `/camera/depth_to_right_ir`
- **Infrared Camera Topics:**
- `/camera/left_ir/camera_info`
- `/camera/left_ir/image_raw`
- `/camera/left_ir/image_raw/compressed`
- `/camera/left_ir/image_raw/compressedDepth`
- `/camera/left_ir/image_raw/theora`
- `/camera/left_ir/metadata`
- `/camera/right_ir/camera_info`
- `/camera/right_ir/image_raw`
- `/camera/right_ir/image_raw/compressed`
- `/camera/right_ir/image_raw/compressedDepth`
- `/camera/right_ir/image_raw/theora`
- `/camera/right_ir/metadata`
- **Miscellaneous Topics:**
- `/diagnostics`
- `/parameter_events`
- `/rosout`
- `/rosout_agg`
### Visualizing Data in RViz2
To view the PointCloud or Image data, use RViz2:
1. Launch RViz2.
2. Select the topic you wish to visualize from the list of published topics.
3. Add the selected topic to RViz2 to start viewing the data.
### Example Visualizations
Here are examples of how the visualization might appear in RViz2:
- **PointCloud Visualization**
![PointCloud View](./images/image1.jpg)
- **Image Data Visualization**
![Image Data View](./images/image2.jpg)
-82
View File
@@ -1,82 +0,0 @@
## 在ROS 2中启动相机节点
本指南提供了使用ROS 2启动启用彩色点云功能的相机节点的指令。
### 启动节点的命令
要启动相机节点,请在终端执行以下命令:
```bash
ros2 launch orbbec_camera gemini_330_series.launch.py enable_colored_point_cloud:=true
```
此命令将启动相机节点并启用彩色点云。
### 发布的主题
一旦相机节点运行,它将在多个ROS主题上发布数据。以下是可用主题的列表:
- **IMU数据和IMU信息:**
- `camera/accel/imu_info`
- `camera/gyro/imu_info`
- `camera/gyro_accel/sample`
- **彩色相机主题:**
- `/camera/color/camera_info`
- `/camera/color/image_raw`
- `/camera/color/image_raw/compressed`
- `/camera/color/image_raw/compressedDepth`
- `/camera/color/image_raw/theora`
- `/camera/color/metadata`
- **深度相机主题:**
- `/camera/depth/camera_info`
- `/camera/depth/image_raw`
- `/camera/depth/image_raw/compressed`
- `/camera/depth/image_raw/compressedDepth`
- `/camera/depth/image_raw/theora`
- `/camera/depth/metadata`
- `/camera/depth/points`
- `/camera/depth_filter_status`
- `/camera/depth_registered/points`
- `/camera/depth_to_color`
- `/camera/depth_to_left_ir`
- `/camera/depth_to_right_ir`
- **红外相机主题:**
- `/camera/left_ir/camera_info`
- `/camera/left_ir/image_raw`
- `/camera/left_ir/image_raw/compressed`
- `/camera/left_ir/image_raw/compressedDepth`
- `/camera/left_ir/image_raw/theora`
- `/camera/left_ir/metadata`
- `/camera/right_ir/camera_info`
- `/camera/right_ir/image_raw`
- `/camera/right_ir/image_raw/compressed`
- `/camera/right_ir/image_raw/compressedDepth`
- `/camera/right_ir/image_raw/theora`
- `/camera/right_ir/metadata`
- **杂项主题:**
- `/diagnostics`
- `/parameter_events`
- `/rosout`
- `/rosout_agg`
### 在RViz2中可视化数据
要查看点云或图像数据,请使用RViz2:
1. 启动RViz2。
2. 从发布的主题列表中选择您希望可视化的主题。
3. 将选定的主题添加到RViz2中开始查看数据。
### 示例可视化
以下是在RViz2中可视化可能出现的示例:
- **点云可视化**
![点云视图](./images/image1.jpg)
- **图像数据可视化**
![图像数据视图](./images/image2.jpg)