Reachy robot 1 camera not working

Despite multiple attempts, I have been unable to access or detect the cameras.

When connecting Reachy to an external monitor and launching a camera application such as Cheese, no webcam is detected. Also when running the following commands I have no infomation on the cameras as seen in the attached photos. `lsusb```, ls /dev/video*, ```lsmod | grep videoand ```journalctl -b | grep -i video``.

Given that the system appears to be functioning correctly otherwise, I suspect that the issue may be due to a faulty connection with the onboard camera or a hardware failure in the camera module.

Could anyone kindly advise on how to fix the issue such as any recommended steps to verify internal camera connections safely? And any additional diagnostic tools or logs we can check to further isolate the problem?

Any help in resolving this would be greatly appreciated. I am happy to provide system logs or run any additional commands you suggest.

Hi @Adam1501!

Could you specify what you mean by not being able to access the cameras in the first place? Is the sdk-server running and if yes are you able to connect to Reachy with its SDK using reachy = ReachySDK() but cannot get a frame with the SDK?

From what I can see there is a typo when you typed ls /de/video* (a v is missing). Can you confirm that you don’t have any output when you type /dev/video* aswell?
There should be 8 outputs to this command, usually from /dev/video0 to /dev/video7 (4 outputs are created per camera)
Also can you try if the commands ls /dev/left_camera and ls /dev/right_camera give you anything?

The cameras seem to be in the lsusb command, its the ones with MCS C2.

I am able to run the SDK serever, eg. I am able to move its arms about using the python SDK from a seperate computer. I can not get access to the cameras throught the SDK and when I plug Reachy into a monitor and use the Cheese (Camera application) it doesn’t show anything.

Sorry about the typo. When i run ls /dev/camera0 to 7 i get a no such file/directory response. The same thing happens when i run ls /dev/left_camera and ls /dev/right_camera

Thanks for the additional info.

Could you attach the logs to sdk server in a file please?
You can get them with

systemctl --user status reachy_sdk_server.service -n 10000

Also for the cameras a ros controller is running and should publish images in two topics:

  • /left_image/image_raw/compressed
  • /right_image/image_raw/compressed

Could you check if you can see them with the following:

ros2 topic list | grep image

if yes, you can echo once of them to check if data is going through it with

ros2 topic echo /left_image/image_raw/compressed --once

Also, you could try to stop the sdk server service with
systemctl --user stop reachy_sdk_server.service

and use a script available to try to get the video feed from one of the camera:

python3 ~/reachy_ws/src/reachy_2023/camera_controllers/examples/view_cam.py left opencv

You can get more info directly in the documentation, in this section.
To be honest, I don’t think this last command won’t work right now because you can’t see the /dev/video* outputs but I am giving you this info just in case or at least it might be useful for later.

systemctl --user status reachy_sdk_server.service -n 10000 prints this:

and these are the logs for the commands

Ok, so the message tev: ddsi_udp_conn_write to udp … failed with retcode -1 usually means that there was a network error during usage. ROS’ DDS does not like network events such as changing wifi, losing wifi or ethernet connection.

When this happens, it is needed to restart the service, either in cli with systemctl --user restart reachy_sdk_server.service or by using the dashboard which should be running on the robot.

What is your network setup for the robot? Is it connected with ethernet, wifi, both? Is it on an academic network? Some users had issue with robot connected to faculty network due to firewalls or other safety added to the network.

The set up in those photos were on an acedemic wifi so i could access this forum and copy commands over. Usually it is connected to a wifi pineapple MARK VII router. When connected to to the pinapple router i haven’t had any issues with connectivity with moving arms/base, etc. The cameras arent accessible thru the network or when i am directly on the robot via a monitor/HDMI set up

Hiya is there any more advice you could offere to help me fix the issue?

Hiya is there any more advice for this problem?

Hi @Adam1501, apologies for the delay. Are you still seeing the same logs for the reachy_sdk_server service (with the error tev: ddsi_udp_conn_write to … failed with retcode -1)? I assume you or someone from your team did not modify Reachy’s computer network interface?

Something that you could test is launching Reachy’s main code by hand in terminal to get the live logs. To do that you will first need to stop the service:

systemctl --user stop reachy_sdk_server.service

and then launch the main code

ros2 launch reachy_bringup reachy.launch.py

check if the error is still there. You can come back here with the output.

I could not find the error ddsi_udp_conn_write to … failed with retcode -1. When i run the main code the logs run thru loads of different sevices such as the arms and grippers, etc. It however gets stuck on this and just keeps printing this until i hit cntr + c.

[camera_focus-6] [INFO] [1755165451.676046282] [camera_focus]: Waiting for an image from /right_image...
[camera_focus-6] [INFO] [1755165456.678369315] [camera_focus]: Waiting for an image from /right_image...
[camera_focus-6] [INFO] [1755165456.680709076] [camera_focus]: Waiting for an image from /left_image...
[camera_focus-6] [INFO] [1755165461.682172729] [camera_focus]: Waiting for an image from /right_image...
[camera_focus-6] [INFO] [1755165461.686104660] [camera_focus]: Waiting for an image from /left_image...
[ros2_control_node-1] [INFO] [1755165465.005707546] [ArmSystem]: (r_arm) READ FAN ERROR!

I would need the full output for this please. You could do this like this for example:

ros2 launch reachy_bringup reachy.launch.py > logs.txt

and ctrl-c a couple minutes after.

Also if you want to isolate the code that starts the camera you could first stop the main service with

systemctl --user stop reachy_sdk_server.service

and run

ros2 launch camera_controllers camera_controllers.launch.py

here is the logs: https://drive.google.com/file/d/1ASyMlQvwI4-vssTmFkwRmCc9nhz8Kbp5/view?usp=sharing as a google link as i cant attach a txt file, hope this helps your suggestions