Missing ROS driver for Realsense

Hello, I was trying to run “roslaunch stretch_demos hello_world.launch” and got the error below.


I switched out the gripper with marker holder, calibrated the robot by using “stretch_robot_home.py”, checked everything by using “stretch_robot_system_check.py” and ran “pip install -U hello-robot-stretch-tool-share”. I thought it was weird getting the error so I tried doing Perception from Basic Tutorial which I know worked and have ran successfully multiple times before. But when I ran “roslaunch stretch_core d435i_low_resolution.launch” after running “roslaunch stretch_core stretch_driver.launch” in a different window, I got the error below. Any idea what could be causing this error?

I have copied and pasted all the lines below in case it helps.
First when I ran “roslaunch stretch_demos hello_world.launch”

Output
roslaunch stretch_demos hello_world.launch

... logging to /home/hello-robot/.ros/log/ff8b1ca6-dd76-11ed-b3c2-23f0e184acc6/roslaunch-stretch-re2-2013-4298.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://10.157.133.236:37539/
SUMMARY
========
PARAMETERS
* /aggregator_node/analyzers/hardware/analyzers/Arm/find_and_remove_prefix: ['stretch_driver:...
* /aggregator_node/analyzers/hardware/analyzers/Arm/path: Arm
* /aggregator_node/analyzers/hardware/analyzers/Arm/type: diagnostic_aggreg...
* /aggregator_node/analyzers/hardware/analyzers/Base/find_and_remove_prefix: ['stretch_driver:...
* /aggregator_node/analyzers/hardware/analyzers/Base/path: Base
* /aggregator_node/analyzers/hardware/analyzers/Base/type: diagnostic_aggreg...
* /aggregator_nde/analyzers/hardware/analyzers/EndOfArm/find_and_remove_prefix: ['stretch_driver:...
* /aggregator_node/analyzers/hardware/analyzers/EndOfArm/path: EndOfArm
* /aggregator_node/analyzers/hardware/analyzers/EndOfArm/type: diagnostic_aggreg...
* /aggregator_node/analyzers/hardware/analyzers/Head/find_and_remove_prefix: ['stretch_driver:...
* /aggregator_node/analyzers/hardware/analyzers/Head/path: Head
* /aggregator_node/analyzers/hardware/analyzers/Head/type: diagnostic_aggreg...
* /aggregator_node/analyzers/hardware/analyzers/Lift/find_and_remove_prefix: ['stretch_driver:...
* /aggregator_node/analyzers/hardware/analyzers/Lift/path: Lift
* /aggregator_node/analyzers/hardware/analyzers/Lift/type: diagnostic_aggreg...
* /aggregator_node/analyzers/hardware/analyzers/Pimu/find_and_remove_prefix: ['stretch_driver:...
* /aggregator_node/analyzers/hardware/analyzers/Pimu/path: Pimu
* /aggregator_node/analyzers/hardware/analyzers/Pimu/type: diagnostic_aggreg...
* /aggregator_node/analyzers/hardware/analyzers/Wacc/find_and_remove_prefix: ['stretch_driver:...
* /aggregator_node/analyzers/hardware/analyzers/Wacc/path: Wacc
* /aggregator_node/analyzers/hardware/analyzers/Wacc/type: diagnostic_aggreg...
* /aggregator_node/analyzers/hardware/path: Hardware
* /aggregator_node/analyzers/hardware/type: diagnostic_aggreg...
* /aggregator_node/path: Stretch
* /aggregator_node/type: diagnostic_aggreg...
* /camera/realsense2_camera/accel_fps: 63
* /camera/realsense2_camera/accel_frame_id: camera_accel_frame
* /camera/realsense2_camera/accel_optical_frame_id: camera_accel_opti...
* /camera/realsense2_camera/align_depth: True
* /camera/realsense2_camera/aligned_depth_to_color_frame_id: camera_aligned_de...
* /camera/realsense2_camera/aligned_depth_to_fisheye1_frame_id: camera_aligned_de...
* /camera/realsense2_camera/aligned_depth_to_fisheye2_frame_id: camera_aligned_de...
* /camera/realsense2_camera/aligned_depth_to_fisheye_frame_id: camera_aligned_de...
* /camera/realsense2_camera/aligned_depth_to_infra1_frame_id: camera_aligned_de...
* /camera/realsense2_camera/aligned_depth_to_infra2_frame_id: camera_aligned_de...
* /camera/realsense2_camera/allow_no_texture_points: True
* /camera/realsense2_camera/base_frame_id: camera_link
* /camera/realsense2_camera/calib_odom_file:
* /camera/realsense2_camera/clip_distance: -2.0
* /camera/realsense2_camera/color_fps: 15
* /camera/realsense2_camera/color_frame_id: camera_color_frame
* /camera/realsense2_camera/color_height: 240
* /camera/realsense2_camera/color_optical_frame_id: camera_color_opti...
* /camera/realsense2_camera/color_width: 424
* /camera/realsense2_camera/confidence_fps: -1
* /camera/realsense2_camera/confidence_height: -1
* /camera/realsense2_camera/confidence_width: -1
* /camera/realsense2_camera/depth_fps: 15
* /camera/realsense2_camera/depth_frame_id: camera_depth_frame
* /camera/realsense2_camera/depth_height: 240
* /camera/realsense2_camera/depth_optical_frame_id: camera_depth_opti...
* /camera/realsense2_camera/depth_width: 424
* /camera/realsense2_camera/device_type:
* /camera/realsense2_camera/enable_accel: True
* /camera/realsense2_camera/enable_color: True
* /camera/realsense2_camera/enable_confidence: True
* /camera/realsense2_camera/enable_depth: True
* /camera/realsense2_camera/enable_fisheye1: False
* /camera/realsense2_camera/enable_fisheye2: False
* /camera/realsense2_camera/enable_fisheye: False
* /camera/realsense2_camera/enable_gyro: False
* /camera/realsense2_camera/enable_infra1: False
* /camera/realsense2_camera/enable_infra2: False
* /camera/realsense2_camera/enable_infra: False
* /camera/realsense2_camera/enable_pointcloud: False
* /camera/realsense2_camera/enable_pose: False
* /camera/realsense2_camera/enable_sync: True
* /camera/realsense2_camera/filters: pointcloud
* /camera/realsense2_camera/fisheye1_frame_id: camera_fisheye1_f...
* /camera/realsense2_camera/fisheye1_optical_frame_id: camera_fisheye1_o...
* /camera/realsense2_camera/fisheye2_frame_id: camera_fisheye2_f...
* /camera/realsense2_camera/fisheye2_optical_frame_id: camera_fisheye2_o...
* /camera/realsense2_camera/fisheye_fps: -1
* /camera/realsense2_camera/fisheye_frame_id: camera_fisheye_frame
* /camera/realsense2_camera/fisheye_height: -1
* /camera/realsense2_camera/fisheye_optical_frame_id: camera_fisheye_op...
* /camera/realsense2_camera/fisheye_width: -1
* /camera/realsense2_camera/gyro_fps: 200
* /camera/realsense2_camera/gyro_frame_id: camera_gyro_frame
* /camera/realsense2_camera/gyro_optical_frame_id: camera_gyro_optic...
* /camera/realsense2_camera/imu_optical_frame_id: camera_imu_optica...
* /camera/realsense2_camera/infra1_frame_id: camera_infra1_frame
* /camera/realsense2_camera/infra1_optical_frame_id: camera_infra1_opt...
* /camera/realsense2_camera/infra2_frame_id: camera_infra2_frame
* /camera/realsense2_camera/infra2_optical_frame_id: camera_infra2_opt...
* /camera/realsense2_camera/infra_fps: 30
* /camera/realsense2_camera/infra_height: 480
* /camera/realsense2_camera/infra_rgb: False
* /camera/realsense2_camera/infra_width: 848
* /camera/realsense2_camera/initial_reset: True
* /camera/realsense2_camera/json_file_path: /home/hello-robot...
* /camera/realsense2_camera/linear_accel_cov: 0.01
* /camera/realsense2_camera/odom_frame_id: camera_odom_frame
* /camera/realsense2_camera/ordered_pc: False
* /camera/realsense2_camera/pointcloud_texture_index: 0
* /camera/realsense2_camera/pointcloud_texture_stream: RS2_STREAM_COLOR
* /camera/realsense2_camera/pose_frame_id: camera_pose_frame
* /camera/realsense2_camera/pose_optical_frame_id: camera_pose_optic...
* /camera/realsense2_camera/publish_odom_tf: True
* /camera/realsense2_camera/publish_tf: True
* /camera/realsense2_camera/reconnect_timeout: 6.0
* /camera/realsense2_camera/rosbag_filename:
* /camera/realsense2_camera/serial_no:
* /camera/realsense2_camera/stereo_module/exposure/1: 7500
* /camera/realsense2_camera/stereo_module/exposure/2: 1
* /camera/realsense2_camera/stereo_module/gain/1: 16
* /camera/realsense2_camera/stereo_module/gain/2: 16
* /camera/realsense2_camera/tf_publish_rate: 0.0
* /camera/realsense2_camera/topic_odom_in: odom_in
* /camera/realsense2_camera/unite_imu_method:
* /camera/realsense2_camera/usb_port_id:
* /camera/realsense2_camera/wait_for_device_timeout: -1.0
* /d435i_configure/initial_mode: High Accuracy
* /funmap/debug_directory: /home/hello-robot...
* /hello_world/debug_directory: /home/hello-robot...
* /joint_state_publisher/rate: 15.0
* /joint_state_publisher/source_list: ['/stretch/joint_...
* /laser_filter/scan_filter_chain: [{'name': 'shadow...
* /laser_scan_matcher_node/fixed_frame: odom
* /laser_scan_matcher_node/max_angular_correction_deg: 20.0
* /laser_scan_matcher_node/max_iterations: 10
* /laser_scan_matcher_node/max_linear_correction: 0.2
* /laser_scan_matcher_node/use_imu: False
* /lidar_node/angle_compensate: True
* /lidar_node/frame_id: laser
* /lidar_node/inverted: False
* /lidar_node/scan_mode: Boost
* /lidar_node/serial_baudrate: 115200
* /lidar_node/serial_port: /dev/hello-lrf
* /robot_description: <?xml version="1....
* /robot_state_publisher/publish_frequency: 15.0
* /rosdistro: noetic
* /rosversion: 1.15.15
* /stretch_driver/broadcast_odom_tf: False
* /stretch_driver/controller_calibration_file: /home/hello-robot...
* /stretch_driver/fail_out_of_range_goal: False
* /stretch_driver/rate: 15.0
* /stretch_driver/timeout: 0.5
NODES
aggregator_node (diagnostic_aggregator/aggregator_node)
d435i_accel_correction (stretch_core/d435i_accel_correction)
d435i_configure (stretch_core/d435i_configure)
funmap (stretch_funmap/funmap)
hello_world (stretch_demos/hello_world)
joint_state_publisher (joint_state_publisher/joint_state_publisher)
keyboard_teleop (stretch_core/keyboard_teleop)
laser_filter (laser_filters/scan_to_scan_filter_chain)
laser_scan_matcher_node (laser_scan_matcher/laser_scan_matcher_node)
lidar_node (rplidar_ros/rplidarNode)
robot_state_publisher (robot_state_publisher/robot_state_publisher)
stretch_driver (stretch_core/stretch_driver)
/camera/
realsense2_camera (nodelet/nodelet)
realsense2_camera_manager (nodelet/nodelet)
ROS_MASTER_URI=http://10.157.133.236:11311/
process[d435i_accel_correction-1]: started with pid [4319]
process[camera/realsense2_camera_manager-2]: started with pid [4320]
process[camera/realsense2_camera-3]: started with pid [4321]
process[d435i_configure-4]: started with pid [4322]
process[joint_state_publisher-5]: started with pid [4324]
process[robot_state_publisher-6]: started with pid [4329]
process[stretch_driver-7]: started with pid [4330]
process[aggregator_node-8]: started with pid [4331]
[ INFO] [1681773878.560719607]: Initializing nodelet with 8 worker threads.
process[funmap-9]: started with pid [4348]
process[lidar_node-10]: started with pid [4352]
[ WARN] [1681773878.591494718]: The root link base_link has an inertia specified in the URDF, but KDL does not support a root link with an inertia. As a workaround, you can add an extra dummy link to your URDF.
process[laser_filter-11]: started with pid [4362]
[ INFO] [1681773878.604650854]: RPLIDAR running on ROS package rplidar_ros, SDK Version:2.0.0
process[laser_scan_matcher_node-12]: started with pid [4372]
process[hello_world-13]: started with pid [4375]
process[keyboard_teleop-14]: started with pid [4387]
[ INFO] [1681773878.652320623]: RPLIDAR S/N: 52F6ED93C0EA98C6A5E698F2C7284666
[ INFO] [1681773878.652362504]: Firmware Ver: 1.29
[ INFO] [1681773878.652376896]: Hardware Rev: 7
[ INFO] [1681773878.685570219]: Starting LaserScanMatcher
[ INFO] [1681773878.703563266]: RPLidar health status : OK.
[ERROR] [1681773878.740738649]: Failed to load nodelet [/camera/realsense2_camera] of type [realsense2_camera/RealSenseNodeFactory] even after refreshing the cache: Failed to load library /home/hello-robot/catkin_ws/devel/lib//librealsense2_camera.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = librealsense2.so.2.51: cannot open shared object file: No such file or directory)
[ERROR] [1681773878.740789512]: The error before refreshing the cache was: Failed to load library /home/hello-robot/catkin_ws/devel/lib//librealsense2_camera.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = librealsense2.so.2.51: cannot open shared object file: No such file or directory)
[FATAL] [1681773878.740910821]: Failed to load nodelet '/camera/realsense2_camera` of type `realsense2_camera/RealSenseNodeFactory` to manager `realsense2_camera_manager'
[camera/realsense2_camera-3] process has died [pid 4321, exit code 255, cmd /opt/ros/noetic/lib/nodelet/nodelet load realsense2_camera/RealSenseNodeFactory realsense2_camera_manager __name:=realsense2_camera __log:=/home/hello-robot/.ros/log/ff8b1ca6-dd76-11ed-b3c2-23f0e184acc6/camera-realsense2_camera-3.log].
log file: /home/hello-robot/.ros/log/ff8b1ca6-dd76-11ed-b3c2-23f0e184acc6/camera-realsense2_camera-3*.log
[ INFO] [1681773879.018918589]: current scan mode: Boost, sample rate: 8 Khz, max_distance: 12.0 m, scan frequency:10.0 Hz,
[INFO] [1681773879.072971]: /d435i_accel_correction started
[INFO] [1681773879.312386]: /keyboard_teleop started
[INFO] [rospy.topics]: topicmanager initialized
[INFO] [1681773879.866789]: For use with S T R E T C H (TM) RESEARCH EDITION from Hello Robot Inc.
[INFO] [1681773879.867819]: /stretch_driver started
MoveBase __init__: self.debug_directory = None
MaxHeightImage information:
image.shape = (67, 25)
image.dtype = uint8
m_per_pix = 0.006
m_per_height_unit = 0.00027667984189723324
voi.x_in_m = 0.15
voi.y_in_m = 0.4
voi.z_in_m = 0.07
MaxHeightImage information:
image.shape = (434, 350)
image.dtype = uint8
m_per_pix = 0.006
m_per_height_unit = 0.004566929133858267
voi.x_in_m = 2.1
voi.y_in_m = 2.6
voi.z_in_m = 1.16
DynamixelHelloXL430 Ping failed... stretch_gripper
[INFO] [1681773880.347891]: /hello_world started
[INFO] [1681773880.427154]: mode = position
[INFO] [1681773880.431117]: /stretch_driver: Changed to mode = position
[INFO] [1681773880.436706]: broadcast_odom_tf = False
[INFO] [1681773880.441975]: Loading controller calibration parameters for the head from YAML file named /home/hello-robot/catkin_ws/src/stretch_ros/stretch_core/config/controller_calibration_head.yaml
[INFO] [1681773880.447929]: controller parameters loaded = {'arm_retracted_offset': 0.0032103914147080708, 'pan_angle_offset': 0.03188781113779685, 'pan_looked_left_offset': -0.0019369451387574305, 'tilt_angle_backlash_transition': -0.4, 'tilt_angle_offset': 0.025338214818872926, 'tilt_looking_up_offset': -0.04401953681500859}
[INFO] [1681773880.452139]: head_tilt_calibrated_offset_rad in degrees = 1.4517727695172582
[INFO] [1681773880.457977]: head_pan_calibrated_offset_rad in degrees = 1.827036996106019
[INFO] [1681773880.461866]: head_pan_calibrated_looked_left_offset_rad in degrees = -0.11097878159918238
[INFO] [1681773880.466364]: head_tilt_backlash_transition_angle_rad in degrees = -22.918311805232932
[INFO] [1681773880.470179]: head_tilt_calibrated_looking_up_offset_rad in degrees = -2.5221336756207426
[INFO] [1681773880.473644]: arm_calibrated_retracted_offset_m in meters = 0.0032103914147080708
[INFO] [1681773880.503085]: /stretch_driver rate = 15.0 Hz
[INFO] [1681773880.506623]: /stretch_driver timeout = 0.5 s
[INFO] [1681773880.510336]: /stretch_driver use_fake_mechaduinos = False
[INFO] [1681773880.512476]: /stretch_driver base_frame_id = base_link
[INFO] [1681773880.514892]: /stretch_driver odom_frame_id = odom
[INFO] [1681773880.647167]: Node /keyboard_teleop connected to /stop_the_robot service.
[INFO] [1681773880.649565]: Node /keyboard_teleop waiting to connect to /funmap/trigger_head_scan.
[INFO] [1681773880.651558]: Node /hello_world connected to /stop_the_robot service.
[INFO] [1681773880.785706]: /funmap started
[INFO] [1681773880.830383]: Node /funmap connected to /stop_the_robot service.
Node funmap waiting to receive first point cloud.
[INFO] [1681773882.791467]: /d435i_configure started
Waiting for service /camera/stereo_module/set_parameters...

Hi @sonny, it looks like the ROS driver can’t find the Realsense library. Would you run the following two commands to confirm if your software is set up correctly?

ls ~/catkin_ws/src
Expected Output
CMakeLists.txt  realsense-ros  respeaker_ros  stretch_ros  stretch_tutorials
sudo apt list | grep realsense
Expected Output
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

librealsense2-dbg/bionic,now 2.53.1-0~realsense0.8249 amd64 [installed]
librealsense2-dev/bionic,now 2.53.1-0~realsense0.8249 amd64 [installed]
librealsense2-dkms/bionic,now 1.3.18-0ubuntu1 all [installed]
librealsense2-gl-dbg/bionic 2.53.1-0~realsense0.8249 amd64
librealsense2-gl-dev/bionic 2.53.1-0~realsense0.8249 amd64
librealsense2-gl/bionic,now 2.53.1-0~realsense0.8249 amd64 [installed,automatic]
librealsense2-net-dbg/bionic 2.53.1-0~realsense0.8249 amd64
librealsense2-net-dev/bionic 2.53.1-0~realsense0.8249 amd64
librealsense2-net/bionic,now 2.53.1-0~realsense0.8249 amd64 [installed,automatic]
librealsense2-udev-rules/bionic,now 2.53.1-0~realsense0.8249 amd64 [installed,automatic]
librealsense2-utils/bionic,now 2.53.1-0~realsense0.8249 amd64 [installed]
librealsense2/bionic,now 2.53.1-0~realsense0.8249 amd64 [installed,automatic]
ros-foxy-librealsense2-dbgsym/focal 2.51.1-1focal.20220907.184132 amd64
ros-foxy-librealsense2/focal 2.51.1-1focal.20220907.184132 amd64
ros-foxy-realsense-msgs-dbgsym/focal 2.0.8-2focal.20230317.002050 amd64
ros-foxy-realsense-msgs/focal 2.0.8-2focal.20230317.002050 amd64
ros-foxy-realsense2-camera-dbgsym/focal 4.51.1-1focal.20230317.014348 amd64
ros-foxy-realsense2-camera-msgs-dbgsym/focal 4.51.1-1focal.20230317.002854 amd64
ros-foxy-realsense2-camera-msgs/focal 4.51.1-1focal.20230317.002854 amd64
ros-foxy-realsense2-camera/focal 4.51.1-1focal.20230317.014348 amd64
ros-foxy-realsense2-description/focal 4.51.1-1focal.20230317.013928 amd64
ros-galactic-librealsense2-dbgsym/focal 2.51.1-1focal.20221203.075934 amd64
ros-galactic-librealsense2/focal 2.51.1-1focal.20221203.075934 amd64
ros-galactic-realsense2-camera-dbgsym/focal 4.51.1-1focal.20221208.064921 amd64
ros-galactic-realsense2-camera-msgs-dbgsym/focal 4.51.1-1focal.20221203.095902 amd64
ros-galactic-realsense2-camera-msgs/focal 4.51.1-1focal.20221203.095902 amd64
ros-galactic-realsense2-camera/focal 4.51.1-1focal.20221208.064921 amd64
ros-galactic-realsense2-description/focal 4.51.1-1focal.20221208.064921 amd64
ros-noetic-librealsense2-dbgsym/focal 2.50.0-1focal.20211115.134455 amd64
ros-noetic-librealsense2/focal 2.50.0-1focal.20211115.134455 amd64
ros-noetic-realsense2-camera-dbgsym/focal 2.3.2-1focal.20230215.235752 amd64
ros-noetic-realsense2-camera/focal 2.3.2-1focal.20230215.235752 amd64
ros-noetic-realsense2-description/focal 2.3.2-1focal.20230306.095351 amd64

Below is what I got. It appears to be correct.

Hi @sonny, the “ros-noetic-librealsense2” and “ros-noetic-realsense2-camera” packages shouldn’t be installed. You can uninstall them using:

sudo apt remove ros-noetic-librealsense2 ros-noetic-realsense2-camera

Thank you. I have uninstalled them, but I am still having the same issue. It is strange because it was working before and it suddenly does not work. No changes were made during the period of inactivity. Below is when I tried to run “roslaunch stretch_core d435i_low_resolution.launch” for Perception under Basic Tutorial.

Hi @sonny, let’s try rebuilding your ROS workspace. Try running the following commands:

cd ~/catkin_ws
rm -rf build/ devel/ # deletes the previous workspace build
catkin_make

Then open a new terminal and try again.

1 Like

Thank you, it worked! I should have tried this first. Thanks for your help again.

I do have a quick question running “roslaunch stretch_demos hello_world.launch”. I noticed that there are buttons to press to initiate with other demos. Is there one for writing Hello World (whiteboard writing)? I have been running it but it has not actually performed the action.

Glad to hear that! For triggering the whiteboard demo, it looks like it’s the ‘`’ and ‘~’ keys. Here’s where it is in the source code:

1 Like