Ask Your Question

Revision history [back]

I'm working with a desktop (host machine) and a laptop (slave) both with Ubuntu 14.04 and ROS Indigo. I can launch a node on the slave from the host via a launch file.

On salve in /opt/ros/indigo/salve_env.sh:

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/user_salve/workspace/src
. /home/user_slave/workspace/devel/setup.sh
exec "$@"

in /home/user_slave/workspace/devel/setup.sh added at the end:

export ROS_MASTER_URI=http://host_IP:11311
export ROS_HOSTNAME=salve_IP

On host in /opt/ros/indigo/host_env.sh similarly load the setup from devel folder on host. (This might be wrong, details at the end of post). I added to the end of the file /home/user_host/workspace/devel/setup.sh:

export ROS_MASTER_URI=http://localhost:11311
export ROS_HOSTNAME=host_IP

Finally, I start a core on my host machine and launch this file:

<!-- mode:xml -->
<launch>
  <!-- This assumes roscore is running on this machine -->
  <env name="ROS_MASTER_URI" value="http://host_IP:11311"/>
  <machine name="desktop" address="host_IP" password="***" env-loader="/opt/ros/indigo/host_env.sh" default="true"/>
  <machine name="laptop" address="slave_IP" password="***" env-loader="/opt/ros/indigo/slave_env.sh"/>
 <!-- Web Camera controller node -->
 <node machine="laptop" pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen" respawn="true">
    <param name="width" type="int" value="1280" />
    <param name="height" type="int" value="720" />
    <param name="fps" type="int" value="15" />
    <param name="frame" type="string" value="wide_stereo" />
    <param name="auto_focus" type="bool" value="False" />
    <param name="focus_absolute" type="int" value="0" />  
    <param name="device" type="string" value="/dev/video1" />
    <param name="camera_info_url" type="string" value="file://$(find uvc_camera)/example.yaml" />
  </node>

 <!-- CAMERA NODES -->
 <node  machine="desktop"  pkg="viewpoint_estimation" type="viewpoint_estimation" name="viewpoint_estimation" output="screen" respawn="true">
    <param name=" calibration_file" type="string" value="$(find mobile_robot_system)/config/ost1280x720ML.txt" />
 </node> 
</launch>

The node on the salve starts and I can see the images from a web camera, but the node on the host doesn't start, and the error message is:

SUMMARY
========
PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.13
 * /uvc_camera/auto_focus: False
 * /uvc_camera/camera_info_url: file:///home/elod...
 * /uvc_camera/device: /dev/video1
 * /uvc_camera/focus_absolute: 0
 * /uvc_camera/fps: 15
 * /uvc_camera/frame: wide_stereo
 * /uvc_camera/height: 720
 * /uvc_camera/width: 1280
 * /viewpoint_estimation/calibration_file: /home/elod/TE_wor...
MACHINES
 * desktop
 * laptop
NODES
  /
    uvc_camera (uvc_camera/uvc_camera_node)
    viewpoint_estimation (viewpoint_estimation/viewpoint_estimation)
ROS_MASTER_URI=http://localhost:11311
core service [/rosout] found
ERROR: cannot launch node of type [viewpoint_estimation/viewpoint_estimation]: can't locate node [viewpoint_estimation] in package [viewpoint_estimation]
[slave_IP-0]: launching nodes...
[slave_IP-0]: ROS_MASTER_URI=http://host_IP:11311
[slave_IP-0]: process[uvc_camera-1]: started with pid [8773]
[slave_IP-0]: ... done launching nodes

By hand I can run the node on host, but while I double tab for auto-fill the name of the pkg I get the following error: rosrun view[rospack] Warning: error while crawling /home/user_host: boost::filesystem::status: Permission denied: "/home/user_host/.gvfs" point_estimation

I'm working with a desktop (host machine) and a laptop (slave) both with Ubuntu 14.04 and ROS Indigo. I can launch a node on the slave from the host via a launch file.

On salve in /opt/ros/indigo/salve_env.sh:

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/user_salve/workspace/src
. /home/user_slave/workspace/devel/setup.sh
exec "$@"

in /home/user_slave/workspace/devel/setup.sh added at the end:

export ROS_MASTER_URI=http://host_IP:11311
export ROS_HOSTNAME=salve_IP

On host in /opt/ros/indigo/host_env.sh similarly load the setup from devel folder on host. (This might be wrong, details at the end of post). I added to the end of the file /home/user_host/workspace/devel/setup.sh:

export ROS_MASTER_URI=http://localhost:11311
export ROS_HOSTNAME=host_IP

Finally, I start a core on my host machine and launch this file:

<!-- mode:xml -->
<launch>
  <!-- This assumes roscore is running on this machine -->
  <env name="ROS_MASTER_URI" value="http://host_IP:11311"/>
  <machine name="desktop" address="host_IP" password="***" env-loader="/opt/ros/indigo/host_env.sh" default="true"/>
  <machine name="laptop" address="slave_IP" password="***" env-loader="/opt/ros/indigo/slave_env.sh"/>
 <!-- Web Camera controller node -->
 <node machine="laptop" pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen" respawn="true">
    <param name="width" type="int" value="1280" />
    <param name="height" type="int" value="720" />
    <param name="fps" type="int" value="15" />
    <param name="frame" type="string" value="wide_stereo" />
    <param name="auto_focus" type="bool" value="False" />
    <param name="focus_absolute" type="int" value="0" />  
    <param name="device" type="string" value="/dev/video1" />
    <param name="camera_info_url" type="string" value="file://$(find uvc_camera)/example.yaml" />
  </node>

 <!-- CAMERA NODES -->
 <node  machine="desktop"  pkg="viewpoint_estimation" type="viewpoint_estimation" name="viewpoint_estimation" output="screen" respawn="true">
    <param name=" calibration_file" type="string" value="$(find mobile_robot_system)/config/ost1280x720ML.txt" />
 </node> 
</launch>

The node on the salve starts and I can see the images from a web camera, but the node on the host doesn't start, and the error message is:

SUMMARY
========
PARAMETERS
 * /rosdistro: indigo
 * /rosversion: 1.11.13
 * /uvc_camera/auto_focus: False
 * /uvc_camera/camera_info_url: file:///home/elod...
 * /uvc_camera/device: /dev/video1
 * /uvc_camera/focus_absolute: 0
 * /uvc_camera/fps: 15
 * /uvc_camera/frame: wide_stereo
 * /uvc_camera/height: 720
 * /uvc_camera/width: 1280
 * /viewpoint_estimation/calibration_file: /home/elod/TE_wor...
MACHINES
 * desktop
 * laptop
NODES
  /
    uvc_camera (uvc_camera/uvc_camera_node)
    viewpoint_estimation (viewpoint_estimation/viewpoint_estimation)
ROS_MASTER_URI=http://localhost:11311
core service [/rosout] found
ERROR: cannot launch node of type [viewpoint_estimation/viewpoint_estimation]: can't locate node [viewpoint_estimation] in package [viewpoint_estimation]
[slave_IP-0]: launching nodes...
[slave_IP-0]: ROS_MASTER_URI=http://host_IP:11311
[slave_IP-0]: process[uvc_camera-1]: started with pid [8773]
[slave_IP-0]: ... done launching nodes

By hand I can run the node on host, but while I double tab for auto-fill the name of the pkg I get the following error: error:

 rosrun view[rospack] Warning: error while crawling /home/user_host: boost::filesystem::status: Permission denied: "/home/user_host/.gvfs"
point_estimation 

point_estimation