ROS学习--分布部署环境变量配置

关于ROS环境变量设置比较详细的文章可参考 http://www.mamicode.com/info-detail-915039.html
首先可看下关于本机的ROS环境变量配置
$ printenv | grep ROS
显示如下
ROS_ROOT=/opt/ros/kinetic/share/ros
ROS_PACKAGE_PATH=/home/peng/catkin_ws/src:/opt/ros/kinetic/share:/opt/ros/kinetic/stacks
ROS_MASTER_URI=http://localhost:11311
ROSLISP_PACKAGE_DIRECTORIES=/home/peng/catkin_ws/devel/share/common-lisp
ROS_DISTRO=kinetic
ROS_ETC_DIR=/opt/ros/kinetic/etc/ros
如果需要远程链接,
需要在远程服务器将ROS_MASTER_URI变为启动roscore的地址,即master地址
比如export ROS_MASTER_URI=http://192.168.1.4:11311
设定master地址之后,启动服务的时候,发现在master服务器上执行rosnode list可见这个服务,但是调用其服务,不能链接。
所以在远程机器上的环境变量还需要添加远程服务器自己的IP(否则默认是主机名,但master根据主机名找不到远程服务器)
所以需要 export ROS_IP=192.168.1.2
ROS_ROOT=/opt/ros/kinetic/share/ros
ROS_PACKAGE_PATH=/home/peng/catkin_ws/src:/opt/ros/kinetic/share:/opt/ros/kinetic/stacks
ROS_MASTER_URI=http://192.168.1.4:11311
ROSLISP_PACKAGE_DIRECTORIES=/home/peng/catkin_ws/devel/share/common-lisp
ROS_DISTRO=kinetic
ROS_IP=192.168.1.2
ROS_ETC_DIR=/opt/ros/kinetic/etc/ros


再次在远程服务器上启动服务,一切工作正常。

你可能感兴趣的:(机器人)