Giter Club home page Giter Club logo

orbbecsdk_ros1's Introduction

Orbbec ROS SDK

stable version

Orbbec ROS SDK is a wrapper for Orbbec SDK that supports ROS Kinetic, Melodic, and Noetic distributions. It enables smooth integration of Orbbec 3D cameras into ROS projects.

Table of Contents

Install Dependencies

ROS

  • Please refer directly to the ROS wiki for installation instructions.

Other Dependencies

  • Install dependencies (be careful with your ROS distribution):

    # Assuming you have sourced the ROS environment, same below
    sudo apt install libgflags-dev ros-$ROS_DISTRO-image-geometry ros-$ROS_DISTRO-camera-info-manager \
    ros-$ROS_DISTRO-image-transport ros-$ROS_DISTRO-image-publisher libgoogle-glog-dev libusb-1.0-0-dev libeigen3-dev \
    ros-$ROS_DISTRO-diagnostic-updater ros-$ROS_DISTRO-diagnostic-msgs

Create ROS Workspace and Build

Create a ROS workspace (if you don't have one):

mkdir -p ~/ros_ws/src

Get the source code:

cd ~/ros_ws/src
git clone https://github.com/orbbec/OrbbecSDK_ROS1.git

Build the package:

cd ~/ros_ws
catkin_make

Install udev rules:

cd ~/ros_ws
source ./devel/setup.bash
roscd orbbec_camera
cd scripts
sudo cp 99-obsensor-libusb.rules /etc/udev/rules.d/99-obsensor-libusb.rules
sudo udevadm control --reload && sudo udevadm trigger

Start the Camera

In terminal 1:

source ./devel/setup.bash
roslaunch orbbec_camera gemini_330_series.launch

In terminal 2:

source ./devel/setup.bash
rviz

Select Topics and Control the Camera

Check topics, services, and parameters (open a new terminal):

rostopic list
rosservice list
rosparam list

Get camera parameters (MUST start stream first):

rosservice call /camera/get_camera_params "{}"

Check camera parameters (please refer to the ROS documentation for the meaning of specific fields in the camera info):

rostopic echo /camera/depth/camera_info
rostopic echo /camera/color/camera_info

Check device information:

rosservice call /camera/get_device_info "{}"

Get the SDK version (includes firmware and Orbbec SDK versions):

rosservice call /camera/get_sdk_version "{}"

Set/get (auto) exposure:

rosservice call /camera/set_color_auto_exposure '{data: false}'
rosservice call /camera/set_left_ir_auto_exposure "{data: false}"

# Setting exposure values (be careful with the data range; the following example may not be correct)
rosservice call /camera/set_left_ir_exposure "{data: 2000}"
rosservice call /camera/set_color_exposure "{data: 2000}"

# Get exposure
rosservice call /camera/get_left_ir_exposure "{}"
rosservice call /camera/get_color_exposure "{}"

Set/get gain:

# Get gain
rosservice call /camera/get_color_gain '{}'
rosservice call /camera/get_left_ir_gain '{}'

# Setting the gain (be careful with the data range; the following example may not be correct)
rosservice call /camera/set_color_gain "{data: 200}"
rosservice call /camera/set_left_ir_gain "{data: 200}"

Set/get (auto) white balance:

rosservice call /camera/set_auto_white_balance "{data: false}"
rosservice call /camera/get_auto_white_balance "{data: false}"

Turn on/off laser:

rosservice call /camera/set_laser '{data: true}' # Turn on
rosservice call /camera/set_laser '{data: false}' # Turn off

Save images:

rosservice call /camera/save_images "{}"

Save point cloud:

rosservice call /camera/save_point_cloud "{}"

NOTE: The images are saved under ~/.ros/image and are only available when the sensor is on.

Launch Parameters

The following launch parameters are available:

  • connection_delay: The delay time in milliseconds for reopening the device. Some devices require a longer time to initialize, and reopening the device immediately can cause firmware crashes when hot-plugging.
  • enable_point_cloud: Enables the point cloud.
  • enable_colored_point_cloud: Enables the RGB point cloud.
  • color_width, color_height, color_fps: The resolution and frame rate of the color stream.
  • left_ir_width, left_ir_height, left_ir_fps: The resolution and frame rate of the left IR stream.
  • right_ir_width, right_ir_height, right_ir_fps: The resolution and frame rate of the right IR stream.
  • depth_width, depth_height, depth_fps: The resolution and frame rate of the depth stream.
  • enable_color: Enables the RGB camera.
  • enable_depth: Enables the depth camera.
  • enable_left_ir: Enables the left IR camera.
  • enable_right_ir: Enables the right IR camera.
  • depth_registration: Enables hardware alignment of the depth frame to the color frame. This field is required when enable_colored_point_cloud is set to true.
  • log_level for OrbbecSDK controls console log verbosity, with levels none, info, debug, warn, fatal. Logs save in ~/.ros/Log. For file logging, adjust <FileLogLevel> in config/OrbbecSDKConfig_v1.0.xml.
  • ordered_pc: Whether the point cloud should be organized in an ordered grid (true) or as an unordered set of points (false).
  • device_preset: The default value is Default. Only the G330 series is supported. For more information, refer to the G330 documentation. 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.
  • enable_decimation_filter: Only the G330 series is supported. This filter effectively reduces the depth scene complexity. The filter runs on kernel sizes [2x2] to [8x8] pixels. The image size is scaled down proportionally in both dimensions to preserve the aspect ratio.
  • enable_hdr_merge: This filter is used jointly with depth HDR function. By merging consecutive depth images of alternating exposure values, we can over come challenges in acquiring depth values for under-illuminated and over-illuminated objects simultaneously.
  • sequence_id_filter_id: This filter is used jointly with depth HDR function and outputs only the sequence with specified sequence ID.
  • enable_threshold_filter: This filter preserves depth values of interest and omits depth values out of scope.
  • enable_noise_removal_filter: This filter removes speckle noise in clusters and gives rise to a less-filled depth map.
  • enable_spatial_filter: This filter performs multiple iterations of processing as specified by the magnitude parameter, to enhance the smoothness of depth data. It is also capable of filling small holes in depth maps.
  • enable_temporal_filter:This filter is intended to improve the depth data persistency by manipulating per-pixel values based on previous frames. The filter performs a single pass on the data, adjusting the depth values while also updating the tracking history.
  • enable_hole_filling_filter: This filter fills all holes in the depth map using the specified mode.
  • depth_precision : The depth precision, should be like 1mm format. The default value is 1mm.
  • enable_laser : Whether to enable the laser. The default value is true.
  • laser_on_off_mode: Laser on/off alternate mode, 0: off, 1: on-off alternate, 2: off-on alternate. The default value is 0.
  • 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.

IMPORTANT: Please carefully read the instructions regarding software filtering settings at this link. If you are uncertain, do not modify these settings.

Depth work mode switch:

  • Before starting the camera, depth work mode (depth_work_mode) can be configured for the corresponding xxx.launch 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 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.
<!-- Depth work mode support is as follows: -->
<!-- Unbinned Dense Default -->
<!-- Unbinned Sparse Default -->
<!-- Binned Sparse Default -->
<!-- Obstacle Avoidance -->
<arg name="depth_work_mode" default=""/>
  • View depth work modes:
rosrun orbbec_camera list_depth_work_mode_node

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.

Check which profiles the camera supports

rosrun orbbec_camera list_camera_profile_mode_node

Available Services for Camera Control

The service names intuitively reflect their purposes. It's crucial to understand that services related to setting or getting parameters—denoted as set_* and get_*—become available only when the respective enable_* parameters are activated. For instance, enabling features such as left infrared (IR) with enable_left_ir, right IR with enable_right_ir, depth sensing with enable_depth, or color processing with enable_color (refer to Launch Parameters) is a prerequisite for their corresponding services to be operational. This configuration ensures that services are accessible only when their specific stream is enabled in the launch file's stream argument.

  • /camera/get_auto_white_balance
  • /camera/get_camera_params
  • /camera/get_color_auto_exposure
  • /camera/get_color_camera_info
  • /camera/get_color_exposure
  • /camera/get_color_gain
  • /camera/get_depth_auto_exposure
  • /camera/get_depth_camera_info
  • /camera/get_depth_exposure
  • /camera/get_depth_gain
  • /camera/get_device_info
  • /camera/get_device_type
  • /camera/get_left_ir_auto_exposure
  • /camera/get_left_ir_camera_info
  • /camera/get_left_ir_exposure
  • /camera/get_left_ir_gain
  • /camera/get_serial
  • /camera/get_sdk_version
  • /camera/get_white_balance
  • /camera/reset_color_exposure
  • /camera/reset_color_gain
  • /camera/reset_depth_exposure
  • /camera/reset_depth_gain
  • /camera/reset_left_ir_exposure
  • /camera/reset_left_ir_gain
  • /camera/reset_white_balance
  • /camera/save_images
  • /camera/save_point_cloud
  • /camera/set_auto_white_balance
  • /camera/set_color_auto_exposure
  • /camera/set_color_exposure
  • /camera/set_color_gain
  • /camera/set_depth_auto_exposure
  • /camera/set_depth_exposure
  • /camera/set_depth_gain
  • /camera/set_flood
  • /camera/set_left_ir_auto_exposure
  • /camera/set_left_ir_exposure
  • /camera/set_left_ir_gain
  • /camera/set_laser
  • /camera/set_white_balance

Available Topics

  • /camera/color/camera_info: The color camera info.
  • /camera/color/image_raw: The color stream image.
  • /camera/depth/camera_info: The depth camera info.
  • /camera/depth/image_raw: The depth stream image.
  • /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/left_ir/camera_info: The left IR camera info.
  • /camera/left_ir/image_raw: The left IR stream image.
  • /camera/right_ir/camera_info: The right IR camera info.
  • /camera/right_ir/image_raw: The right IR stream image.
  • /diagnostics: The diagnostic information of the camera, Currently, the diagnostic information only includes the temperature of the camera.

Building a Debian Package

First, ensure the necessary tools are installed:

sudo apt install debhelper fakeroot python3-bloom

To create the Debian package, execute these commands:

cd ~/ros_ws/src/OrbbecSDK_ROS1
bash .make_deb.sh

Launch files

product serials launch file
astra+ astra_adv.launch
astra mini/astra mini pro/astra pro astra.launch
astra mini s pro astra.launch
astra2 astra2.launch
astra stereo s stereo_s_u3.launch
astra pro2 astra_pro2.launch
dabai dabai.launch
dabai d1 dabai_d1.launch
dabai dcw dabai_dcw.launch
dabai dw dabai_dw.launch
dabai pro dabai_pro.launch
deeya deeya.launch
femto / femto w femto.launch
femto mega femto_mega.launch
femto bolt femto_bolt.launch
gemini gemini.launch
gemini2 / dabai DCL gemini2.launch
gemini2L gemini2L.launch
gemini e gemini_e.launch
gemini e lite gemini_e_lite.launch
dabai max dabai_max.launch
dabai max pro dabai_max_pro.launch
gemini uw gemini_uw.launch
dabai dcw2 dabai_dcw2.launch
dabai dw2 dabai_dw2.launch
gemini ew gemini_ew.launch
gemini ew lite gemini_ew_lite.launch
gemini 330 series gemini_330_series.launch

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.

Use Nodelet

For users who need to use nodelet, please refer to gemini2_nodelet.launch

Supported hardware products

Please refer to the OrbbecSDK supported products: Product Support

Frequently Asked Questions

No Picture from Multiple Cameras

  • It's possible that the power supply is insufficient. To avoid this, do not connect all cameras to the same hub and use a powered hub instead.

  • It's also possible that the resolution is too high. To resolve this, try lowering the resolution.

Error: "Failed to start device: usbEnumerator createUsbDevice failed!"

  • The current device does not have permission to access the device. Check the PID of the current device:

    lsusb | grep 2bc5

    Your output should look like this:

    Bus 002 Device 007: ID 2bc5:your_pid_here
    

    Edit /etc/udev/rules.d/99-obsensor-libusb.rules and add the following line:

    SUBSYSTEM=="usb", ATTR{idProduct}=="your_pid_here", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="your_device_name_here"

    Replace your_pid_here with the PID of your device and your_device_name_here with the name you want to create for the device (e.g., gemini_camera).

    Then restart the udev service:

    sudo udevadm control --reload-rules && sudo service udev restart && sudo udevadm trigger

Other useful links

License

Copyright 2024 Orbbec Ltd.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an " AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Other names and brands may be claimed as the property of others.

orbbecsdk_ros1's People

Contributors

jian-dong avatar lixby03 avatar obwh avatar swankun avatar tacha-s avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

orbbecsdk_ros1's Issues

Access Femto Mega through ethernet interface

I have a femto mega that's running on a x86 based PC running Ubuntu 20 and ROS noetic.

I haven't been able to find any documentation on how to access or talk to the Femto Mega through the ethernet interface, Is there a default IP or settings to change in the ROS driver?

catkin_make时报错boost::filesystem::detail::creat_directory(boost::filesystem::path const&,boost::filesystem::path const*,boost::system::error_code*)未定义的引用

出错时的log如下,系统为Ubuntu18.04,jetson nano开发板

Base path: /home/slam/ros_ws
Source space: /home/slam/ros_ws/src
Build space: /home/slam/ros_ws/build
Devel space: /home/slam/ros_ws/devel
Install space: /home/slam/ros_ws/install
Creating symlink “/home/slam/ros_ws/src/CMakeLists.txt” pointing to “/opt/ros/melodic/share/catkin/cmake/toplevel.cmake”

Running command: “cmake /home/slam/ros_ws/src -DCATKIN_DEVEL_PREFIX=/home/slam/ros_ws/devel -DCMAKE_INSTALL_PREFIX=/home/slam/ros_ws/install -G Unix Makefiles” in “/home/slam/ros_ws/build”
– The C compiler identification is GNU 11.1.0
– The CXX compiler identification is GNU 11.1.0
– Check for working C compiler: /usr/bin/cc
– Check for working C compiler: /usr/bin/cc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Detecting C compile features
– Detecting C compile features - done
– Check for working CXX compiler: /usr/bin/c++
– Check for working CXX compiler: /usr/bin/c++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Detecting CXX compile features
– Detecting CXX compile features - done
– Using CATKIN_DEVEL_PREFIX: /home/slam/ros_ws/devel
– Using CMAKE_PREFIX_PATH: /opt/ros/melodic
– This workspace overlays: /opt/ros/melodic
– Found PythonInterp: /usr/bin/python2 (found suitable version “2.7.17”, minimum required is “2”)
– Using PYTHON_EXECUTABLE: /usr/bin/python2
– Using Debian Python package layout
– Using empy: /usr/bin/empy
– Using CATKIN_ENABLE_TESTING: ON
– Call enable_testing()
– Using CATKIN_TEST_RESULTS_DIR: /home/slam/ros_ws/build/test_results
– Found gtest sources under ‘/usr/src/googletest’: gtests will be built
– Found gmock sources under ‘/usr/src/googletest’: gmock will be built
– Found PythonInterp: /usr/bin/python2 (found version “2.7.17”)
– Looking for pthread.h
– Looking for pthread.h - found
– Looking for pthread_create
– Looking for pthread_create - not found
– Looking for pthread_create in pthreads
– Looking for pthread_create in pthreads - not found
– Looking for pthread_create in pthread
– Looking for pthread_create in pthread - found
– Found Threads: TRUE
– Using Python nosetests: /usr/bin/nosetests-2.7
– catkin 0.7.29
– BUILD_SHARED_LIBS is on
– BUILD_SHARED_LIBS is on
– ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
– ~~ traversing 1 packages in topological order:
– ~~ - orbbec_camera
– ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
– +++ processing catkin package: ‘orbbec_camera’
– ==> add_subdirectory(OrbbecSDK_ROS1)
– Using these message generators: gencpp;geneus;genlisp;gennodejs;genpy
– Found OpenCV: /usr (found version “4.1.1”)
– Boost found.
– Found PkgConfig: /usr/bin/pkg-config (found version “0.29.1”)
– Checking for one of the modules ‘libglog’
– ORRBEC Machine : aarch64

– ORRBEC Machine Bits : 64

– orbbec_camera: 3 messages, 9 services
– Configuring done
– Generating done
– Build files have been written to: /home/slam/ros_ws/build

[100%] Linking CXX executable /home/slam/ros_ws/devel/lib/orbbec_camera/orbbec_camera_node
/home/slam/ros_ws/devel/lib/liborbbec_camera.so:对‘boost::filesystem::detail::create_directory(boost::filesystem::path const&, boost::filesystem::path const*, boost::system::error_code*)’未定义的引用
collect2: error: ld returned 1 exit status
OrbbecSDK_ROS1/CMakeFiles/orbbec_camera_node.dir/build.make:187: recipe for target ‘/home/slam/ros_ws/devel/lib/orbbec_camera/orbbec_camera_node’ failed
make[2]: *** [/home/slam/ros_ws/devel/lib/orbbec_camera/orbbec_camera_node] Error 1
CMakeFiles/Makefile2:800: recipe for target ‘OrbbecSDK_ROS1/CMakeFiles/orbbec_camera_node.dir/all’ failed
make[1]: *** [OrbbecSDK_ROS1/CMakeFiles/orbbec_camera_node.dir/all] Error 2
Makefile:140: recipe for target ‘all’ failed
make: *** [all] Error 2
Invoking “make -j4 -l4” failed

尝试以下解决方式均无效:
1.使用不同版本的boost(1.65/1.82)
2.使用不同版本gcc(7/11)

GPU/computer requirements?

Hello! Thanks so much for creating this library. I am planning out a vision system that could use up to three Orbbec Femto Mega cameras. Can you give me an idea of what sort of system requirements I would need to run such a system? Basic CPU/RAM/GPU numbers should be enough for me to plan. Thanks very much!

How could I get the IMU data

I've bought a gemini2,and The dealer told me that it has a built-in IMU, but it is not clear how to obtain the IMU data through ROS.
I'm working on ubuntu20.04-noetic

Transforms is not valid in femto bolt.

If it were similar to Azure Kinect, camera_link and color_frame should be parallel, with depth_frame slightly pitched downward relative to camera_link. However, when starting FEMTO BOLT, the TF results in camera_link and depth_frame being parallel, with color_frame slightly pitched downward relative to camera_link.

CameraInfoManager is not setup.

The following variables or parameters exist but cannot be used because they have not been setup.

std::shared_ptr<camera_info_manager::CameraInfoManager> color_camera_info_ = nullptr;
std::shared_ptr<camera_info_manager::CameraInfoManager> ir_camera_info_ = nullptr;

ir_info_uri_ = nh_private_.param<std::string>("ir_info_uri", "");
color_info_uri_ = nh_private_.param<std::string>("color_info_uri", "");

[ERROR] get gain error Property is not supported! propertyId: 2018

Input:

$ roslaunch orbbec_camera femto_bolt.launch

Output:

[ WARN] [1714036053.974147522]: Publishing dynamic camera transforms (/tf) at 10 Hz
[ INFO] [1714036053.997410512]: Stream left_ir is disabled.
[ INFO] [1714036053.997470525]: Stream right_ir is disabled.
[ INFO] [1714036054.008049526]: stream depth exposure 125
[ INFO] [1714036054.008355069]: stream ir exposure 125
[ INFO] [1714036054.008606323]: stream color exposure 200
[ERROR] [1714036054.008863472]: get gain error Property is not supported! propertyId: 2018
[ERROR] [1714036054.008941333]: get gain error Property is not supported! propertyId: 2027
[ INFO] [1714036054.009168177]: stream color gain 0
[ INFO] [1714036054.009395994]: stream color wb 6500
[ INFO] [1714036054.010887437]: Current node process id: 2342426
[ INFO] [1714036054.010936934]: Device Femto Bolt connected
[ INFO] [1714036054.010966350]: Serial number: CL8K14101CC
[ INFO] [1714036054.010996891]: Firmware version: 1.0.9
[ INFO] [1714036054.011027661]: Hardware version: 1.2
[ INFO] [1714036054.011066529]: device uid: 2-5-4
[ INFO] [1714036054.011112893]: ORBBEC camera is up and running
[ INFO] [1714036054.011154212]: initializeDevice: device CL8K14101CC cost 3958 ms
[ INFO] [1714036054.011204878]: deviceConnectCallback : deviceConnectCallback end

Issues with point cloud publishing

If do not subscribe at least one of the rgb, depth, or ir image, the pointcloud will not be published.
I ran astra_embedded_s.launch.

pointcloud saving path

can I know where is the pointcloud saved if I run "rosservice call /camera/save_point_cloud"? The documentation said that if I launch "rosservice call /camera/save_images",the image will saved in .ros/images,but I cannot find where is the point cloud.

ROS timestamps of frames would match non-matching (consecutive) frames

Problem

With standalone sync mode and sync enabled, for Femto Bolt:

  • printing both system host receive timestamp (used for ROS) and hardware timestamp

I can see

  • matching pairs of frames by hardware timestamp published (good)

But ROS timestamps (based on system timestamp)

  • from different frame pairs are much closer to each other than the corresponding frames (bad)

Log

  • each pair of frames is synced (1-2 ms difference) by hardware timestamp (good)
  • each pair of frames diffs by system (and ROS) timestamp by around 40-60 ms (bad)
  • matching in system time domain (and ROS) one would get wrong pairs
    • e.g. second RGB is closer closer to first depth than to second depth
[ INFO] [1706867703.006876149]: publishing hw: 1706867702863 sys 1706867702955
[ INFO] [1706867703.012360773]: publishing hw: 1706867702862 sys 1706867703006
[ INFO] [1706867703.074237997]: publishing hw: 1706867702930 sys 1706867703021
[ INFO] [1706867703.079670789]: publishing hw: 1706867702928 sys 1706867703074
[ INFO] [1706867703.130402564]: publishing hw: 1706867702996 sys 1706867703090
[ INFO] [1706867703.136386807]: publishing hw: 1706867702995 sys 1706867703130
[ INFO] [1706867703.196850258]: publishing hw: 1706867703063 sys 1706867703153
[ INFO] [1706867703.202784873]: publishing hw: 1706867703061 sys 1706867703196
[ INFO] [1706867703.268265276]: publishing hw: 1706867703129 sys 1706867703220
[ INFO] [1706867703.273795934]: publishing hw: 1706867703128 sys 1706867703268
[ INFO] [1706867703.330562980]: publishing hw: 1706867703196 sys 1706867703289

Code to print timestamps

void OBCameraNode::onNewFrameCallback(const std::shared_ptr<ob::Frame>& frame,
   int height = static_cast<int>(video_frame->height());
 
   auto timestamp = frameTimeStampToROSTime(video_frame->systemTimeStamp());
+  auto hw_timestamp = video_frame->timeStamp();
+  auto sys_timestamp = video_frame->systemTimeStamp();
+  auto diff = hw_timestamp - sys_timestamp;
+
+  ROS_INFO_STREAM("publishing" <<  " hw: " << hw_timestamp << " sys " << sys_timestamp);
+
   if (!camera_params_) {
     camera_params_ = pipeline_->getCameraParam();
   }

Launchfile params to enable sync

+    <arg name="enable_frame_sync" value="true"/>
+    <arg name="sync_mode"         value="STANDALONE"/>    

Orbec Femto Mega Will not Stream 4K color resolution.

I have a femto mega that's running on a x86 based PC running Ubuntu 20 and ROS noetic.

I am trying to run the color resolution at 3840x2160 at 25 FPS, and depth at NFOV unbinned 640x576 at 30 FPS.

I get this error:
[ INFO] [1694559907.307522283]: Failed to setup devices: Property is not supported! propertyId: 24
[ INFO] [1694559907.307522283]: stream depth is enabled - width: 640, height: 576, fps: 30, Format: Y16
[ INFO] [1694559907.317091244]: stream color is enabled - width: 3840, height: 2160, fps: 25, Format: MJPG
[ERROR] [1694559907.321991290]: failed to start pipeline: Current profile is not support sync config! try to disable ir stream try again
[ WARN] [1694559907.326653913]: Failed to start device: Current profile is not support sync config!

Orbbec driver doesn't respect external namespace

Launching driver under external namespace

# below is equivalent to using group with ns in extra launchfile
ROS_NAMESPACE="some_namespace" roslaunch orbbec_camera femto_bolt.launch

One ends up with a mix of namespaced and non-namespaced topics

rostopic list
/camera/color/camera_info
/camera/color/image_raw
/camera/depth/camera_info
/camera/depth/image_raw
/camera/ir/camera_info
/camera/ir/image_raw
/rosout
/rosout_agg
/some_namespace/camera/depth/points
/some_namespace/camera/gyro_accel/sample
/tf
/tf_static

Issues with running multiple (4) orbbec cameras - gemini2

I'm running into issues while running four cameras. I have a file that launches gemini2.launch, with the right namespaces, and a delay between the launches. All the camera nodes come up, and the logs show that everything is connected. I have all the serial numbers set correctly, so that is not an

But when I echo the topic for the fourth camera, it doesn't seem to publish any information.

This behavior is also inconsistent, and sometimes all the four cameras launch correctly with all the data being streamed.

I suspect that the error could be how the streaming is handled, based on the Subscriber callbacks. But I am not sure.

Has anyone run into a similar issue? This is my python launch file


#!/usr/bin/env python

import roslaunch
import rospy

rospy.init_node('multi_camera_launcher')
uuid = roslaunch.rlutil.get_or_generate_uuid(None, False)

launch = roslaunch.scriptapi.ROSLaunch()
launch.start()

front_up_depthcam = rospy.get_param('~front_up_depthcam', True)
back_up_depthcam = rospy.get_param('~back_up_depthcam', True)
front_down_depthcam = rospy.get_param('~front_down_depthcam', True)
back_down_depthcam = rospy.get_param('~back_down_depthcam', True)

device_num = rospy.get_param('~device_num', 4)

front_up_serial = rospy.get_param('~front_up_serial', '')
back_up_serial = rospy.get_param('~back_up_serial', '')
front_down_serial = rospy.get_param('~front_down_serial', '')
back_down_serial = rospy.get_param('~back_down_serial', '')

launch_file_path = '../src/orbbec_sdk_ros1/launch/gemini2.launch'

time_buffer = 3

def launch_camera(namespace, serial, device_num):
    cli_args = [
        launch_file_path,
        'camera_name:=' + namespace,
        'serial_number:=' + serial,
        'device_num:=' + str(device_num)
    ]
    roslaunch_args = cli_args[1:]
    roslaunch_file = [(roslaunch.rlutil.resolve_launch_arguments(cli_args)[0], roslaunch_args)]
    launch.parent = roslaunch.parent.ROSLaunchParent(uuid, roslaunch_file)
    launch.start()
    
 if front_up_depthcam:
    launch_camera('front_up', front_up_serial, device_num)

rospy.sleep(time_buffer)

if back_up_depthcam:
    launch_camera('back_up', back_up_serial, device_num)

rospy.sleep(time_buffer)

if front_down_depthcam:
    launch_camera('front_down', front_down_serial, device_num)

rospy.sleep(time_buffer)

if back_down_depthcam:
    launch_camera('back_down', back_down_serial, device_num)
    
launch.spin()

Point cloud Noise problem

Screenshot from 2023-10-18 16-50-06

Hello

We are testing the Astra U3 camera

I think the depth filter isn't working. Noise occurs as shown in the photo above.

Are there any other ways to remove noise?

Color point cloud type maybe has wrong

cloud_msg_.point_step = addPointField(cloud_msg_, format_str, 1, sensor_msgs::PointField::FLOAT32,
static_cast<int>(cloud_msg_.point_step));

I think here should be UINT32
cloud_msg_.point_step = addPointField(cloud_msg_, format_str, 1, sensor_msgs::PointField::UINT32, static_cast<int>(cloud_msg_.point_step));

Gemini 2XL crashes on v1.5.3

When running v1.5.3 with roslaunch orbbec_camera gemini2XL.launch the software crashes with :

terminate called after throwing an instance of 'libobsensor::wrong_api_call_sequence_exception'
  what():  Resource busy! You can try again later!

Orbbec viewer works out of the box, so I would assume it is an issue of this package.

Full logs:

[05/14 17:36:33.633220][info][47465][Context.cpp:68] Context created with config: /home/username/config/OrbbecSDKConfig_v1.0.xml
[05/14 17:36:33.633235][info][47465][Context.cpp:73] Work directory=/home/username/.ros, SDK version=v1.10.5-20240511-7dc8be9
[05/14 17:36:33.633249][info][47465][LinuxPal.cpp:31] createObPal: create LinuxPal!
[05/14 17:36:33.759261][info][47465][LinuxPal.cpp:142] Create PollingDeviceWatcher!
[05/14 17:36:33.759332][info][47465][DeviceManager.cpp:15] Current found device(s): (1)
[05/14 17:36:33.759347][info][47465][DeviceManager.cpp:24] 	- Name: Orbbec Gemini2 XL, PID: 0x0671, SN/ID: AYMXB32000M, Connection: USB2.0
[ INFO] [1715700993.768352936]: queryDevice: first query device
[ INFO] [1715700993.769478816]: deviceConnectCallback : deviceConnectCallback start
[ INFO] [1715700993.869747970]: deviceConnectCallback : Before process lock lock
[ INFO] [1715700993.869829477]: deviceConnectCallback : After process lock lock
[ INFO] [1715700993.869853344]: deviceConnectCallback : selectDevice start
[ INFO] [1715700993.869878425]: Connecting to the default device
[ INFO] [1715700994.364419853]: deviceConnectCallback : selectDevice end
[ INFO] [1715700994.742692914]: Depth process is HW D2D
[ INFO] [1715700994.757602062]:  stream depth is enabled - width: 640, height: 400, fps: 10, Format: Y16
[ INFO] [1715700994.758299590]:  stream color is enabled - width: 640, height: 400, fps: 10, Format: MJPG
[ INFO] [1715700994.758552084]:  stream left_ir is enabled - width: 640, height: 400, fps: 10, Format: Y8
[ INFO] [1715700994.758795198]:  stream right_ir is enabled - width: 640, height: 400, fps: 10, Format: Y8
[ INFO] [1715700994.758838470]: stream gyro full scale range 1000dps sample rate 100hz
[ INFO] [1715700994.758874756]: stream accel full scale range 4g sample rate 100hz
[ INFO] [1715700994.803752743]: Publishing static transform from camera_link to color
[ INFO] [1715700994.803772690]: Translation 24.9924, -0.00599234, -0.208842
[ INFO] [1715700994.803782888]: Rotation 0.000570562, -2.71207e-05, 0.000561105, 1
[ INFO] [1715700994.803792333]: Publishing static transform from camera_link to depth
[ INFO] [1715700994.803800060]: Translation 0, 0, 0
[ INFO] [1715700994.803829204]: Rotation 0, 0, 0, 1
[ INFO] [1715700994.803836222]: Publishing static transform from camera_link to left_ir
[ INFO] [1715700994.803843975]: Translation 0, 0, 0
[ INFO] [1715700994.803850484]: Rotation 0, 0, 0, 1
[ INFO] [1715700994.803858411]: Publishing static transform from camera_link to right_ir
[ INFO] [1715700994.803868319]: Translation 100.49, 0, 0
[ INFO] [1715700994.803875641]: Rotation 0, 0, 0, 1
[ WARN] [1715700994.804128860]: Publishing dynamic camera transforms (/tf) at 10 Hz
[ INFO] [1715700994.805261041]: Stream ir is disabled.
[ INFO] [1715700994.811937538]: stream depth exposure 6000
[ INFO] [1715700994.812478367]: stream color exposure 6000
[ INFO] [1715700994.813205338]: stream left_ir exposure 6000
[ INFO] [1715700994.813823605]: stream right_ir exposure 6000
[ INFO] [1715700994.814192363]: stream depth gain 1000
[ INFO] [1715700994.814612390]: stream color gain 256
[ INFO] [1715700994.814981938]: stream left_ir gain 1000
[ INFO] [1715700994.815452419]: stream right_ir gain 1000
[ INFO] [1715700994.815909735]: stream color wb 5000
[ INFO] [1715700994.816032296]: Device Orbbec Gemini 2 XL connected
[ INFO] [1715700994.816046298]: Serial number: AYMXB32000M
[ INFO] [1715700994.816055403]: Firmware version: 2.1.3_23112010
[ INFO] [1715700994.816069616]: Hardware version: V1.0
[ INFO] [1715700994.816082521]: device uid: 1-7-15
[ INFO] [1715700994.816097969]: Current node pid: 47465
[ INFO] [1715700994.816105872]: deviceConnectCallback : deviceConnectCallback end
[ INFO] [1715701000.993639209]: Image stream depth subscribed
[ INFO] [1715701000.993820032]: set align mode to HW
terminate called after throwing an instance of 'libobsensor::wrong_api_call_sequence_exception'
  what():  Resource busy! You can try again later!
[camera/camera-2] process has died [pid 47465, exit code -6, 

Depth topics publishing empty while Color works fine

I am trying to dockerize the ROS1 application. Attaching my Dockerfile and run.sh files (added the extension .txt for individual file upload). I hope that they will help replicate the issue.

The camera initializes fine when I launch roslaunch orbbec_camera femto_bolt.launch. If I try subscribing to camera/color topics, I get the image and camera_info fine. But I get no messages when I subscribe to color/depth or color/ir image.
The ROS1 package works all good on the host machine.

Please help if you have any ideas.

run.sh.txt
Dockerfile.txt

[camera/camera-2] process has died [pid xxxx, exit code -11 ...

Hello, I'm running a femto-bolt camera under ROS-noetic, Ubuntu20.04. It works well in OrbbecViewer, but fails with terminal commands. I tried to start the camera and view the image in Rviz, but usually after I entered "roslaunch orbbec_camera femto_bolt.launch" I got error message like this:

[camera/camera-2] process has died [pid xxxx, exit code -11, cmd /home/xxx/xxx/devel/lib/orbbec_camera/orbbec_camera_node /camera/depth/color/points:=/camera/depth_registered/points __name:=camera __log:=/home/xxx/.ros/log/91bf7772-1852-11ef-bde4-4bb8f2ffcf85/camera-camera-2.log].
log file: /home/xxx/.ros/log/91bf7772-1852-11ef-bde4-4bb8f2ffcf85/camera-camera-2*.log

Sometimes I could successfully run that command by pulling the USB cable out and reinserting it, but still failed to view the image in Rviz, as Status Warn showing: "No Image Received". Strangely, I was able to view the image in Rviz this way days ago. The problem still exists after I upgraded OrbbecSDK_ROS1 to the newest version.

Looking forward to an answer! Many thanks!

ROS CameraInfo message gets populated with incorrect information for Femto Mega

When running the Femto Mega camera at the 3840x2160 resolution, the CameraInfo ROS message gets populated with the following intrinsic matrix:

$$ K = \begin{bmatrix} f_{x} & 0 & c_{x} \\ 0 & f_{y} & c_{y} \\ 0 & 0 & 1 \end{bmatrix} = \begin{bmatrix} 13489.9306640625 & 0 & 11447.90771484375 \\ 0 & 13487.794921875 & 6276.52734375 \\ 0 & 0 & 1 \end{bmatrix}, $$

which is clearly incorrect, as the camera center point $\left( c_{x}, c_{y} \right)$ are much different the nominal values of $\left( \frac{3840}{2}, \frac{2160}{2} \right)$.

However, when we request the camera parameters using the provided get_camera_params ROS service, the camera matrix (denoted by l_intr_p in the service response) the we get is as follows

$$ K = \begin{bmatrix} 2248.32177734375 & 0 & 1907.984619140625 \\ 0 & 2247.9658203125 & 1046.087890625 \\ 0 & 0 & 1 \end{bmatrix}. $$

This leads us to believe that the base width and base height are incorrectly populated in the following code by the SDK

int base_depth_width = param->depthIntrinsic.width == 0 ? 640 : param->depthIntrinsic.width;
int base_rgb_width = param->rgbIntrinsic.width == 0 ? 640 : param->rgbIntrinsic.width;

which leads to the incorrect scaling factor in

double scaling = static_cast<double>(width) / 640;
info.K[0] *= scaling; // fx
info.K[2] *= scaling; // cx
info.K[4] *= scaling; // fy
info.K[5] *= scaling; // cy
info.P[0] *= scaling; // fx
info.P[2] *= scaling; // cx
info.P[5] *= scaling; // fy
info.P[6] *= scaling; // cy

The CameraInfo message is also incorrect for the registered depth image provided by the driver.

[ERROR] get gain error Property is not supported! propertyId: 2018/2027

你好,我正在使用设备Femto Bolt并在我的ROS系统上成功运行了这个ROS驱动。
运行是成功的,也能通过RVIZ可视化点云,但是在log里面出现了两个错误

[ERROR] [1706263552.921097452]: get gain error Property is not supported! propertyId: 2018
[ERROR] [1706263552.921116392]: get gain error Property is not supported! propertyId: 2027

想询问一下产生这个错误的原因是什么?
完整的log如下

started roslaunch server http://xiaofeng-lab-workstation:37959/

SUMMARY
========

PARAMETERS
 * /camera/orbbec_camera/accel_range: 4g
 * /camera/orbbec_camera/accel_rate: 100hz
 * /camera/orbbec_camera/angular_vel_cov: 0.01
 * /camera/orbbec_camera/camera_name: camera
 * /camera/orbbec_camera/color_delay_us: 0
 * /camera/orbbec_camera/color_format: MJPG
 * /camera/orbbec_camera/color_fps: 25
 * /camera/orbbec_camera/color_height: 960
 * /camera/orbbec_camera/color_info_uri: 
 * /camera/orbbec_camera/color_width: 1280
 * /camera/orbbec_camera/connection_delay: 100
 * /camera/orbbec_camera/depth_delay_us: 0
 * /camera/orbbec_camera/depth_format: Y16
 * /camera/orbbec_camera/depth_fps: 25
 * /camera/orbbec_camera/depth_height: 576
 * /camera/orbbec_camera/depth_registration: True
 * /camera/orbbec_camera/depth_width: 640
 * /camera/orbbec_camera/device_num: 1
 * /camera/orbbec_camera/enable_accel: False
 * /camera/orbbec_camera/enable_color: True
 * /camera/orbbec_camera/enable_color_auto_exposure: True
 * /camera/orbbec_camera/enable_colored_point_cloud: True
 * /camera/orbbec_camera/enable_d2c_viewer: False
 * /camera/orbbec_camera/enable_depth: True
 * /camera/orbbec_camera/enable_frame_sync: False
 * /camera/orbbec_camera/enable_gyro: False
 * /camera/orbbec_camera/enable_ir: True
 * /camera/orbbec_camera/enable_ir_auto_exposure: True
 * /camera/orbbec_camera/enable_pipeline: True
 * /camera/orbbec_camera/enable_point_cloud: True
 * /camera/orbbec_camera/enable_soft_filter: True
 * /camera/orbbec_camera/enable_sync_output_accel_gyro: True
 * /camera/orbbec_camera/flip_color: False
 * /camera/orbbec_camera/flip_depth: False
 * /camera/orbbec_camera/flip_ir: False
 * /camera/orbbec_camera/gyro_range: 1000dps
 * /camera/orbbec_camera/gyro_rate: 100hz
 * /camera/orbbec_camera/ir_format: Y16
 * /camera/orbbec_camera/ir_fps: 25
 * /camera/orbbec_camera/ir_height: 576
 * /camera/orbbec_camera/ir_info_uri: 
 * /camera/orbbec_camera/ir_width: 640
 * /camera/orbbec_camera/liner_accel_cov: 0.01
 * /camera/orbbec_camera/log_level: none
 * /camera/orbbec_camera/product_id: 
 * /camera/orbbec_camera/publish_tf: True
 * /camera/orbbec_camera/serial_number: 
 * /camera/orbbec_camera/sync_mode: free_run
 * /camera/orbbec_camera/tf_publish_rate: 10.0
 * /camera/orbbec_camera/trigger2image_delay_us: 0
 * /camera/orbbec_camera/trigger_out_delay_us: 0
 * /camera/orbbec_camera/trigger_out_enabled: False
 * /camera/orbbec_camera/usb_port: 
 * /camera/orbbec_camera/vendor_id: 0x2bc5
 * /rosdistro: noetic
 * /rosversion: 1.16.0

NODES
  /camera/
    orbbec_camera (nodelet/nodelet)
    orbbec_camera_manager (nodelet/nodelet)

auto-starting new master
process[master]: started with pid [261818]
ROS_MASTER_URI=http://localhost:11311

setting /run_id to 79cfa622-bc32-11ee-a275-175379641319
process[rosout-1]: started with pid [261859]
started core service [/rosout]
process[camera/orbbec_camera_manager-2]: started with pid [261866]
process[camera/orbbec_camera-3]: started with pid [261867]
[ INFO] [1706263547.730849858]: Loading nodelet /camera/orbbec_camera of type orbbec_camera/OBCameraNodelet to manager orbbec_camera_manager with the following remappings:
[ INFO] [1706263547.731332068]: /camera/depth/color/points -> /camera/depth_registered/points
[ INFO] [1706263547.732323548]: waitForService: Service [/camera/orbbec_camera_manager/load_nodelet] has not been advertised, waiting...
[ INFO] [1706263547.737022496]: Initializing nodelet with 32 worker threads.
[ INFO] [1706263547.753135442]: waitForService: Service [/camera/orbbec_camera_manager/load_nodelet] is now available.
[01/26 19:05:47.761933][info][261866][Context.cpp:67] Context created with config: /home/xiaofeng/git/moonshot_robot_pc/catkin_ws/src/OrbbecSDK_ROS1/config/OrbbecSDKConfig_v1.0.xml
[01/26 19:05:47.761943][info][261866][Context.cpp:72] Context work_dir=/home/xiaofeng/.ros
[01/26 19:05:47.858672][info][261866][LinuxPal.cpp:112] Create PollingDeviceWatcher!
[01/26 19:05:47.858702][info][261866][DeviceManager.cpp:15] Current found device(s): (1)
[01/26 19:05:47.858709][info][261866][DeviceManager.cpp:24] 	- Name: Femto Bolt, PID: 0x066b, SN/ID: CL8S93P000Y, Connection: USB3.1
[ INFO] [1706263547.861792244]: queryDevice: first query device
[ INFO] [1706263547.861830714]: deviceConnectCallback : deviceConnectCallback start
[ INFO] [1706263547.961929869]: deviceConnectCallback : Before process lock lock
[ INFO] [1706263547.961956379]: deviceConnectCallback : After process lock lock
[ INFO] [1706263547.961968499]: deviceConnectCallback : selectDevice start
[ INFO] [1706263547.961988119]: Connecting to the default device
[ INFO] [1706263548.831082156]: deviceConnectCallback : selectDevice end
[ INFO] [1706263548.853409761]:  stream depth is enabled - width: 640, height: 576, fps: 25, Format: Y16
[ INFO] [1706263548.853638160]:  stream ir is enabled - width: 640, height: 576, fps: 25, Format: Y16
[ INFO] [1706263548.854967910]:  stream color is enabled - width: 1280, height: 960, fps: 25, Format: MJPG
[ INFO] [1706263548.858058129]: set align mode:  ALIGN_D2C_SW_MODE
[ INFO] [1706263549.348437605]: Create color frame read thread.
[ WARN] [1706263552.907535865]: Publishing dynamic camera transforms (/tf) at 10 Hz
[ INFO] [1706263552.917484933]: Stream left_ir is disabled.
[ INFO] [1706263552.917503923]: Stream right_ir is disabled.
[ INFO] [1706263552.920600672]: stream depth exposure 125
[ INFO] [1706263552.920827992]: stream ir exposure 125
[ INFO] [1706263552.920993472]: stream color exposure 200
[ERROR] [1706263552.921097452]: get gain error Property is not supported! propertyId: 2018
[ERROR] [1706263552.921116392]: get gain error Property is not supported! propertyId: 2027
[ INFO] [1706263552.921282702]: stream color gain 0
[ INFO] [1706263552.921443372]: stream color wb 6500
[ INFO] [1706263552.921484632]: Device Femto Bolt connected
[ INFO] [1706263552.921495472]: Serial number: CL8S93P000Y
[ INFO] [1706263552.921504132]: Firmware version: 1.0.6
[ INFO] [1706263552.921512232]: Hardware version: 1.2
[ INFO] [1706263552.921518552]: device uid: 6-4-2
[ INFO] [1706263552.921526192]: deviceConnectCallback : deviceConnectCallback end
[ INFO] [1706263621.150552136]: rgb point cloud subscribed
[ INFO] [1706263621.150590487]: Image stream depth subscribed
[ INFO] [1706263621.150619347]: set align mode:  ALIGN_D2C_SW_MODE
[ INFO] [1706263621.297080832]: Image stream color subscribed
[ INFO] [1706263621.297112613]: pipe line already started
[ INFO] [1706263714.153176107]: point cloud unsubscribed
[ INFO] [1706263714.153212487]: Image stream depth unsubscribed
[ INFO] [1706263716.664619292]: Image stream color unsubscribed
[ INFO] [1706263716.664668983]: imageUnsubscribedCallback pipe line not start
^C[camera/orbbec_camera-3] killing on exit
[camera/orbbec_camera_manager-2] killing on exit
[ INFO] [1706263717.480986844]: Unloading nodelet /camera/orbbec_camera from manager orbbec_camera_manager
[rosout-1] killing on exit
[master] killing on exit
shutting down processing monitor...
... shutting down processing monitor complete
done

Build error

/home/syscon/catkin_ws/src/OrbbecSDK_ROS1/src/ob_camera_node.cpp: In member function ‘void orbbec_camera::OBCameraNode::publishDepthPointCloud(const std::shared_ptr<ob::FrameSet>&)’: /home/syscon/catkin_ws/src/OrbbecSDK_ROS1/src/ob_camera_node.cpp:590:61: error: ‘using element_type = class ob::DepthFrame {aka class ob::DepthFrame}’ has no member named ‘depth_frame’; did you mean ‘DepthFrame’? auto frame_time_stamp = use_hardware_time_ ? depth_frame->depth_frame->timeStamp():depth_frame->systemTimeStamp(); ^~~~~~~~~~~ DepthFrame /home/syscon/catkin_ws/src/OrbbecSDK_ROS1/src/ob_camera_node.cpp: In member function ‘void orbbec_camera::OBCameraNode::publishDepthPointCloud(const std::shared_ptr<ob::FrameSet>&)’: /home/syscon/catkin_ws/src/OrbbecSDK_ROS1/src/ob_camera_node.cpp:590:61: error: ‘using element_type = class ob::DepthFrame {aka class ob::DepthFrame}’ has no member named ‘depth_frame’; did you mean ‘DepthFrame’? auto frame_time_stamp = use_hardware_time_ ? depth_frame->depth_frame->timeStamp():depth_frame->systemTimeStamp(); ^~~~~~~~~~~ DepthFrame OrbbecSDK_ROS1/CMakeFiles/orbbec_camera.dir/build.make:86: recipe for target 'OrbbecSDK_ROS1/CMakeFiles/orbbec_camera.dir/src/ob_camera_node.cpp.o' failed make[2]: *** [OrbbecSDK_ROS1/CMakeFiles/orbbec_camera.dir/src/ob_camera_node.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... [ 97%] Building CXX object OrbbecSDK_ROS1/CMakeFiles/orbbec_camera_nodelet.dir/src/ros_service.cpp.o OrbbecSDK_ROS1/CMakeFiles/orbbec_camera_nodelet.dir/build.make:86: recipe for target 'OrbbecSDK_ROS1/CMakeFiles/orbbec_camera_nodelet.dir/src/ob_camera_node.cpp.o' failed make[2]: *** [OrbbecSDK_ROS1/CMakeFiles/orbbec_camera_nodelet.dir/src/ob_camera_node.cpp.o] Error 1 make[2]: *** Waiting for unfinished jobs.... Scanning dependencies of target orbbec_camera_generate_messages [ 97%] Built target orbbec_camera_generate_messages CMakeFiles/Makefile2:5706: recipe for target 'OrbbecSDK_ROS1/CMakeFiles/orbbec_camera.dir/all' failed make[1]: *** [OrbbecSDK_ROS1/CMakeFiles/orbbec_camera.dir/all] Error 2 make[1]: *** Waiting for unfinished jobs.... CMakeFiles/Makefile2:4532: recipe for target 'OrbbecSDK_ROS1/CMakeFiles/orbbec_camera_nodelet.dir/all' failed make[1]: *** [OrbbecSDK_ROS1/CMakeFiles/orbbec_camera_nodelet.dir/all] Error 2 Makefile:140: recipe for target 'all' failed make: *** [all] Error 2 Invoking "make -j8 -l8" failed

Installation instructions update needed

sudo cp 99-obsensor-libusb.rules /etc/udev/rules.d/99-obsensor-libusb.rules

from the install udev rules: section should be

sudo cp 99-obsensor-ros1-libusb.rules /etc/udev/rules.d/99-obsensor-libusb.rules

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.