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

2 Likes

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:

Hi ! I saw you have a new version 2021 with ROS2. The mechanical parts seem identical, can I use the soft version 2021 for Reachy 2019 ( I guess the camera and some minor things will differ ) ? Or better, are you still planning to make a ROS2 version for Reachy 2019 ?

Thanks

Hi Arnaud,

We are shipping the first Reachy 2021 now. We are still in the transition phase and we will make more official announcement later. But let me give you some partial answers.

  • The soft version 2021 can be used on Reachy 2019 arms. To upgrade the arms, you need to re-flash all Luos board with new versions! They can be found on attached release of their repositories.
  • For the head it is more complicated. The electronics (camera and electronic control board) did change and thus the head is not compatible between the 2019 and 2021 versions.

We will not develop the ROS2 version for Reachy 2019 as this will be too hard to maintain two different versions for a small team like ours.
We are working on proposing soon an upgrade to transform a Reachy 2019 into a Reachy 2021.

Thank you therefore I use ROS1 but, I cannot find anymore the reachy_description project you are talking about in this tutorial: GitHub - aubrune/reachy_moveit_config: Integration of the Reachy robot in MoveIt for ROS 1

How should I do? Thank you

You mean this? GitHub - aubrune/reachy_description: URDF description for the Reachy robot

Ok thank you it works !

You should remove GitHub - pollen-robotics/reachy_moveit_config: Integration of the Reachy robot in MoveIt for ROS 1 or just make a link to the right github project because with google, or in this article: Medium we arrive in the wrong project which is confusing.

1 Like