mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-09-12 19:20:20 +08:00
add mega I launch file
This commit is contained in:
@@ -1,6 +1,12 @@
|
||||
<<<<<<< HEAD
|
||||
# OrbbecSDK ROS2
|
||||
|
||||
[](http://github.com/badges/stability-badges) 
|
||||
=======
|
||||
# Orbbec ROS2 SDK
|
||||
|
||||
[](http://github.com/badges/stability-badges) 
|
||||
>>>>>>> add mega I launch file
|
||||
|
||||
OrbbecSDK_ROS2 is a wrapper for the Orbbec 3D camera that provides seamless integration with the ROS 2 environment. It
|
||||
supports ROS 2 Foxy, Humble, and Jazzy distributions.
|
||||
@@ -11,6 +17,7 @@ With the major update of the new branch [v2-main](https://github.com/orbbec/Orbb
|
||||
|
||||
<!-- TOC -->
|
||||
|
||||
<<<<<<< HEAD
|
||||
* [OrbbecSDK ROS2](#orbbec-ros2-sdk)
|
||||
* [Table of Contents](#table-of-contents)
|
||||
* [Installation Instructions](#installation-instructions)
|
||||
@@ -48,6 +55,45 @@ With the major update of the new branch [v2-main](https://github.com/orbbec/Orbb
|
||||
* [Why Are There So Many Launch Files?](#why-are-there-so-many-launch-files)
|
||||
* [Other useful links](#other-useful-links)
|
||||
* [License](#license)
|
||||
=======
|
||||
* [Orbbec ROS2 SDK](#orbbec-ros2-sdk)
|
||||
* [Table of Contents](#table-of-contents)
|
||||
* [Installation Instructions](#installation-instructions)
|
||||
* [Getting start](#getting-start)
|
||||
* [Efficient intra-process communication:](#efficient-intra-process-communication)
|
||||
* [Example](#example)
|
||||
* [Manually loading multiple components into the same process](#manually-loading-multiple-components-into-the-same-process)
|
||||
* [Using a launch file](#using-a-launch-file)
|
||||
* [Limitations](#limitations)
|
||||
* [Use V4L2 backend](#use-v4l2-backend)
|
||||
* [Launch parameters](#launch-parameters)
|
||||
* [Predefined presets](#predefined-presets)
|
||||
* [Depth work mode switch](#depth-work-mode-switch)
|
||||
* [Configuration of depth NFOV and WFOV modes](#configuration-of-depth-nfov-and-wfov-modes)
|
||||
* [All available service for camera control](#all-available-service-for-camera-control)
|
||||
* [All available topics](#all-available-topics)
|
||||
* [Network device enumeration](#network-device-enumeration)
|
||||
* [Multi-Camera](#multi-camera)
|
||||
* [Compressed Image](#compressed-image)
|
||||
* [Use hardware decoder to decode JPEG](#use-hardware-decoder-to-decode-jpeg)
|
||||
* [rockchip and Amlogic](#rockchip-and-amlogic)
|
||||
* [Nvidia Jetson](#nvidia-jetson)
|
||||
* [Check which profiles the camera supports](#check-which-profiles-the-camera-supports)
|
||||
* [Building a Debian Package](#building-a-debian-package)
|
||||
* [Preparing the Environment](#preparing-the-environment)
|
||||
* [Configuring ROS Dependencies](#configuring-ros-dependencies)
|
||||
* [Building the Package](#building-the-package)
|
||||
* [Launch files](#launch-files)
|
||||
* [Product support](#product-support)
|
||||
* [DDS Tuning](#dds-tuning)
|
||||
* [Frequently Asked Questions](#frequently-asked-questions)
|
||||
* [Unexpected Crash](#unexpected-crash)
|
||||
* [No Data Stream from Multiple Cameras](#no-data-stream-from-multiple-cameras)
|
||||
* [Additional Troubleshooting](#additional-troubleshooting)
|
||||
* [Why Are There So Many Launch Files?](#why-are-there-so-many-launch-files)
|
||||
* [Other useful links](#other-useful-links)
|
||||
* [License](#license)
|
||||
>>>>>>> add mega I launch file
|
||||
|
||||
<!-- TOC -->
|
||||
|
||||
@@ -198,12 +244,21 @@ ros2 service call /camera/save_point_cloud std_srvs/srv/Empty "{}"
|
||||
```
|
||||
|
||||
## Efficient intra-process communication:
|
||||
<<<<<<< HEAD
|
||||
|
||||
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.
|
||||
=======
|
||||
>>>>>>> add mega I launch file
|
||||
|
||||
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).
|
||||
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.
|
||||
|
||||
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).
|
||||
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
|
||||
|
||||
@@ -256,7 +311,8 @@ The following are the launch parameters available:
|
||||
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`,
|
||||
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.
|
||||
- `enable_d2c_viewer`: Publishes the D2C overlay image (for testing only).
|
||||
- `device_num`: The number of devices. This must be filled in if multiple cameras are required.
|
||||
@@ -271,13 +327,15 @@ The following are the launch parameters available:
|
||||
- `usb_port`: The USB port of the camera. This is required when multiple cameras are used.
|
||||
- `enable_accel`: Enables the accelerometer.
|
||||
- `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`.
|
||||
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.
|
||||
- `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.
|
||||
- `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`.
|
||||
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
|
||||
@@ -317,6 +375,7 @@ The following are the launch parameters available:
|
||||
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.
|
||||
<<<<<<< HEAD
|
||||
- `enable_3d_reconstruction_mode`: Enables 3D reconstruction mode. Default is `false`. When set to `true`, the camera
|
||||
laser operates in on-off mode, capturing IR images (laser off) for VSLAM localization and depth images (laser on) for point cloud computation.
|
||||
- `tf_publish_rate`: The rate at which the camera publishes dynamic transforms. The default value is `0.0`, which means static transforms are published.
|
||||
@@ -331,6 +390,33 @@ The following are the launch parameters available:
|
||||
the firmware, and if hardware logging is desired, it should also be set to `true`.
|
||||
- `log_level` : SDK log level, the default value is `info`, the optional values are `debug`, `info`, `warn`, `error`, `fatal`.
|
||||
- `enable_color_undistortion`: Enables color undistortion, the default value is `false`. Note that our color cameras exhibit minimal distortion, and typically, undistortion is not necessary.
|
||||
=======
|
||||
|
||||
- `enable_3d_reconstruction_mode`: Enables 3D reconstruction mode. Default is `false`. When set to `true`, the camera
|
||||
laser operates in on-off mode, capturing IR images (laser off) for VSLAM localization and depth images (laser on) for
|
||||
point cloud computation.
|
||||
- `tf_publish_rate`: The rate at which the camera publishes dynamic transforms. The default value is `0.0`, which means
|
||||
static transforms are published.
|
||||
- `time_domain`: The frame time domain, string type, can be `device`, `global`, or `system`. `device` means using the
|
||||
hardware timestamp from the camera,
|
||||
`system` means using the timestamp when the PC received the first packet of data or frame, and `global` is used for
|
||||
synchronized time across multiple
|
||||
devices, aligning data from different sources to a common time base.
|
||||
- `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.
|
||||
- `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`.
|
||||
- `log_level` : SDK log level, the default value is `info`, the optional values are `debug`, `info`, `warn`, `error`,
|
||||
`fatal`.
|
||||
- `enable_color_undistortion`: Enables color undistortion, the default value is `false`. Note that our color cameras
|
||||
exhibit minimal distortion, and typically, undistortion is not necessary.
|
||||
>>>>>>> add mega I launch file
|
||||
- `color_brightness`: Color brightness.
|
||||
- `ir_brightness`: IR brightness.
|
||||
- `color_ae_max_exposure`: Color auto exposure maximum exposure.
|
||||
@@ -642,6 +728,7 @@ bash .make_deb.sh
|
||||
| gemini ew | gemini_ew.launch.py |
|
||||
| gemini ew lite | gemini_ew_lite.launch.py |
|
||||
| gemini 330 series | gemini_330_series.launch.py |
|
||||
| femto mega network /femto mega I | femto_net_camera.launch.py |
|
||||
|
||||
**All launch files are essentially similar, with the primary difference being the default values of the parameters set
|
||||
for different models
|
||||
@@ -723,7 +810,8 @@ If you use Fast DDS, you can refer to the [Fast DDS Configuration](./docs/fastdd
|
||||
|
||||
### Unexpected Crash
|
||||
|
||||
If the camera node crashes unexpectedly, it will generate a crash log in the current running directory: `Log/camera_crash_stack_trace_xx.log`.
|
||||
If the camera node crashes unexpectedly, it will generate a crash log in the current running directory:
|
||||
`Log/camera_crash_stack_trace_xx.log`.
|
||||
Please send this log to the support team or submit it to a GitHub issue for further assistance.
|
||||
|
||||
### No Data Stream from Multiple Cameras
|
||||
@@ -739,7 +827,12 @@ Please send this log to the support team or submit it to a GitHub issue for furt
|
||||
|
||||
**Increase usbfs_memory_mb Value**:
|
||||
|
||||
<<<<<<< HEAD
|
||||
- Increase the `usbfs_memory_mb` value to 128MB (this is a reference value and can be adjusted based on your system’s needs)
|
||||
=======
|
||||
- Increase the `usbfs_memory_mb` value to 128MB (this is a reference value and can be adjusted based on your system’s
|
||||
needs)
|
||||
>>>>>>> add mega I launch file
|
||||
by running the following command:
|
||||
|
||||
```bash
|
||||
@@ -750,7 +843,12 @@ Please send this log to the support team or submit it to a GitHub issue for furt
|
||||
|
||||
### Additional Troubleshooting
|
||||
|
||||
<<<<<<< HEAD
|
||||
- If you encounter other issues, set the `log_level` parameter to `debug`. This will generate an SDK log file in the running directory: `Log/OrbbecSDK.log.txt`.
|
||||
=======
|
||||
- If you encounter other issues, set the `log_level` parameter to `debug`. This will generate an SDK log file in the
|
||||
running directory: `Log/OrbbecSDK.log.txt`.
|
||||
>>>>>>> add mega I launch file
|
||||
Please provide this file to the support team for further assistance.
|
||||
- If firmware logs are required, set `enable_heartbeat` to `true` to activate this feature.
|
||||
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
from launch import LaunchDescription
|
||||
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription, GroupAction, ExecuteProcess
|
||||
from launch.launch_description_sources import PythonLaunchDescriptionSource
|
||||
from launch_ros.actions import Node
|
||||
from ament_index_python.packages import get_package_share_directory
|
||||
import os
|
||||
|
||||
|
||||
def generate_launch_description():
|
||||
# Include launch files
|
||||
# you can use this launch file to launch femto mega and femto mega I with net device ip and port
|
||||
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, 'femto_mega.launch.py')
|
||||
),
|
||||
launch_arguments={
|
||||
'camera_name': 'camera',
|
||||
'net_device_ip': '192.168.1.10',
|
||||
'net_device_port': '8090',
|
||||
'sync_mode': 'standalone'
|
||||
}.items()
|
||||
)
|
||||
|
||||
# If you need more cameras, just add more launch_include here, and change the usb_port and device_num
|
||||
|
||||
# Launch description
|
||||
ld = LaunchDescription([
|
||||
GroupAction([launch1_include]),
|
||||
])
|
||||
|
||||
return ld
|
||||
Reference in New Issue
Block a user