Difference between revisions of "Intel RealSense Foxy 20210511"
(→Notes and Logs) |
(→Other RealSense Images) |
||
(47 intermediate revisions by the same user not shown) | |||
Line 9: | Line 9: | ||
* [https://github.com/intel/ros2_intel_realsense Intel RealSense Dashing Release] | * [https://github.com/intel/ros2_intel_realsense Intel RealSense Dashing Release] | ||
* [https://index.ros.org/r/ros2_intel_realsense/#foxy ROS org RealSense Foxy Release] | * [https://index.ros.org/r/ros2_intel_realsense/#foxy ROS org RealSense Foxy Release] | ||
− | |||
* [[TB3 Install ROS RealSense 2]]: Notes from my February 2019 install Sisters (Dell laptop) | * [[TB3 Install ROS RealSense 2]]: Notes from my February 2019 install Sisters (Dell laptop) | ||
Line 61: | Line 60: | ||
* libgtk-3-dev | * libgtk-3-dev | ||
* libglfw3-dev | * libglfw3-dev | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Install ros2_intel_realsense From Source - Success == | == Install ros2_intel_realsense From Source - Success == | ||
Line 145: | Line 98: | ||
Summary: 4 packages finished [2.04s] | Summary: 4 packages finished [2.04s] | ||
− | = | + | = Configure = |
− | + | == USB Info == | |
− | + | ||
− | + | ||
− | + | $ lsusb | |
+ | Bus 001 Device 002: ID 8087:8000 Intel Corp. | ||
+ | Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub | ||
+ | Bus 003 Device 003: ID 8086:0b07 Intel Corp. Intel(R) RealSense(TM) Depth Camera 435 | ||
+ | Bus 003 Device 002: ID 05e3:0617 Genesys Logic, Inc. USB3.0 Hub | ||
+ | Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub | ||
+ | Bus 002 Device 008: ID 8087:07dc Intel Corp. | ||
+ | Bus 002 Device 005: ID 10c4:ea60 Silicon Labs CP210x UART Bridge | ||
+ | Bus 002 Device 003: ID 0483:5740 STMicroelectronics Virtual COM Port | ||
+ | Bus 002 Device 006: ID 413c:3200 Dell Computer Corp. Mouse | ||
+ | Bus 002 Device 004: ID f617:0905 Silicon Labs CP2102 USB to UART Bridge Controller | ||
+ | Bus 002 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub | ||
+ | Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub | ||
+ | |||
+ | $ lsusb -s 3:3 -v | ||
+ | |||
+ | Bus 003 Device 003: ID 8086:0b07 Intel Corp. Intel(R) RealSense(TM) Depth Camera 435 | ||
+ | Couldn't open device, some information will be missing | ||
+ | ... | ||
+ | ... | ||
− | * [[Intel RealSense D435 lsusb 20210515]] | + | * [[Intel RealSense D435 lsusb 20210515]]: the complete listing |
− | * | + | * Just curious: no action taken. |
− | librealsense2-udev-rules found here | + | == Setting udev Rules == |
+ | |||
+ | librealsense2-udev-rules found here referenced in the Installing the Packages section | ||
* [https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md librealsense Linux Distribution] | * [https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md librealsense Linux Distribution] | ||
+ | |||
+ | $ sudo cp /lib/udev/rules.d/60-librealsense2-udev-rules.rules /etc/udev/rules.d/ | ||
+ | [sudo] password for eepp: | ||
+ | |||
+ | == Configure with the Camera's Serial Number == | ||
+ | |||
+ | * [[Intel RealSense Utilities Ubuntu 20.04 Focal 20210518]]: Install Instructions | ||
+ | |||
+ | $ rs-enumerate-devices | ||
+ | Device info: | ||
+ | Name : Intel RealSense D435 | ||
+ | Serial Number : 935322071334 | ||
+ | Firmware Version : 05.11.01.100 | ||
+ | Recommended Firmware Version : 05.12.13.50 | ||
+ | ... | ||
+ | |||
+ | * Notice the Serial Number | ||
+ | * [[Intel RealSense D435 Enumerate Devices 20210515]]: the complete listing of my D435. | ||
+ | * Now modify the d435.yaml file with the correct serial number | ||
+ | |||
+ | $ cd ~/image_ws/src/ros2_intel_realsense/realsense_examples/config | ||
+ | |||
+ | $ cp d435.yaml d435.yaml.org | ||
+ | |||
+ | $ emacs d435.yaml& | ||
+ | |||
+ | $ diff d435.yaml d435.yaml.org | ||
+ | 4c4 | ||
+ | < serial_no: 935322071334 # d435 | ||
+ | --- | ||
+ | > serial_no: 819312071869 # d435 | ||
+ | |||
+ | * [[Turtlebot Waffle NUC D435.yaml 20210514]] new listing for the D435.yaml file | ||
= Execution = | = Execution = | ||
− | == TBD == | + | == Publishing Realsense == |
+ | |||
+ | '''Plug in D435''' | ||
+ | |||
+ | '''TERMINAL 1''' | ||
+ | |||
+ | $ source image_ws/install/local_setup.bash | ||
+ | |||
+ | $ ros2 run realsense_node realsense_node __params:=`ros2 pkg prefix realsense_examples`/share/realsense_ros/config/d435.yaml __ns:=/d435 | ||
+ | [WARN] [1621277685.022811473] [rcl]: Found remap rule '__ns:=/d435'. This syntax is deprecated. Use '--ros-args --remap __ns:=/d435' instead. | ||
+ | [INFO] [1621277685.065798831] [d435.camera]: Device's serial number is not set, enabling the default device! | ||
+ | [INFO] [1621277685.299402714] [d435.camera]: Device with serial number 935322071334 was found. | ||
+ | [INFO] [1621277685.299500802] [d435.camera]: Create a node for D4X5 Camera | ||
+ | |||
+ | === Display Color Raw Image === | ||
+ | |||
+ | '''TERMINAL 2''' | ||
+ | |||
+ | $ ros2 topic list | ||
+ | /d435/camera/aligned_depth_to_color/camera_info | ||
+ | /d435/camera/aligned_depth_to_color/image_raw | ||
+ | /d435/camera/color/camera_info | ||
+ | /d435/camera/color/image_raw | ||
+ | /d435/camera/depth/camera_info | ||
+ | /d435/camera/depth/image_rect_raw | ||
+ | /d435/camera/infra1/camera_info | ||
+ | /d435/camera/infra1/image_rect_raw | ||
+ | /d435/camera/infra2/camera_info | ||
+ | /d435/camera/infra2/image_rect_raw | ||
+ | /d435/camera/pointcloud | ||
+ | /parameter_events | ||
+ | /rosout | ||
+ | /tf_static | ||
+ | |||
+ | eepp@hood:~$ ros2 run opencv_ros2sub opencv_exp --ros-args -r image:=d435/camera/color/image_raw | ||
+ | ^C[INFO] [1621356720.889545172] [rclcpp]: signal_handler(signal_value=2) | ||
+ | |||
+ | /d435/camera/color/image_raw is RGB. opencv_ros2sub tells opencv that it is BGR. | ||
+ | |||
+ | [[File: opencv_rossub_colorimageraw.png | 400px]] | ||
+ | |||
+ | '''TERMINAL 3''' | ||
+ | |||
+ | $ ros2 topic echo d435/camera/color/image_raw | ||
+ | --- | ||
+ | header: | ||
+ | stamp: | ||
+ | sec: 1621719587 | ||
+ | nanosec: 920183274 | ||
+ | frame_id: camera_color_optical_frame | ||
+ | height: 480 | ||
+ | width: 640 | ||
+ | encoding: rgb8 | ||
+ | is_bigendian: 0 | ||
+ | step: 1920 | ||
+ | data: | ||
+ | - 170 | ||
+ | - 178 | ||
+ | ... | ||
+ | |||
+ | === Other RealSense Images === | ||
+ | |||
+ | '''TBD''': modify opencv_rossub to handle other images and fix the one above | ||
+ | |||
+ | $ ros2 run opencv_ros2sub opencv_exp --ros-args -r image:=d435/camera/depth/image_rect_raw | ||
+ | terminate called after throwing an instance of 'cv::Exception' | ||
+ | what(): OpenCV(4.2.0) ../modules/imgproc/src/color.simd_helpers.hpp:92: error: (-2:Unspecified error) in function 'cv::impl::{anonymous}::CvtHelper<VScn, VDcn, VDepth, sizePolicy>::CvtHelper(cv::InputArray, cv::OutputArray, int) [with VScn = cv::impl::{anonymous}::Set<3, 4>; VDcn = cv::impl::{anonymous}::Set<3>; VDepth = cv::impl::{anonymous}::Set<0, 5>; cv::impl::{anonymous}::SizePolicy sizePolicy = cv::impl::<unnamed>::NONE; cv::InputArray = const cv::_InputArray&; cv::OutputArray = const cv::_OutputArray&]' | ||
+ | > Invalid number of channels in input image: | ||
+ | > 'VScn::contains(scn)' | ||
+ | > where | ||
+ | > 'scn' is 1 | ||
+ | |||
+ | |||
+ | /d435/camera/aligned_depth_to_color/image_raw 16UC1 | ||
+ | /d435/camera/color/image_raw rgb8 | ||
+ | /d435/camera/depth/image_rect_raw 16UC1 | ||
+ | /d435/camera/infra1/image_rect_raw 8UC1 | ||
+ | /d435/camera/infra2/image_rect_raw 8UC1 | ||
+ | |||
+ | == Using rbiz == | ||
+ | |||
+ | '''TBD''' doesn't work | ||
+ | |||
+ | |||
+ | |||
+ | https://github.com/intel/ros2_intel_realsense | ||
+ | |||
+ | eepp@hood:~$ ros2 run rviz2 rviz2 -d realsense_ros2_camera/rviz/ros2.rviz | ||
+ | [INFO] [1621280162.151564317] [rviz2]: Stereo is NOT SUPPORTED | ||
+ | [INFO] [1621280162.151725581] [rviz2]: OpenGl version: 3 (GLSL 1.3) | ||
+ | [INFO] [1621280162.182381340] [rviz2]: Stereo is NOT SUPPORTED | ||
+ | eepp@hood:~$ ros2 run realsense_ros2_camera realsense_ros2_camera | ||
+ | Package 'realsense_ros2_camera' not found | ||
+ | |||
+ | Doesn't help to do a turtlebot bringup first. | ||
+ | |||
+ | = Investigate = | ||
+ | |||
+ | '''TBD''' | ||
+ | |||
+ | rqt_graph | ||
= Notes and Logs = | = Notes and Logs = | ||
− | * [[Turtlebot3 | + | * [[Turtlebot3 Waffle NUC Foxy RealSense 20210513 Notes and Logs]] |
− | + | ||
* [[Turtlebot3 Waffle NUC RealSense2 Configure 20210514 Notes and Logs]] | * [[Turtlebot3 Waffle NUC RealSense2 Configure 20210514 Notes and Logs]] | ||
+ | * [[Turtlebot3 Waffle NUC RealSense2 udev 20210517 Notes and Logs]] | ||
+ | * [[Turtlebot3 Waffle NUC RealSense2 Use 20210518 Notes and Logs]] | ||
+ | |||
+ | = Depreciated = | ||
+ | |||
+ | == Install ros2_intel_realsense Binary Packages - failed == | ||
+ | |||
+ | It could not locate the following packages. | ||
+ | |||
+ | * ros-foxy-realsense-camera-msgs | ||
+ | * ros-foxy-realsense-ros2-camera | ||
+ | |||
+ | So I move to the source process. | ||
+ | |||
+ | == Install ros2_intel_realsense from Source - Failed == | ||
+ | |||
+ | $ cd image_ws/src/ | ||
+ | |||
+ | $ git clone https://github.com/intel/ros2_intel_realsense.git | ||
+ | Cloning into 'ros2_intel_realsense'... | ||
+ | remote: Enumerating objects: 961, done. | ||
+ | remote: Total 961 (delta 0), reused 0 (delta 0), pack-reused 961 | ||
+ | Receiving objects: 100% (961/961), 1.08 MiB | 7.80 MiB/s, done. | ||
+ | Resolving deltas: 100% (567/567), done. | ||
+ | |||
+ | $ ls | ||
+ | image_pipeline ros2_intel_realsense | ||
+ | |||
+ | The image_pipeline did not compile cleanly. So to avoid getting error messages from its packages that did not compile, disable compiling it. | ||
+ | |||
+ | $ cd image_pipeline/ | ||
+ | |||
+ | $ cp ~/eepp_ws/src/image_listener/CATKIN_IGNORE . | ||
+ | |||
+ | $ cd .. | ||
+ | |||
+ | $ cd .. | ||
+ | |||
+ | $ colcon build --symlink-install --parallel-workers 1 | ||
+ | ... | ||
+ | ... | ||
+ | |||
+ | These are the results for each package | ||
+ | |||
+ | * Success: realsense_camera_msgs | ||
+ | * Failed: realsense_ros2_camera - It could not find some of the stuff for librealsense2 which compiled fine above. Not sure what to do. |
Latest revision as of 17:52, 14 June 2021
Contents
References
Background
- Intel ReasSense SDK2.0 Github User Guide May 2018 Revision 002
Repositories - Installation, Test, Demos
- Intel RealSense Dashing Release
- ROS org RealSense Foxy Release
- TB3 Install ROS RealSense 2: Notes from my February 2019 install Sisters (Dell laptop)
Information About All Things RealSense
- Intel RealSense SDK 2.0
- Documentation
- Intel Ubuntu Guide
- ROS and ROS 2 Wrapper Guide
- Includes Foxy
- Contains a list of tools and message explainations
Install
I adapted the following Dashing instructions below to Foxy.
Then I tried these Foxy instructions I found did the source install differently
Install ROS2 Dependences
sudo apt update
TBD: I didn't do an upgrade because that has sometimes broken things. This may be a mistake.
The following were already installed.
- ros-foxy-cv-bridge
- ros-foxy-message-filters
- ros-foxy-image-transport
The following installed successfully.
- rose-foxy-librealsense2
Install Other non-ROS Debian Packages
The following were already installed.
- libssl-dev
- libusb-1.0-0-dev
- pkg-config
- libgl1-mesa-dev
- libglu1-mesa-dev
The following were installed successfully
- libgtk-3-dev
- libglfw3-dev
Install ros2_intel_realsense From Source - Success
Moved to the following instructions on the ROS org repository site which changed the source compile for Foxy
$ cd src/ $ ls image_pipeline ros2_intel_realsense $ cd ros2_intel_realsense/ $ git checkout refactor Branch 'refactor' set up to track remote branch 'refactor' from 'origin'. Switched to a new branch 'refactor' $ ls CHANGELOG.rst README.md realsense_msgs realsense_ros LICENSE realsense_examples realsense_node $ cd ../.. $ source install/local_setup.bash $ colcon build --symlink-install --parallel-workers 1 Starting >>> realsense_msgs Finished <<< realsense_msgs [0.85s] Starting >>> realsense_ros Finished <<< realsense_ros [0.43s] Starting >>> realsense_node Finished <<< realsense_node [0.28s] Starting >>> realsense_examples Finished <<< realsense_examples [0.22s] Summary: 4 packages finished [2.04s]
Configure
USB Info
$ lsusb Bus 001 Device 002: ID 8087:8000 Intel Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device 003: ID 8086:0b07 Intel Corp. Intel(R) RealSense(TM) Depth Camera 435 Bus 003 Device 002: ID 05e3:0617 Genesys Logic, Inc. USB3.0 Hub Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 002 Device 008: ID 8087:07dc Intel Corp. Bus 002 Device 005: ID 10c4:ea60 Silicon Labs CP210x UART Bridge Bus 002 Device 003: ID 0483:5740 STMicroelectronics Virtual COM Port Bus 002 Device 006: ID 413c:3200 Dell Computer Corp. Mouse Bus 002 Device 004: ID f617:0905 Silicon Labs CP2102 USB to UART Bridge Controller Bus 002 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub $ lsusb -s 3:3 -v Bus 003 Device 003: ID 8086:0b07 Intel Corp. Intel(R) RealSense(TM) Depth Camera 435 Couldn't open device, some information will be missing ... ...
- Intel RealSense D435 lsusb 20210515: the complete listing
- Just curious: no action taken.
Setting udev Rules
librealsense2-udev-rules found here referenced in the Installing the Packages section
$ sudo cp /lib/udev/rules.d/60-librealsense2-udev-rules.rules /etc/udev/rules.d/ [sudo] password for eepp:
Configure with the Camera's Serial Number
- Intel RealSense Utilities Ubuntu 20.04 Focal 20210518: Install Instructions
$ rs-enumerate-devices Device info: Name : Intel RealSense D435 Serial Number : 935322071334 Firmware Version : 05.11.01.100 Recommended Firmware Version : 05.12.13.50 ...
- Notice the Serial Number
- Intel RealSense D435 Enumerate Devices 20210515: the complete listing of my D435.
- Now modify the d435.yaml file with the correct serial number
$ cd ~/image_ws/src/ros2_intel_realsense/realsense_examples/config $ cp d435.yaml d435.yaml.org $ emacs d435.yaml& $ diff d435.yaml d435.yaml.org 4c4 < serial_no: 935322071334 # d435 --- > serial_no: 819312071869 # d435
- Turtlebot Waffle NUC D435.yaml 20210514 new listing for the D435.yaml file
Execution
Publishing Realsense
Plug in D435
TERMINAL 1
$ source image_ws/install/local_setup.bash $ ros2 run realsense_node realsense_node __params:=`ros2 pkg prefix realsense_examples`/share/realsense_ros/config/d435.yaml __ns:=/d435 [WARN] [1621277685.022811473] [rcl]: Found remap rule '__ns:=/d435'. This syntax is deprecated. Use '--ros-args --remap __ns:=/d435' instead. [INFO] [1621277685.065798831] [d435.camera]: Device's serial number is not set, enabling the default device! [INFO] [1621277685.299402714] [d435.camera]: Device with serial number 935322071334 was found. [INFO] [1621277685.299500802] [d435.camera]: Create a node for D4X5 Camera
Display Color Raw Image
TERMINAL 2
$ ros2 topic list /d435/camera/aligned_depth_to_color/camera_info /d435/camera/aligned_depth_to_color/image_raw /d435/camera/color/camera_info /d435/camera/color/image_raw /d435/camera/depth/camera_info /d435/camera/depth/image_rect_raw /d435/camera/infra1/camera_info /d435/camera/infra1/image_rect_raw /d435/camera/infra2/camera_info /d435/camera/infra2/image_rect_raw /d435/camera/pointcloud /parameter_events /rosout /tf_static eepp@hood:~$ ros2 run opencv_ros2sub opencv_exp --ros-args -r image:=d435/camera/color/image_raw ^C[INFO] [1621356720.889545172] [rclcpp]: signal_handler(signal_value=2)
/d435/camera/color/image_raw is RGB. opencv_ros2sub tells opencv that it is BGR.
TERMINAL 3
$ ros2 topic echo d435/camera/color/image_raw --- header: stamp: sec: 1621719587 nanosec: 920183274 frame_id: camera_color_optical_frame height: 480 width: 640 encoding: rgb8 is_bigendian: 0 step: 1920 data: - 170 - 178 ...
Other RealSense Images
TBD: modify opencv_rossub to handle other images and fix the one above
$ ros2 run opencv_ros2sub opencv_exp --ros-args -r image:=d435/camera/depth/image_rect_raw terminate called after throwing an instance of 'cv::Exception' what(): OpenCV(4.2.0) ../modules/imgproc/src/color.simd_helpers.hpp:92: error: (-2:Unspecified error) in function 'cv::impl::{anonymous}::CvtHelper<VScn, VDcn, VDepth, sizePolicy>::CvtHelper(cv::InputArray, cv::OutputArray, int) [with VScn = cv::impl::{anonymous}::Set<3, 4>; VDcn = cv::impl::{anonymous}::Set<3>; VDepth = cv::impl::{anonymous}::Set<0, 5>; cv::impl::{anonymous}::SizePolicy sizePolicy = cv::impl::<unnamed>::NONE; cv::InputArray = const cv::_InputArray&; cv::OutputArray = const cv::_OutputArray&]' > Invalid number of channels in input image: > 'VScn::contains(scn)' > where > 'scn' is 1
/d435/camera/aligned_depth_to_color/image_raw 16UC1 /d435/camera/color/image_raw rgb8 /d435/camera/depth/image_rect_raw 16UC1 /d435/camera/infra1/image_rect_raw 8UC1 /d435/camera/infra2/image_rect_raw 8UC1
Using rbiz
TBD doesn't work
https://github.com/intel/ros2_intel_realsense
eepp@hood:~$ ros2 run rviz2 rviz2 -d realsense_ros2_camera/rviz/ros2.rviz [INFO] [1621280162.151564317] [rviz2]: Stereo is NOT SUPPORTED [INFO] [1621280162.151725581] [rviz2]: OpenGl version: 3 (GLSL 1.3) [INFO] [1621280162.182381340] [rviz2]: Stereo is NOT SUPPORTED eepp@hood:~$ ros2 run realsense_ros2_camera realsense_ros2_camera Package 'realsense_ros2_camera' not found
Doesn't help to do a turtlebot bringup first.
Investigate
TBD
rqt_graph
Notes and Logs
- Turtlebot3 Waffle NUC Foxy RealSense 20210513 Notes and Logs
- Turtlebot3 Waffle NUC RealSense2 Configure 20210514 Notes and Logs
- Turtlebot3 Waffle NUC RealSense2 udev 20210517 Notes and Logs
- Turtlebot3 Waffle NUC RealSense2 Use 20210518 Notes and Logs
Depreciated
Install ros2_intel_realsense Binary Packages - failed
It could not locate the following packages.
- ros-foxy-realsense-camera-msgs
- ros-foxy-realsense-ros2-camera
So I move to the source process.
Install ros2_intel_realsense from Source - Failed
$ cd image_ws/src/ $ git clone https://github.com/intel/ros2_intel_realsense.git Cloning into 'ros2_intel_realsense'... remote: Enumerating objects: 961, done. remote: Total 961 (delta 0), reused 0 (delta 0), pack-reused 961 Receiving objects: 100% (961/961), 1.08 MiB | 7.80 MiB/s, done. Resolving deltas: 100% (567/567), done. $ ls image_pipeline ros2_intel_realsense
The image_pipeline did not compile cleanly. So to avoid getting error messages from its packages that did not compile, disable compiling it.
$ cd image_pipeline/ $ cp ~/eepp_ws/src/image_listener/CATKIN_IGNORE . $ cd .. $ cd .. $ colcon build --symlink-install --parallel-workers 1 ... ...
These are the results for each package
- Success: realsense_camera_msgs
- Failed: realsense_ros2_camera - It could not find some of the stuff for librealsense2 which compiled fine above. Not sure what to do.