I want to solve the problem of "Address already in use" in ROS TCP connection when running the demo "Pick-and-Place".

I’ve reproduced the “Pick-and-Place” demo available on Unity-Robotics-Hub.
I tried to reproduce the demo of “Pick-and-Place” published on Unity-Robotics-Hub, but I’m having trouble with “ROS-Unity Integration”.


Execution environment

OS: Ubuntu18.04

Unity: 2020.2.0b9

I have built the ROS environment with docker following the tutorial.


We will explain it in detail below.

This is the part of the ROS TCP connection to be configured in Unity.

In section 9, "Next, the ROS TCP connection needs to be created. Select Robotics → ROS Settings from the top menu bar.

I recommended the following. I am using Docker, so I entered “127.0.0.1” in ROS IP Address and Override Unity IP Address.


Find the IP address of your ROS machine. In Ubuntu, open a terminal window, and enter hostname -I.

If you are not running ROS services in a Docker container, replace the ROS IP Address value with the IP address of your ROS machine. is set to 10000.

If you are running ROS services in a Docker container, fill ROS IP Address and Override Unity IP Address with the loopback IP address 127.0.0.1, Otherwise, leave the Override Unity IP Address field empty.

177664-image-4.png

However, when I start Unity with the Play button, I get an error message in the console saying “Address already in use” and it stops.

The ROS side confirms that there is no problem.
You will see the following in the terminal.


//Terminal on the ROS side///

[INFO] [1615885069.373331]: Starting server on ///ROS side IP///:10000
ROS-Unity Handshake received, will connect to 127.0.0.1:5005

Then I read Troubleshooting.
The value in src/niryo_moveit/config/params.yaml is correctly the IP address of the ROS side.

I would be very grateful if you could give me some advice.

you should find IP address in your ubuntu. use hostname -I to find this IP address.

and use this address in unity.