Actionlib across multiple computers

asked 2017-10-05 12:58:06 -0600

mscott gravatar image

I'm working on a project where I need to separate out my simulator and navigation nodes across two different computers. When I run my actionlib python script the robot does not move... no errors are given, but no motion happens. I've tested actionlib script with this setup many times on a single computer several times and it works fine. Simulation time is active otherwise I get errors from the navigation package.

This is my setup. Computer 1:
ros master
Simulator (MORSE/Blender)
TF_node (to handle transformations)
actionlib script (waypoint navigation)

Computer 2:
ROS navigation package (move_base, ect.)

I've also tried switching the nodes across computers (i.e move the ros master to computer 2, actionlib to computer 2, ect.) but I need to have the navigation package and gmapping on a different computer than the simulator. If I open RVIZ and directly publish a nav_goal, the robot works fine and goes directly to the waypoint.

My question: Is there something obvious I'm missing with running actionlib across multiple computers? Since the system works when I run point and click on RVIZ I feel like most of the system is setup properly.


edit retag flag offensive close merge delete


Just to get things out of the way: all networking related configuration is correct? ROS_IP, ROS_MASTER_URI and friends all correctly set? (I know you write/imply that 'other stuff' works, but I've seen stranger things, so just asking).

gvdhoorn gravatar image gvdhoorn  ( 2017-10-05 13:43:25 -0600 )edit

Yeah those are all working. I can run nodes on one computer and echo the topics on the other, so I think they're configured properly

mscott gravatar image mscott  ( 2017-10-05 14:54:51 -0600 )edit

Have a look at the /move_base/goal and /move_base/current_goal topics. They should contain the coordinates the ROS navigation stack will try to move your robot to. If you see your move goals appearing then rules out a cross-machine comms issue.

M@t gravatar image M@t  ( 2017-10-05 21:08:17 -0600 )edit

From memory, RViz publishes directly to one of those topics, whereas the actionlib package uses a message/service method of communication. If Rviz works between machines but your actionlib script doesn't, publishing to those topics could be a work-around.

M@t gravatar image M@t  ( 2017-10-05 21:12:34 -0600 )edit

Those two topics do not echo anything. This is also true for the path topics. I get a 'no messages recieved and simulated time is active... is /clock being published?' message. /clock is being published.

mscott gravatar image mscott  ( 2017-10-05 21:16:06 -0600 )edit

Right, if you publish a goal between machines using Rviz, does that appear in either topic? (just checking to make sure).

M@t gravatar image M@t  ( 2017-10-05 21:20:42 -0600 )edit

When I was working with something similar I also couldn't send visualization_msgs across multiple machines. But I could send other types of ROS messages just fine.

l4ncelot gravatar image l4ncelot  ( 2017-10-06 06:55:44 -0600 )edit

Yes, the message is sent when using RVIZ. Something I noticed: the actionlib script does not work when use_sim_time = true when the full process is run on 1 computer. Is there something needed to have actionlib work with sim_time?

mscott gravatar image mscott  ( 2017-10-06 11:54:07 -0600 )edit