Operate reachy via network ( websockets, tcp, udp )

Hello,

Is there a way to drive reachy through the network from a distant computer and run the code on a powerfull desktop computer. Ideally in the same way we drive the simulation (Unity 3D) via websockets.

Do you have a plan to do so ?

Thank you,

Arnaud Blanchard

1 Like

Hi Arnaud,

You basically have two options:

  • First, you can write your own client/server in the same way we did the WS/Unity connection (see here https://github.com/pollen-robotics/reachy/blob/master/software/reachy/io/ws.py). You can use HTTP, Ws, standard socket… You have full access from the Raspberry-Pi. I can help you write such a client/server if you do not see how this can be done. It’s on our roadmap to provide a standard API to let you interact with the robot remotely. I hope to have it in mid 2021.
  • Second, you can directly plug the Luos Gate in USB to your computer and install the Reachy software there (If you want the camera, you need to plug them as well).
1 Like

Thank you, Pierre,

I am interested in your API, I may help but I will wait for stable specifications.

In the meantime I am developing a very lightweight protocol (WS/TCP/UDP) like I have done for an experimental robot ( http://blaar.org/pinobo ). I may open the sources.

1 Like

Hi @arnaudblanchard,

I was just about to ask the same question! @pierre I am attempting your second suggestion (to connect the Luos Gate USB directly to my mac), but I cannot seem to detect the Luos Gate at all, and hence am not sure what to put in:

left_arm=parts.LeftArm(io='XXXX' 

to connect to the arm.
Any ideas? Thanks!

I managed to find a solution so I though to let the community know in case people face the same problem. Here’s what I did:

  1. I plugged in the module and ran
    ls -lha /dev/tty* > plugged.txt

  2. I unplugged the module and ran
    ls -lha /dev/tty* > unplugged.txt

  3. I then ran
    vimdiff plugged.txt unplugged.txt
    to find the difference between the 2 and hence identify what the luous module is called inside the /dev/ directory.

  4. There were two differences - cu.usbserial-DN05NM1I and one other. I tried them both and managed to establish a connection using `‘cu.usbserial-DN05NM1I’.

1 Like

Hi @ziadabass,

On your Mac, you could directly use:

left_arm=parts.LeftArm(io='/dev/cu.usbserial-*')

Bonjour Pierre,

Pourquoi pas ROS2 qui s’installe partout dont sur raspberry ( https://roboticsbackend.com/install-ros2-on-raspberry-pi ) et qui peut s’interfacer avec n’importe quoi ?

Arnaud

Hi @arnaudblanchard,

Yes absolutely!

We’ve actually recently announced that Reachy can now run ROS: https://medium.com/pollen-robotics/reachy-now-runs-ros-934dcef40c95

Our current working version is based on ROS1 Noetic but ROS2 compatibility is on its way!

Génial ! J’attends directement la version 2 alors :slight_smile: