1、问题描述
最近在搞ros小车,我想将笔记本电脑通过ssh连接上车载电脑,从而在笔记本上控制小车,其实这也就是主从机的配置问题,但是当我执行roslaunch art_racecar rviz.launch命令的时候出现了InvalidURL: URL can’t contain control characters. '192.168.5.3‘的错误,很是郁闷。捣鼓了好久,最终从一篇博文中找到了解决的方法(原文在这),但是描述得不是很清楚,所以我在这再整理一下我的解决方法,大家在看我的这篇博文的时候一定要阅读这篇原文。也非常感谢罗总的帮忙,才那么顺利的解决的。
2、解决的方法
首先要说明的是,小车上的电脑是主机,笔记本电脑是从机,这个与原文是不同的,明白了这点才好办事,其次,一共需要改4个文件,分别为主机(笔记本电脑)的.bashrc文件和从机(ros小车)的.bashrc文件,最后2个分别是从机(笔记本电脑上)和主机的/etc/hosts(可以使用命令打开:sudo gedit /etc/hosts)。
假设主机(小车)的IP地址和hostname为:
1
IP地址:192.168.5.111
hostname为:AA
1
2
假设从机(笔记本电脑)的IP地址和hostname为:
1
IP地址:192.168.5.222
hostname为:BB
1
2
2.1、修改主机的.bashrc文件(小车)
这时小车接上显示屏,可以使用命令sudo gedit ~/.bashrc命令打开这个文件,在最后面添加这几行:
export ROS_HOSTNAME=主机的hostname
export ROS_MASTER_URI=http://主机的IP地址:11311
export ROS_IP=主机的IP地址
1
2
3
设置之后变为:
export ROS_HOSTNAME=AA
export ROS_MASTER_URI=http://192.168.5.111:11311
export ROS_IP=192.168.5.111
1
2
3
查看hostname的命令为
hostname
1
查看主机IP地址的命令
ifconfig
1
2.2 、修改主机的/etc/hosts文件
sudo gedit /etc/hosts
1
然后在最后一行上添加
从机的IP地址hostname(中间用空格隔开)
如:
192.168.5.222 BB
1
2
3
2.3、修改从机(笔记本电脑)上的.bashrc文件
打开.bashrc文件的命令如下
sudo gedit ~/.bashrc
1
修改的内容和修改主机上的差不多:
export ROS_HOSTNAME=从机的hostname
export ROS_MASTER_URI=http://主机的IP地址:11311(注释:’:11311‘必须一致)
export ROS_IP=从机的IP地址
1
2
3
设置之后为:
export ROS_HOSTNAME=BB
export ROS_MASTER_URI=http:/192.168.5.111:11311
export ROS_IP=192.168.5.222
1
2
3
2.4、修改从机(笔记本电脑)的hosts文件
可以用命令打开:
sudo gedit /etc/hosts
1
然后在最后一行上添加
主机的IP地址hostname(中间用空格隔开)
如:
192.168.5.111 AA
1
2
3
4、最后一步
完成以上配置之后先不要高兴得太早记得source文件.bashrc,命令如下:
source ~/.bashrc
1
然后关闭所有的终端,再重新打开才能在终端中生效,如果还是不行最后重启一下就可以了。
如果忘记在主机的/etc/hosts文件上添加从机的信息将会出现错误:Couldn’t find an AF_INET address for ·[从机的名字]。参考
【LINUX|笔记本控制机器人方法】注意:如果断开连接小车后,需要在自己的笔记本上运行master,需要将你设置的主从机配置语句屏蔽掉即可,否则是无法运行相关程序的,会在终端报错,错误的大概意思就是找不到master。
————————————————
版权声明:本文为CSDN博主「xzs520xzs」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xzs520xzs/article/details/112251727
推荐阅读
- Deepin20 LNMP环境搭建(又一个瞎折腾的经历)
- 嵌入式系统|嵌入式系统之bootloader简介
- Linux|MFGTools使用说明及详细分析,iMX6烧录,USB烧录
- linux|SD卡烧写Linux kernel——SD卡分区,并烧写uboot,kernel,DTB及filesystem
- Linux服务器开发|记录一次腾讯c/c++ linux后台开发岗面试经历(面试题含答案)
- OS|关于Linux下载工具
- 软件安装|虚拟机安装centos7
- 软件安装|centos7安装zookeeper
- 软件安装|centos7安装配置jdk8