当前位置:网站首页>ROS学习---远程启动ROS节点
ROS学习---远程启动ROS节点
2020-11-07 20:56:00 【Coxhuang】
文章目录
- 远程启动ROS节点
- #1 环境
- #2 需求
- #3 验证前提条件
- #3.1 验证免密登录
- #3.2 验证单机ros发布订阅
- #4 开始
- #4.1 配置
- #4.1.1 pc-master
- #4.1.2 pc-slave2
- #4.2 本地主机脚本
- #4.3 启动
- #4.1 配置
- #5 报错
- #5.1 not found in known_hosts
- #5.2 TypeError: 'NoneType' object is not callable
远程启动ROS节点
#1 环境
Ubuntu 16.04
机器配置 :
pc-master 192.168.3.230 本地 pc-slave2 192.168.3.232 远程
前提条件:
1. 可以在两台机器上实现单机的ROS发布和订阅
2. 两台机器可以免密登录
#2 需求
- 在实际应用中, 不同的功能会放在不同的服务器上
- 需要订阅不同服务器上的topic
#3 验证前提条件
#3.1 验证免密登录
两台服务器可以相互免密登录
具体免密登录教程 : https://blog.csdn.net/Coxhuang/article/details/106971890
#3.2 验证单机ros发布订阅
这里以pc-slave2服务器为例(因为后面要远程启动的也是pc-slave2上的节点)
talker :
listener :
#4 开始
**接下来, 我们要在pc-master服务区上启动远程服务器pc-slave2的talker节点 **
#4.1 配置
#4.1.1 pc-master
sudo vim /etc/hosts
在/etc/hosts文件中添加一下内容 :
192.168.3.230 pc-master 192.168.3.232 pc-slave2
sudo vim ~/.bashrc
在~/.bashrc中添加一下内容 :
export ROS_IP="192.168.3.230" export ROS_HOSTNAME=pc-master export ROS_MASTER_URI=http://pc-master:11311 export ROSLAUNCH_SSH_UNKNOWN=1
#4.1.2 pc-slave2
sudo vim /etc/hosts
在/etc/hosts文件中添加一下内容 :
192.168.3.230 pc-master 192.168.3.232 pc-slave2
sudo vim ~/.bashrc
在~/.bashrc中添加一下内容 :
export ROS_HOSTNAME=pc-slave2 export ROS_MASTER_URI=http://pc-master:11311 export ROSLAUNCH_SSH_UNKNOWN=1
sudo vim /opt/ros/kinetic/trunk_evn.sh
新增trunk_evn.sh文件
#!/bin/sh export ROS_IP=192.168.3.232 export ROS_HOSTNAME=pc-slave2 . /home/trunk/work/test/testworkspace/devel/setup.sh exec "$@"
sudo chmod 777 trunk_evn.sh
#4.2 本地主机脚本
在本地pc-master的package中编写launch脚本
vim /home/trunk/work/test/testworkspace/src/testpackage/launch/test.launch
<launch> <machine name="pc-slave2" address="192.168.3.232" user="trunk" env-loader="/opt/ros/kinetic/trunk_evn.sh"></machine> <node machine="pc-slave2" name="talker" pkg="testpackage" type="talker.py" output="screen" ></node> </launch>
#4.3 启动
roslaunch testpackage test.launch
#5 报错
#5.1 not found in known_hosts
... logging to /home/trunk/.ros/log/84cf4482-b84f-11ea-9d63-000c297ff566/roslaunch-pc-master-3868.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB. started roslaunch server http://pc-master:32881/ remote[192.168.3.232-0] starting roslaunch remote[192.168.3.232-0]: creating ssh connection to 192.168.3.232:22, user[trunk] /usr/lib/python2.7/dist-packages/Crypto/Cipher/blockalgo.py:141: FutureWarning: CTR mode needs counter parameter, not IV self._cipher = factory.new(key, *args, **kwargs) remote[192.168.3.232-0]: failed to launch on pc-slave2: Unable to establish ssh connection to [[email protected]:22]: Server u'192.168.3.232' not found in known_hosts
解决思路 :
- 看日志
根据日志报错的提示来修改python底层源码,没有效果,日志显示, ros依然是运行在python2.7上,试着将ros运行在Python3上
- 把系统默认Python替换成Python3
sudo rm -rf /usr/bin/python sudo ln -s /usr/bin/python3 /usr/bin/python
2. 安装ros的编译基础软件包
sudo apt-get install python3-rosdep python3-rosinstall-generator python3-wstool python3-rosinstall build-essential sudo pip3 install catkin_pkg
3. 安装软件包依赖
rosdep install --from-paths src --ignore-src --rosdistro kinetic -y sudo apt-get install libtbb-dev python3-pyqt5 sudo pip3 install empy numpy defusedxml netifaces # 修复 16.04 libboost_python3找不到的问题 sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_python-py35.so /usr/lib/x86_64-linux-gnu/libboost_python3.so
4. 完美解决
#5.2 TypeError: ‘NoneType’ object is not callable
修改Python底层代码
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
版权声明
本文为[Coxhuang]所创,转载请带上原文链接,感谢
https://cloud.tencent.com/developer/article/1744579
边栏推荐
- 你可能不知道的Animation动画技巧与细节
- [original] the influence of arm platform memory and cache on the real-time performance of xenomai
- 30岁后,你还剩下什么?
- 凯撒密码实现
- laravel8更新之维护模式改进
- 我是如何失去团队掌控的?
- In the age of screen reading, we suffer from attention deficit syndrome
- Git code submission operation, and git push prompt failed to push some refs'xxx '
- static+代码块+多态+异常
- Summary of the resumption of a 618 promotion project
猜你喜欢
洞察——风格注意力网络(SANet)在任意风格迁移中的应用
awk实现类sql的join操作
C语言I博客作业03
Annual salary of 900000 programmers is not as good as 3800 civil servants a month? How to choose between stability and high income?
The CPU does this without the memory
The most hard core of the whole network explains the computer startup process
If you want to forget the WiFi network you used to connect to your Mac, try this!
来自不同行业领域的50多个对象检测数据集
Win10官方1909版本无法打开windows安全中心中病毒和威胁防护的实时保护解决方案。
C语言Ⅰ博客作业03
随机推荐
PHP security: the past and present of variables
C语言Ⅰ博客作业03
Vscode configuration
graph generation model
AFO
Application and principle of handlermethodargumentresolver
技术总监7年自述——如何选择一家好公司
工作1-3年的程序员,应该具备怎么样的技术能力?该如何提升?
在pandas中使用pipe()提升代码可读性
Let you have a deep understanding of gitlab CI / CD principle and process
华为HCIA笔记
Share several vs Code plug-ins I use everyday
你可能不知道的Animation动画技巧与细节
使用“1”个参数调用“DownloadString”时发生异常:“操作超时”
How to think in the way of computer
统计文本中字母的频次(不区分大小写)
Ac86u KX Online
阿里terway源码分析
年薪90万程序员不如月入3800公务员?安稳与高收入,到底如何选择?
Code Review最佳实践