北京网站设计公司地址,点击图片进入网站怎么做,网站保定网站建设多少钱,网上给别人做网站最近工作中需要用到多机通讯#xff0c;这里稍微总结一下使用方法。
目录
一、网络配置
二、修改两个设备的hosts文件
三、修改两个ros设备的.bashrc
四、launch文件中给节点设定运行的设备 一、网络配置
首先确保两个ros设备连接到同一局域网下#xff0c;然后查询两个…最近工作中需要用到多机通讯这里稍微总结一下使用方法。
目录
一、网络配置
二、修改两个设备的hosts文件
三、修改两个ros设备的.bashrc
四、launch文件中给节点设定运行的设备 一、网络配置
首先确保两个ros设备连接到同一局域网下然后查询两个设备的在这个局域网内的IP地址,运行
ifconfig
这里举个例子主机的IP地址为192.168.1.127从机的IP地址为192.168.1.126之后可测试一下能否互相ping通成功后进行下一步。
二、修改两个设备的hosts文件
这里需要在主机和从机的hosts文件中分别添加对方的IP和用户名。
主机端
192.168.1.126 ros_cv
从机端
192.168.1.127 camar
三、修改两个ros设备的.bashrc
在ros的使用中.bashrc是一个比较常见的配置文件主要是修改终端的配置。这里我们需要对两设备的.bashrc进行修改。
主机端
export ROS_MASTER_URIhttp://192.168.1.127:11311
export ROS_HOSTNAME192.168.1.127
从机端
export ROS_MASTER_URIhttp://192.168.1.127:11311
export ROS_HOSTNAME192.168.1.126 这个设置使得两个设备的 ROS_MASTER_URI统一为主机上的地址从而让从机可以和主机的roscore通讯。
但是需要注意这样从机的roscore就不能运行了如需运行把这两行注释掉即可。
完成上述设置后双端的topic和节点就可以互相交流了可以用小海龟简单试一下。
一遍成功的ROS主从机详细配置_一遍成功ros-CSDN博客
四、launch文件启动两个设备上的节点
首先需要配置ssh密钥使主机能够用ssh远程访问从机因为ros是通过ssh访问其他设备启动节点的。这个方法可以参考以下链接
如何在 Ubuntu 20.04 上设置 SSH 密钥_ubuntu ssh key-CSDN博客
过去几天了我记不清了应该是只要在主机上运行
ssh-keygen
生成密钥然后同样在主机上运行
ssh-copy-id usernameremote_hostusernameremote_host是从机的用户名和ip地址这样似乎就完成了似乎。
然后即可用launch一次启动包含在两个设备上的节点可以参考以下launch语法。
!-- 远程ros_cv机器上的 node --
machine namecv_server address192.168.1.126 userros_cv env-loader/home/ros_cv/ros_remote_env.sh /
!-- rgb-yolo节点 --
node machinecv_server pkgvisual_tools typedrone_check_yolo_d435i.py namedrone_check_yolo outputscreen requiredtrue /如上所示首先在launch中添加一个词条machineaddress设定为从机的IP地址user设定为从机的用户名也有一些大佬通过添加password词条使得ssh不需要进行密钥的配置但是我没测试成功。
在roslaunch中启动远程节点的方法_ros脚本启动远程节点-CSDN博客
对于env-loader这个词条则需要在从机上添加一个.sh文件
#!/bin/bash
export ROSLAUNCH_SSH_UNKNOWN1
export ROS_MASTER_URIhttp://192.268.1.127:11311
source /opt/ros/noetic/setup.bash
source ~/catkin_ws/devel/setup.bash
export ROS_HOSTNAME192.168.1.126
exec $其中ROS_MASTER_URI和ROS_HOSTNAME分别包括主机和从机的IP地址和第三部分一致。
然后再node的词条中添加一个machine“machine name”的词条就大功告成了。