我正在使用无所不在的机器人Raspberry Pi 图像的RPi 3B+,这是Ubuntu和ROS运动。我的基本计算机正在运行Ubuntu18.04,并安装了ROS旋律。我在基本PC中创建了subo_base工作区,在RPi中创建了subo_rpi工作区(通过ssh评估RPi )。然后,我在基本PC和RPi中创建了一个包,并在每个包中添加了发行者和订阅者(http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28python%29)文件。当我从RPi运行发布服务器时,基本PC可以订阅,但是当我从基本PC发布时,RPi不会显示任何输出,并且仍然会停滞不前(即使主题在使用rostopic list的RPi上是可见的)。
其中一些代码用于基本PC。
aakash@aakash:~$ mkdir -p ~/subo_base/src
aakash@aakash:~$ cd ~/subo_base/
aakash@aakash:~/subo_base$ catkin_make
aakash@aakash:~/subo_base$ source devel/setup.bash
aakash@aakash:~/subo_base$ echo $ROS_PACKAGE_PATH
aakash@aakash:~/subo_base$ cd ~/subo_base/src/
aakash@aakash:~/subo_base/src$ catkin_create_pkg motion_plan std_msgs rospy roscpp连接到RPi
aakash@aakash:~/subo_base/src/motion_plan/scripts$ export ROS_MASTER_URI=http://ubiquityrobot.local:11311
aakash@aakash:~/subo_base/src/motion_plan/scripts$ export ROS_IP='hostname -I'此外,我能够通过ssh scp将文件从基本PC传输到基本PC,所以我猜netwkr可能不是问题吗?
发布于 2019-12-30 15:27:43
问题很可能是主机名解析和/或ROS网络变量配置。
我不喜欢在变量中使用主机名,所以我将只使用IP给出示例。
而且,'hostname -I'显然不适合在所有情况下设置ROS_IP变量。所以这也可能是你问题的根源之一。
从主机名手册页
-I,-全ip地址> 显示主机的所有网络地址。此选项枚举所有网络接口上的所有配置地址。省略了回环接口和IPv6链路本地地址.与选项-i相反,此选项不依赖于名称解析。不要对输出的顺序做任何假设。
您将希望使用任何您需要的特定ip地址,所以只需使用该地址或找到更好的方法来确定要设置的ip地址。echo $ROS_IP或printenv | grep ROS将告诉您当前设置的变量是什么,这样您就可以验证它的设置是否正确。
为了获得最起码的证据来证明事情正在进行,您可以尝试以下方法:
假设您的RPi ip为192.168.0.2,PC ip为192.168.0.3
您将需要决定哪台机器将是主计算机,在本例中,我将假设PC将是主计算机。
在PC上的终端中,运行以下命令: 在不同的终端运行中使用
roscore(用它代替订阅服务器/发布节点来测试是否有效)rostopic pub /test/topic std_msgs/String 'Hello World from PC' -r 1现在位于RPi运行的SSH终端上:export ROS_MASTER_URI=http://192.168.0.3:11311 && export ROS_IP=192.168.0.2现在您应该能够从SSH窗口回显在PC上发布的主题。rostopic echo /test/topicctrl+c退出回显,您可以尝试在RPi上发布如下消息:rostopic pub /test2/topic std_msgs/String 'Hello World from RPi' -r 1现在在PC上打开一个新的终端,并尝试从RPi中响应这个主题,任何来自ROS安装空间的终端(通常是source /opt/ros/kinetic/setup.bash)都应该可以工作:rostopic echo /test2/topic
发布于 2022-04-08 19:31:17
ROS1
Machine1主服务器
roscore,但在配置完成之前不要运行它。192.168.1.10的IP。1-在终点站运行以下命令:
1.1- export ROS_MASTER_URI=http://192.168.1.10:11311.
1.2- export ROS_IP=192.168.1.10.
现在,运行roscore。
Machine2从机
roscore。192.168.1.15。1-在终点站运行以下命令:
1.1- export ROS_MASTER_URI=http://192.168.1.10:11311.
1.2- export ROS_IP=192.168.1.15.
2-现在,你已经和大师相连了。
ROS2
ROS2将在没有任何配置的情况下在局域网上填充信息。
https://stackoverflow.com/questions/59511691
复制相似问题