KavenYau / ros2_astra_camera

ROS2 wrapper for Astra camera
Apache License 2.0
23 stars 6 forks source link

[uvc_camera_node-3] uvc_find_device: No such device (-4) #2

Closed beyondli closed 2 years ago

beyondli commented 2 years ago

Hi I try to compile on 32.6.1, erros below:

[astra_camera_node-2] Warning: USB events thread - failed to set priority. This might cause loss of data... [uvc_camera_node-3] [WARN] [1651716631.879512838] [rcl.logging_rosout]: Publisher already registered for provided node name. If this is due to multiple nodes with the same name then all logs for that logger name will go out over the existing publisher. As soon as any node with that name is destructed it will unregister the publisher, preventing any further logs for that name from being published on the rosout topic. [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/point_cloud_xyz_node' in container '/depth_image_proc_container' [uvc_camera_node-3] [INFO] [1651716631.918672675] [uvc_camera_node]: Opening camera with vendor=0x2bc5, product=0x502, serial="", index=0 [astra_camera_node-2] Warning: USB events thread - failed to set priority. This might cause loss of data... [astra_camera_node-2] [INFO] [1651716631.963984946] [astra_wrapper]: device name: Orbbec Astra Pro [astra_camera_node-2] [INFO] [1651716631.964407190] [astra_camera_node]: depth_mode is Resolution: 640x480@30Hz Format: Depth 1mm [astra_camera_node-2] [INFO] [1651716631.964549911] [astra_camera_node]: color mode is Resolution: 640x480@30Hz Format: RGB888 [astra_camera_node-2] [INFO] [1651716631.964629368] [astra_camera_node]: IR mode is Resolution: 640x480@30Hz Format: Gray16 [uvc_camera_node-3] uvc_find_device: No such device (-4) [uvc_camera_node-3] terminate called after throwing an instance of 'std::runtime_error' [uvc_camera_node-3] what(): camera driver start failed. [astra_camera_node-2] [WARN] [1651716632.046588591] [astra_camera_node]: has IR sensor is 1 [astra_camera_node-2] [INFO] [1651716632.066862419] [astra_camera_node]: Starting IR stream. [astra_camera_node-2] [WARN] [1651716632.072144510] [astra_camera_node]: has depth sensor is 1 [astra_camera_node-2] [INFO] [1651716632.078902420] [astra_camera_node]: Starting depth stream. [astra_camera_node-2] [INFO] [1651716632.176594282] [astra_camera_node]: using default calibration URL [astra_camera_node-2] [INFO] [1651716632.176859244] [astra_camera_node]: camera calibration URL: file:///home/tx2/.ros/camera_info/depth_Astra_Orbbec.yaml [astra_camera_node-2] [ERROR] [1651716632.177212751] [camera_calibration_parsers]: Unable to open camera calibration file [/home/tx2/.ros/camera_info/depth_Astra_Orbbec.yaml] [astra_camera_node-2] [WARN] [1651716632.177307440] [astra_camera_node]: Camera calibration file /home/tx2/.ros/camera_info/depth_Astra_Orbbec.yaml not found [component_container-1] /mnt/workspace/ros2_foxy/install/rclcpp_components/lib/rclcpp_components/component_container: symbol lookup error: /mnt/workspace/mini_robot/install/depth_image_proc/lib/libdepth_image_proc.so: undefined symbol: _ZN16depth_image_proc12convertDepthIfEEvRKSt10shared_ptrIKN11sensor_msgs3msg6Image_ISaIvEEEERS1_INS3_12PointCloud2_IS5_EEERKN14image_geometry18PinholeCameraModelEd [ERROR] [component_container-1]: process has died [pid 15182, exit code 127, cmd '/mnt/workspace/ros2_foxy/install/rclcpp_components/lib/rclcpp_components/component_container --ros-args -r node:=depth_image_proc_container -r __ns:=/']. [ERROR] [uvc_camera_node-3]: process has died [pid 15184, exit code -6, cmd '/mnt/workspace/mini_robot/install/ros2_astra_camera/lib/ros2_astra_camera/uvc_camera_node --ros-args -r node:=uvc_camera_node --params-file /mnt/workspace/mini_robot/install/ros2_astra_camera/share/ros2_astra_camera/launch/params/astra_pro.yaml']. ^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)

[astra_camera_node-2] terminate called after throwing an instance of 'std::system_error' [astra_camera_node-2] what(): Invalid argument

actually, I CAN see it from v4tl image

any help is very appreciated!

KavenYau commented 2 years ago

Which model are you using? And did you copy the rule file (56-orbbec-usb.rules) to /etc/udev/rules.d/? Please check if there is any astra device under /dev

beyondli commented 2 years ago

I installed astro pro, yes I copy to /etc/udev/rules.d/ image but sudo systemctl reload systemd-udevd failed image

with v4tl-ctl ,I can see astro device image

KavenYau commented 2 years ago

Maybe you could try this command.

sudo service udev reload && sudo service udev restart

Edited: I have looked the logs you provided. It seems that the depth camera is working. Can you check about whether your rgb camera's VID:PID string is 2bc5:0502? If not, modifies the parameters file and try again. You can run lsusb | grep 2bc5 to check simply.

KavenYau commented 2 years ago

[component_container-1] /mnt/workspace/ros2_foxy/install/rclcpp_components/lib/rclcpp_components/component_container: symbol lookup error: /mnt/workspace/mini_robot/install/depth_image_proc/lib/libdepth_image_proc.so: undefined symbol: _ZN16depth_image_proc12convertDepthIfEEvRKSt10shared_ptrIKN11sensor_msgs3msg6Image_ISaIvEEEERS1_INS3_12PointCloud2_IS5_EEERKN14image_geometry18PinholeCameraModelEd

I found an issue(https://github.com/ros-perception/image_pipeline/issues/696) related to this. Perhaps I install this package through apt install, I have not met this problem.

beyondli commented 2 years ago

Hi Kaven Yau, thanks for you reply,

1)sudo service udev reload && sudo service udev restart this command seems worked for me , no info feedback from screen image 2)but still uvc_find_device error 3)I tested on foxy, do you test on foxy? 4)I compile total image_pipeline, it is successed image

for RGB image, I tested on ROS2, it is OK that it can capture correct image

KavenYau commented 2 years ago

but still uvc_find_device error

Run this command to check the pid and vid

lsusb | grep 2bc5

I tested on foxy, do you test on foxy?

Yes, I tested on foxy just now, and I could get cloud data.

beyondli commented 2 years ago

image seems device driver is OK

KavenYau commented 2 years ago

Got it, modify the vid and pid in parameters file ros2_astra_camera/ros2_astra_camera/launch/params/astra_pro.yaml, it should work for you.

uvc_camera_node:
  ros__parameters:
    vendor: "0x2bc5"
    product: "0x0501"
beyondli commented 2 years ago

thanks, uvc mode works! but still some yaml missed

[uvc_camera_node-3] unsupported descriptor subtype VS_COLORFORMAT [uvc_camera_node-3] unsupported descriptor subtype VS_COLORFORMAT [astra_camera_node-2] [WARN] [1651758248.049495651] [astra_camera_node]: has IR sensor is 1 [astra_camera_node-2] [INFO] [1651758248.070842286] [astra_camera_node]: Starting IR stream. [astra_camera_node-2] [WARN] [1651758248.079114955] [astra_camera_node]: has depth sensor is 1 [astra_camera_node-2] [INFO] [1651758248.089330159] [astra_camera_node]: Starting depth stream. [astra_camera_node-2] [INFO] [1651758248.183846074] [astra_camera_node]: using default calibration URL [astra_camera_node-2] [INFO] [1651758248.184743229] [astra_camera_node]: camera calibration URL: file:///home/tx2/.ros/camera_info/depth_Astra_Orbbec.yaml [astra_camera_node-2] [ERROR] [1651758248.185681504] [camera_calibration_parsers]: Unable to open camera calibration file [/home/tx2/.ros/camera_info/depth_Astra_Orbbec.yaml] [astra_camera_node-2] [WARN] [1651758248.185965345] [astra_camera_node]: Camera calibration file /home/tx2/.ros/camera_info/depth_Astra_Orbbec.yaml not found [ [astra_camera_node-2] [ERROR] [1651758248.185681504] [camera_calibration_parsers]: Unable to open camera calibration file [/home/tx2/.ros/camera_info/depth_Astra_Orbbec.yaml] how to create this depth_Astra_Orbbec.yaml? it is found at dir /.ros/camera, seems generated by some tools then installed?

beyondli commented 2 years ago

Hi KavenYau, 1)where you found depth_Astra_Orbbec.yaml/color_Astra_Orbbec.yaml, I cannot find these files 2)for libdepth_image_proc.so issues:how do you install it, I just compiled it mannually, but still errors

thanks any help!

KavenYau commented 2 years ago

where you found depth_Astra_Orbbec.yaml/color_Astra_Orbbec.yaml, I cannot find these files

I think these files are generated after camera calibration. Actually I have not done this yet. Maybe you can follow this step http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration.

for libdepth_image_proc.so issues:how do you install it, I just compiled it mannually, but still errors

I test on Ubuntu 20.04, so I can use a easy way to install it, e.g.,sudo apt install ros-foxy-image-pipeline. I have not tested on NVIDIA Jetson Platform, and I am not sure whether it will get the same errors if the image-pipeline package built from source on Ubuntu 20.04.

beyondli commented 2 years ago

thanks! try more on it

beyondli commented 2 years ago

Hi Kaven, I now can bring up astro, but it seems blocked at below pic, may I know how long you can see point clound after launch file run? Does this means camera already OK, after launch how to view it? rviz2? image tx2@tx2:/mnt/workspace/mini_robot$ ros2 launch ros2_astra_camera astra_pro_launch.py [INFO] [launch]: All log files can be found below /home/tx2/.ros/log/2022-05-07-11-09-06-285508-tx2-26353 [INFO] [launch]: Default logging verbosity is set to INFO [INFO] [component_container-1]: process started with pid [26369] [INFO] [astra_camera_node-2]: process started with pid [26370] [INFO] [uvc_camera_node-3]: process started with pid [26371] [INFO] [robot_state_publisher-4]: process started with pid [26372] [robot_state_publisher-4] [WARN] [1651936146.953187205] [robot_state_publisher]: No robot_description parameter, but command-line argument available. Assuming argument is name of URDF file. This backwards compatibility fallback will be removed in the future. [robot_state_publisher-4] Parsing robot urdf xml string. [robot_state_publisher-4] Link camera_depth_frame had 1 children [robot_state_publisher-4] Link camera_depth_optical_frame had 0 children [robot_state_publisher-4] Link camera_rgb_frame had 1 children [robot_state_publisher-4] Link camera_rgb_optical_frame had 0 children [robot_state_publisher-4] [INFO] [1651936146.964768263] [robot_state_publisher]: got segment camera_depth_frame [robot_state_publisher-4] [INFO] [1651936146.964903110] [robot_state_publisher]: got segment camera_depth_optical_frame [robot_state_publisher-4] [INFO] [1651936146.964958406] [robot_state_publisher]: got segment camera_link [robot_state_publisher-4] [INFO] [1651936146.964999141] [robot_state_publisher]: got segment camera_rgb_frame [robot_state_publisher-4] [INFO] [1651936146.965038021] [robot_state_publisher]: got segment camera_rgb_optical_frame [component_container-1] [INFO] [1651936146.971940781] [depth_image_proc_container]: Load Library: /mnt/workspace/mini_robot/install/depth_image_proc/lib/libdepth_image_proc.so [astra_camera_node-2] [INFO] [1651936147.096142140] [astra_wrapper]: Device "2bc5/0403@1/6" found. [astra_camera_node-2] [INFO] [1651936147.134220838] [astra_camera_node]: ir_frame_id = 'camera_ir_optical_frame' [astra_camera_node-2] [INFO] [1651936147.134797122] [astra_camera_node]: rgb_frame_id = 'camera_rgb_optical_frame' [astra_camera_node-2] [INFO] [1651936147.134905185] [astra_camera_node]: depth_frame_id = 'camera_depth_optical_frame'

[component_container-1] [INFO] [1651936147.141977127] [depth_image_proc_container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-1] [INFO] [1651936147.144063158] [depth_image_proc_container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-1] [INFO] [1651936147.144165045] [depth_image_proc_container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-1] [INFO] [1651936147.144224181] [depth_image_proc_container]: Found class: rclcpp_components::NodeFactoryTemplate [component_container-1] [INFO] [1651936147.144278197] [depth_image_proc_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate [astra_camera_node-2] Warning: USB events thread - failed to set priority. This might cause loss of data... [uvc_camera_node-3] [WARN] [1651936147.172035891] [rcl.logging_rosout]: Publisher already registered for provided node name. If this is due to multiple nodes with the same name then all logs for that logger name will go out over the existing publisher. As soon as any node with that name is destructed it will unregister the publisher, preventing any further logs for that name from being published on the rosout topic. [INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/point_cloud_xyz_node' in container '/depth_image_proc_container' [uvc_camera_node-3] [INFO] [1651936147.215595953] [uvc_camera_node]: Opening camera with vendor=0x2bc5, product=0x501, serial="", index=0 [astra_camera_node-2] Warning: USB events thread - failed to set priority. This might cause loss of data... [astra_camera_node-2] [INFO] [1651936147.260492356] [astra_wrapper]: device name: Orbbec Astra Pro [astra_camera_node-2] [INFO] [1651936147.260851489] [astra_camera_node]: depth_mode is Resolution: 640x480@30Hz Format: Depth 1mm [astra_camera_node-2] [INFO] [1651936147.260989728] [astra_camera_node]: color mode is Resolution: 640x480@30Hz Format: RGB888 [astra_camera_node-2] [INFO] [1651936147.261062399] [astra_camera_node]: IR mode is Resolution: 640x480@30Hz Format: Gray16 [uvc_camera_node-3] unsupported descriptor subtype VS_COLORFORMAT [uvc_camera_node-3] unsupported descriptor subtype VS_COLORFORMAT [astra_camera_node-2] [WARN] [1651936147.335949247] [astra_camera_node]: has IR sensor is 1 [astra_camera_node-2] [INFO] [1651936147.354823814] [astra_camera_node]: Starting IR stream. [astra_camera_node-2] [WARN] [1651936147.360174490] [astra_camera_node]: has depth sensor is 1 [astra_camera_node-2] [INFO] [1651936147.367964539] [astra_camera_node]: Starting depth stream. [astra_camera_node-2] [INFO] [1651936147.463566162] [astra_camera_node]: using default calibration URL [astra_camera_node-2] [INFO] [1651936147.463870415] [astra_camera_node]: camera calibration URL: file:///home/tx2/.ros/camera_info/depth_Astra_Orbbec.yaml [uvc_camera_node-3] [INFO] [1651936147.567853890] [uvc_camera_node]: uvc mode: 640x480@30.000000 uncompressed [uvc_camera_node-3] attempt to claim already-claimed interface 1 [uvc_camera_node-3] [INFO] [1651936157.856338390] [uvc_camera_node]: using default calibration URL [uvc_camera_node-3] [INFO] [1651936157.857756362] [uvc_camera_node]: camera calibration URL: file:///home/tx2/.ros/camera_info/color_Astra_Orbbec.yaml [uvc_camera_node-3] [WARN] [1651936157.861942216] [camera_calibration_parsers]: Camera calibration file did not specify distortion model, assuming plumb bob [uvc_camera_node-3] [WARN] [1651936157.862314981] [uvc_camera_node]: [color_Astra_Orbbec] does not match rgb_Astra_Orbbec in file /home/tx2/.ros/camera_info/color_Astra_Orbbec.yaml

KavenYau commented 2 years ago

I also saw the warning message in your figure when testing on foxy before, but clouds were normal. I haven't delved into it yet.

You can use launch the launch file, or subscribe the topic with Best Effort QoS.

ros2 launch ros2_astra_camera astra_rviz.py                                
beyondli commented 2 years ago

from rvi2 I found all image/pointcloud2 topic have no output , could you see these output from rviz2? image

KavenYau commented 2 years ago

Yes, I can. Did you set Fixed Frame to camera_link in Rviz2 ? You can use ros2 topic echo to have a simple check.

beyondli commented 2 years ago

cool! image is OK, but pointcloud still no output ?more set for it? image

KavenYau commented 2 years ago

Subscribing the cloud topics with Best Effort QoS.

image

beyondli commented 2 years ago

worked, thanks ,Kaven, your great work!