编辑1:
所有工作都是在基于以太网的连接。我通过运行简单的教程进行了实验。请注意,在第一个实验中我在raspi上运行了roscore,并且“ rqt_graph”和“ rosnode list”命令在群集上运行良好。在第二次运行中,我在群集上运行了roscore,并通过在raspi上运行“ rqt_graph”和
“ rosnode list”再次进行了相同的实验,并且我能够在两个实验中看到所有rosnode。这是/.bashrc文件的屏幕截图。
#1 楼
与ROS master通讯听起来您需要使用用户定义的环境变量指向ROS。我在
~/.bashrc
文件中定义了一组变量,这些变量定义了ROS
的位置。这是我在运行roscore
的设备上定义的:# ROs
source /opt/ros/kinetic/setup.bash
# SOurce the local workspace
source /home/$USER/catkin_ws/devel/setup.bash
# Grab the machine IP addresses
machine_ip=(`hostname -I`)
rosport=':11311'
rosmasterbegin='http://'
# Now we set the ip location for roscore
export ROS_MASTER_URI=$rosmasterbegin${machine_ip[0]}$rosport
# This is the hostname of the current machine.
export ROS_HOSTNAME=${machine_ip[0]}
# This is the ROS distribution that we are running
export ROS_DISTRO=kinetic
# Sometimes you need to set ROS_IP for transforms and the parameter server
# https://answers.ros.org/question/163556/how-to-solve-couldnt-find-an-af_inet-address-for-problem/
export ROS_IP=${machine_ip[0]}
我建议您将Raspi上的
ROS_MASTER_URI
变量设置为运行roscore
的集群到集群上hostname -I
的输出。确保您使用正确的IP地址,因为您可能有很多地址(WiFi,以太网等)。仅仅因为您可以ping网络上的另一台计算机并不意味着可以找到ROS。如果您可以在问题中发布echo $ROS_MASTER_URI
和echo $ROS_HOSTNAME
的输出,那将使更多的人可以为您提供帮助。我怀疑您使用的是默认环境变量,而它们对您不起作用。我建议您签出此链接以获取有关ROS环境变量的更多信息。评论
$ \ begingroup $
我的rqt_graph和ros_node列表工作正常,所以我认为我的网络没有任何错误。当roscore在Raspi上运行时,我通过在远程PC上运行rqt_node来检查它,反之亦然。我检查了日志文件,它显示以下输出。我也运行了tcpdump,但是我没有确切的数据包信息(因为我在夏天正在研究它,所以我不能回到办公室来获取那些文件),但是问题与RPC XML服务器有关。
$ \ endgroup $
– DT1729
19年8月11日在22:05
$ \ begingroup $
哪台机器运行了这些命令?对于多机通信,您应该始终提及运行rqt_graph和rosnode列表或rostopic列表的机器。我不得不说,使用ROS来启动和运行Pis也是一个不平凡的过程。另外,这是Wifi还是以太网?更多信息将不胜感激。您的〜/ .bashrc文件是什么样的?
$ \ endgroup $
–robotsfoundme
19年8月11日在22:10
$ \ begingroup $
请检查问题中的编辑1。
$ \ endgroup $
– DT1729
19年8月11日在22:38
$ \ begingroup $
我看到您没有在〜/ .bashrc文件中采购本地catkin工作区。你在码头上吗?换句话说,您需要运行以下命令:source /path/to/my/catkin/workspace/devel/setup.bash
$ \ endgroup $
–robotsfoundme
19年8月11日在23:04
$ \ begingroup $
是的,当我在集群上运行orb slam节点时,但是我使用的是无处不在的机器人技术为树莓派提供的操作系统。优点是该节点已预先安装在操作系统中。注意:我在树莓派和群集上都使用了类似的.bashrc文件。
$ \ endgroup $
– DT1729
19年8月11日在23:07
评论
如果需要,请索取任何规格或我错过了任何规格!