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

Revision history [back]

click to hide/show revision 1
initial version

Ok, solved it.

So the env-loader="/opt/ros/kinetic/env.sh" in my launch file was telling the ROS to run the default ROS setup on the remote machine (pi). Two problems with this: firstly, my workspace (~/catkin_ws) was not in ROS_PACKAGE_PATH, and secondly, the remote was using the hostname pi, rather than pi.local, as our office DHCP/DNS server refers to the pi machine as. To solve these problems, I created the following at ~/catkin_ws/env.sh on the pi:

#!/bin/bash
source /opt/ros/kinetic/setup.bash
source /home/ethan/catkin_ws/devel/setup.bash
export ROS_HOSTNAME="pi.local"
exec "$@"

And modified the launch file on the master to read env-loader="/home/ethan/catkin_ws/env.sh"

So now, when pi is used as a remote, first the ROS installation and my workspace are added to the ROS_PACKAGE_PATH, then the ROS_HOSTNAME environment variable is manually set to pi.local.

Everything works now. Hopefully this will be of use to someone.