[Solved] Trouble connecting to ROSbot camera

I am trying to run the tutorial to watch the camera stream on my ROSbot. I have connected to the ROSbot from Windows 10 using the Remote Desktop Connection. When launching astra_launch, I receive an error that it does not connect (see below).

husarion@husarion:~$ roslaunch astra_launch astra.launch
… logging to /home/husarion/.ros/log/4c03feee-18f6-11e9-a5df-80c5f2ba9bc5/roslaunch-husarion-29269.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://husarion:37280/

SUMMARY

PARAMETERS

  • /camera/camera_nodelet_manager/num_worker_threads: 4
  • /camera/depth_rectify_depth/interpolation: 0
  • /camera/driver/auto_exposure: True
  • /camera/driver/auto_white_balance: True
  • /camera/driver/bootorder: 0
  • /camera/driver/color_depth_synchronization: False
  • /camera/driver/depth_camera_info_url:
  • /camera/driver/depth_frame_id: camera_depth_opti…
  • /camera/driver/depth_registration: False
  • /camera/driver/device_id: #1
  • /camera/driver/devnums: 1
  • /camera/driver/rgb_camera_info_url:
  • /camera/driver/rgb_frame_id: camera_rgb_optica…
  • /rosdistro: kinetic
  • /rosversion: 1.12.14

NODES
/camera/
camera_nodelet_manager (nodelet/nodelet)
depth_metric (nodelet/nodelet)
depth_metric_rect (nodelet/nodelet)
depth_points (nodelet/nodelet)
depth_rectify_depth (nodelet/nodelet)
depth_registered_sw_metric_rect (nodelet/nodelet)
driver (nodelet/nodelet)
points_xyzrgb_sw_registered (nodelet/nodelet)
register_depth_rgb (nodelet/nodelet)
rgb_rectify_color (nodelet/nodelet)
/
camera_base_link (tf/static_transform_publisher)
camera_base_link1 (tf/static_transform_publisher)
camera_base_link2 (tf/static_transform_publisher)
camera_base_link3 (tf/static_transform_publisher)

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

setting /run_id to 4c03feee-18f6-11e9-a5df-80c5f2ba9bc5
process[rosout-1]: started with pid [29382]
started core service [/rosout]
process[camera/camera_nodelet_manager-2]: started with pid [29395]
process[camera/driver-3]: started with pid [29401]
process[camera/rgb_rectify_color-4]: started with pid [29404]
process[camera/depth_rectify_depth-5]: started with pid [29406]
process[camera/depth_metric_rect-6]: started with pid [29408]
process[camera/depth_metric-7]: started with pid [29409]
process[camera/depth_points-8]: started with pid [29413]
process[camera/register_depth_rgb-9]: started with pid [29438]
process[camera/points_xyzrgb_sw_registered-10]: started with pid [29441]
process[camera/depth_registered_sw_metric_rect-11]: started with pid [29449]
process[camera_base_link-12]: started with pid [29462]
process[camera_base_link1-13]: started with pid [29470]
[ INFO] [1547578175.753042517]: Initializing nodelet with 4 worker threads.
process[camera_base_link2-14]: started with pid [29481]
process[camera_base_link3-15]: started with pid [29493]
[ INFO] [1547578176.117150282]: No matching device found… waiting for devices. Reason: std::__cxx11::string astra_wrapper::AstraDriver::resolveDeviceURI(const string&) @ /tmp/binarydeb/ros-kinetic-astra-camera-0.2.2/src/astra_driver.cpp @ 741 : Invalid device number 1, there are 0 devices connected.

Hi kmacprof,

Above error occurs when the camera is not connected.
Please check the output of commands:

  • lsusb – there should be entry with ID 2bc5:0401,
  • cat /etc/udev/rules.d/56-orbbec.rules – you should get output exactly:
SUBSYSTEM=="usb", ATTR{idProduct}=="0400", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video"
SUBSYSTEM=="usb", ATTR{idProduct}=="0401", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video"
SUBSYSTEM=="usb", ATTR{idProduct}=="0402", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video"
SUBSYSTEM=="usb", ATTR{idProduct}=="0403", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video"
SUBSYSTEM=="usb", ATTR{idProduct}=="0404", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video"
SUBSYSTEM=="usb", ATTR{idProduct}=="0405", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video"
SUBSYSTEM=="usb", ATTR{idProduct}=="0406", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video"
SUBSYSTEM=="usb", ATTR{idProduct}=="0407", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video"
SUBSYSTEM=="usb", ATTR{idProduct}=="0408", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video"
SUBSYSTEM=="usb", ATTR{idProduct}=="0409", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video"
SUBSYSTEM=="usb", ATTR{idProduct}=="040a", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video"

Please let me know if output of the commands comply with above.

Also let me know if it worked earlier or is it your first run?

Regards,
Łukasz

Lucasz,

This is the first time using the ROSbot out of the box. lsusb is not correct, but cat is. Thanks for your help!

husarion@husarion:~$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 0bda:481a Realtek Semiconductor Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
husarion@husarion:~$ cat /etc/udev/rules.d/56-orbbec.rules
SUBSYSTEM==“usb”, ATTR{idProduct}==“0400”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0401”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0402”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0403”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0404”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0405”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0406”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0407”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0408”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0409”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“040a”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”

Hi kmacprof,

Please try to reboot your device and check the output of lsusb one more time. It should work fine after the reboot.

Please let us know if it works.

Regards,
Hubert

By rebooting, you mean turning off the switch on the back of the ROSbot, turning it back on, and reconnecting through the remote desktop connection, right? Is so, I still have the same problem:

husarion@husarion:~$ lsusb
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 002: ID 0bda:481a Realtek Semiconductor Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Is it possible the internal connection of the camera came loose during shipping?

Hi kmacprof,

Thank you for letting us know about the outcome.

If that didn’t help it seems that indeed the connector came loose during transportation.

I will send you the instructions on how to fix that issue directly to your email. Is that ok?

Regards,
Hubert

That will be fine. Thanks!

Hi Hurbert,

I have the same problem! could you plese send me those instructions too!

(Moderator note: content moved from separate thread)

I have a problem with astra camera on Rosbot 2 pro! I use command “roslaunch astra_launch astra.launch” in the terminal to start camera nodes but I get an invalid device error that I pasted the error in following. Once I thought that might be because of a loose connection so I opened the robot and checked on connections and it worked. But later again I am getting the same error and I checked on cables and they do not look loose! Appreciate any help!

… logging to /home/husarion/.ros/log/7b506b40-2a5f-11e9-8a03-70f11c0555ac/roslaunch-husarion-11532.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://husarion:40877/

SUMMARY
PARAMETERS

/camera/camera_nodelet_manager/num_worker_threads: 4
/camera/depth_rectify_depth/interpolation: 0
/camera/driver/auto_exposure: True
/camera/driver/auto_white_balance: True
/camera/driver/bootorder: 0
/camera/driver/color_depth_synchronization: False
/camera/driver/depth_camera_info_url:
/camera/driver/depth_frame_id: camera_depth_opti…
/camera/driver/depth_registration: False
/camera/driver/device_id: #1
/camera/driver/devnums: 1
/camera/driver/rgb_camera_info_url:
/camera/driver/rgb_frame_id: camera_rgb_optica…
/rosdistro: kinetic
/rosversion: 1.12.14
NODES
/camera/
camera_nodelet_manager (nodelet/nodelet)
depth_metric (nodelet/nodelet)
depth_metric_rect (nodelet/nodelet)
depth_points (nodelet/nodelet)
depth_rectify_depth (nodelet/nodelet)
depth_registered_sw_metric_rect (nodelet/nodelet)
driver (nodelet/nodelet)
points_xyzrgb_sw_registered (nodelet/nodelet)
register_depth_rgb (nodelet/nodelet)
rgb_rectify_color (nodelet/nodelet)
/
camera_base_link (tf/static_transform_publisher)
camera_base_link1 (tf/static_transform_publisher)
camera_base_link2 (tf/static_transform_publisher)
camera_base_link3 (tf/static_transform_publisher)

ROS_MASTER_URI=http://master:11311

process[camera/camera_nodelet_manager-1]: started with pid [11629]
process[camera/driver-2]: started with pid [11632]
process[camera/rgb_rectify_color-3]: started with pid [11633]
process[camera/depth_rectify_depth-4]: started with pid [11635]
process[camera/depth_metric_rect-5]: started with pid [11646]
process[camera/depth_metric-6]: started with pid [11663]
process[camera/depth_points-7]: started with pid [11672]
process[camera/register_depth_rgb-8]: started with pid [11676]
process[camera/points_xyzrgb_sw_registered-9]: started with pid [11685]
process[camera/depth_registered_sw_metric_rect-10]: started with pid [11692]
process[camera_base_link-11]: started with pid [11706]
process[camera_base_link1-12]: started with pid [11715]
process[camera_base_link2-13]: started with pid [11721]
process[camera_base_link3-14]: started with pid [11736]
[ INFO] [1549493725.351967470]: Initializing nodelet with 4 worker threads.
[ INFO] [1549493726.016449270]: No matching device found… waiting for devices. Reason: std::__cxx11::string astra_wrapper::AstraDriver::resolveDeviceURI(const string&) @ /tmp/binarydeb/ros-kinetic-astra-camera-0.2.2/src/astra_driver.cpp @ 741 : Invalid device number 1, there are 0 devices connected.
[ INFO] [1549493729.017333205]: No matching device found… waiting for devices. Reason: std::__cxx11::string astra_wrapper::AstraDriver::resolveDeviceURI(const string&) @ /tmp/binarydeb/ros-kinetic-astra-camera-0.2.2/src/astra_driver.cpp @ 741 : Invalid device number 1, there are 0 devices connected.

Here is the response to: husarion@husarion:~$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 0424:2530 Standard Microsystems Corp.
Bus 001 Device 006: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter
Bus 001 Device 005: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light
Bus 001 Device 004: ID 0424:4603 Standard Microsystems Corp.
Bus 001 Device 003: ID 03f0:0024 Hewlett-Packard KU-0316 Keyboard
Bus 001 Device 002: ID 413c:301a Dell Computer Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

and here is the response to: husarion@husarion:~$ cat /etc/udev/rules.d/56-orbbec.rules
SUBSYSTEM==“usb”, ATTR{idProduct}==“0400”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0401”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0402”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0403”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0404”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0405”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0406”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0407”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0408”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“0409”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”
SUBSYSTEM==“usb”, ATTR{idProduct}==“040a”, ATTR{idVendor}==“2bc5”, MODE:=“0666”, OWNER:=“root”, GROUP:=“video”

Thanks,
Amin

Hi Amin,

Do the USB ports on the rear panel have some additional devices attached when you turn on ROSbot?
Is this issue occurs every time you switched on device?

If you can’t see device Bus 002 Device 006: ID 2bc5:0401 when execute lsusb in terminal, please try to use:

sudo service udev reload
sudo service udev restart

and check lsusb output after that.

Best regards,
Hubert

1 Like

Hi Hurbert,

Sometimes I connect a keyboard and mouse with USB and a monitor with HDMI but I tried also without anything attached.

This is what I see for lsusb before and after those two sudo commands without anything attached:

husarion@husarion:~$ lsusb

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

Bus 001 Device 006: ID 0424:2530 Standard Microsystems Corp.

Bus 001 Device 005: ID 148f:7601 Ralink Technology, Corp. MT7601U Wireless Adapter

Bus 001 Device 004: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light

Bus 001 Device 003: ID 0424:4603 Standard Microsystems Corp.

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I get the same error as before:
No matching device found… waiting for devices. Reason: std::__cxx11::string astra_wrapper::AstraDriver::resolveDeviceURI(const string&) @ /tmp/binarydeb/ros-kinetic-astra-camera-0.2.2/src/astra_driver.cpp @ 741 : Invalid device number 1, there are 0 devices connected

Thanks,
Amin

Hi Amin,

We can make it work in other way. Please try to reinstall udev pkg for Orbbec Astra:

sudo apt remove astra-udev-support
sudo service udev reload
sudo service udev restart
sudo apt install astra-udev-support
sudo service udev reload
sudo service udev restart

and check the output of lsusb after that one more time.

Please let me know about results.

Best regards,
Hubert

1 Like

Hi Hurbert,

It worked when I used these commands (only one warning):
[ WARN] [1550076468.506406959]: Camera calibration file /home/husarion/.ros/camera_info/rgb_Astra_Orbbec.yaml not found.

But, after I restarted the robot a while later I get the same error.

Thanks,
Amin

A quick Update :slight_smile: I tried it once more without having anything connected to the robot on the back panel and again it worked!
Does this mean nothing should be connected to the back panel for the camera to work? Suggestions would be appreciated!

1 Like

Hi Amin,

We could not reproduce the problem you have described, however after investigating the issue the most likely explanation is that some of Orbbec Astra cameras need more power that the others to initialize. Therefore when you’re turning on your ROSbot with an additional device already connected to the UpBoard USB hub at the back panel, current efficiency is not sufficient to properly initialize both.

Plugging in additional devices AFTER ROSbot has already started working seems to be the solution.

Hope that helps.

Best regards,
Hubert

Hi Hurbert,

Thank you for the troubleshooting and information! :slight_smile:

Thanks,
Amin