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

ros multiple machines setup

asked 2015-10-26 06:40:36 -0600

updated 2015-10-27 08:41:15 -0600

Im using ROS Indigo on two Ubuntu 14.04 machines. I try to create a distributed system based on this but I get an error message. I want to run the core and data processor node on the desktop (host) and the hardware driver on the laptop (slave).

I did some major changes so I re-wrote the setup as follows:

On salve I created the file /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 "$@"

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

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):

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

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
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2015-10-26 08:06:24 -0600

Try <env name="ROS_MASTER_URI" value="http://193.226.17.132:11311"/>

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2015-10-26 06:40:36 -0600

Seen: 1,119 times

Last updated: Oct 27 '15