ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
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.