ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

GeorgeMD's profile - activity

2020-04-20 13:28:05 -0500 received badge  Good Question (source)
2020-04-09 10:04:02 -0500 received badge  Nice Question (source)
2019-01-18 05:24:54 -0500 received badge  Student (source)
2018-08-06 22:15:24 -0500 received badge  Famous Question (source)
2018-07-27 03:11:37 -0500 commented answer How to have topics publish and subscribe both ways between host and docker container?

I marked this as the answer as it's true that only --net=host is what solved it after all. I left ROS_MASTER_URI and ROS

2018-07-27 03:09:54 -0500 received badge  Supporter (source)
2018-07-27 03:09:53 -0500 marked best answer How to have topics publish and subscribe both ways between host and docker container?

I have roscore running in docker. I have a bunch of topics, some are started by nodes inside the docker container, some are outside of the container, on host. I need some of these topics to subscribe to eachother. I can subscribe from host to topics that are inside docker and I can echo what's being published to them. But in the container I can't echo topics that are published on host.

For example, what I can do:
Inside docker: rostopic pub /dummy std_msgs/String "data: 'dummy text'" -r 10
On host: rostopic echo /dummy and I see dummy text being printed

What I can't do:
On host: rostopic pub /dummy std_msgs/String "data: 'dummy text'" -r 10
Inside docker: rostopic echo /dummy dummy text should be printed, but nothing is coming out

What I have tried:

  • --net=host, -e ROS_IP=172.17.0.1 and -e ROS_MASTER_URI=http://172.17.0.1:11311 in in docker run which made the first part work (publish topic in docker and echo from host)
  • modifiy /etc/hosts in docker container and on host
  • all sorts of combinations for ROS_IP, ROS_MASTER_URI and ROS_HOSTNAME
  • running roscore on host and setting ROS_IP, ROS_MASTER_URI and ROS_HOSTNAME accordingly

rostopic list works fine on host and in docker no matter where roscore runs. I can ping host from docker and vice versa. I also tested with netcat, both ways works fine, yet topics don't want to send data from host to docker.

In docker I have ros indigo (I can't decide what ros version is used) and on host I have melodic (I can install indigo if anyone thinks that might a problem).

UPDATE:
By using --net=host, ROS_IP=127.0.0.1 and ROS_MASTER_URI=http://localhost:11311 and running the subscriber from docker before the publisher from host I got it working. But this means subscriber must always run before publisher for my scripts to work.

2018-07-27 03:09:53 -0500 received badge  Scholar (source)
2018-07-27 03:09:48 -0500 commented question How to have topics publish and subscribe both ways between host and docker container?

See the UPDATE, ROS_MASTER_URI=http://localhost:11311 and ROS_IP=127.0.0.1 on host. And in docker, where I start roscore

2018-07-26 01:17:36 -0500 received badge  Notable Question (source)
2018-07-25 11:32:51 -0500 received badge  Popular Question (source)
2018-07-25 09:27:34 -0500 edited question How to have topics publish and subscribe both ways between host and docker container?

How to have topics publish and subscribe both ways between host and docker container? I have roscore running in docker.

2018-07-25 09:27:05 -0500 edited question How to have topics publish and subscribe both ways between host and docker container?

How to have topics publish and subscribe both ways between host and docker container? I have roscore running in docker.

2018-07-25 09:24:39 -0500 commented answer How to use Docker on a host together with non Docker machines (ROS)

Thanks, I got it working before I saw this. Now I am at a point where it only works if I run the subscriber in docker be

2018-07-25 07:40:26 -0500 edited question How to have topics publish and subscribe both ways between host and docker container?

How to have topics publish and subscribe both ways between host and docker container? I have roscore running in docker.

2018-07-25 07:40:26 -0500 received badge  Editor (source)
2018-07-25 07:39:15 -0500 edited question How to have topics publish and subscribe both ways between host and docker container?

How to have topics publish and subscribe both ways between host and docker container? I have roscore running in docker.

2018-07-25 07:38:14 -0500 asked a question How to have topics publish and subscribe both ways between host and docker container?

How to have topics publish and subscribe both ways between host and docker container? I have roscore running in docker.

2018-07-25 05:47:17 -0500 commented answer How to use Docker on a host together with non Docker machines (ROS)

Using --net=host, -e ROS_MASTER_IP=http://172.17.0.1:11311 and -e ROS_IP=172.17.0.1 I was able to echo on host a topic p