【遇】ROS中主从机通信环境测试中的 roscore 命令的 问题及解决方法

本文记录了在Turtlebot3环境下,作者在Ubuntu虚拟机和树莓派上配置ROS时遇到的问题,包括权限问题和网络连接问题,提供了相应的解决方法,如修改权限和配置ROS_MASTER_URI等。
摘要由CSDN通过智能技术生成

ROS配置问题记录

本文实验平台为Turtlebot3-waffle_pi
(1)电脑PC中安装了一个Ubuntu16.04 64位的虚拟机;
(2)树莓派3B,安装的是Ubuntu mate16.04 for raspeberry,是armhf架构的,在官网上16.04版本,专为树莓派的系统只找到armhf架构的。
**【注】**配置好前期环境后(环境+主从机IP)配置环境教程地址,配置过程也遇到些问题,主要原因是由于“地方网络”的原因,需要换源(可能换的源不合适,就方法是重新换其他的,后续有机会介绍下环境配置问题),当然最好的解决方案是通过梯子,规避“地方网络”原因,会解决掉很多不必要的麻烦。
问题1
在执行roscore时出现以下错误信息:

Traceback (most recent call last):
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/__init__.py", line 257, in main
    write_pid_file(options.pid_fn, options.core, options.port)
  File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/__init__.py", line 110, in write_pid_file
    with open(pid_fn, "w") as f:
IOError: [Errno 13] Permission denied: '/home/hht/.ros/roscore-11311.pid'

问题1解决方法
网上有很多方法,我试的一种方法是来自博客园(源-解决方案出处),分析错误信息中有Permission denied,一般为权限问题,设置sudo chmod 777 -R ~/.ros/,表示对.ros文件下的所有文件及子目录中文件(递归)赋予 可读、可写、可执行 权限。然后再 执行 roscore
问题2
执行 roscore 后,可能出现以下错误

... logging to /home/rasp/.ros/log/5169ab92-f97c-11ee-bf9e-000c29861846/roslaunch-rasp-virtual-machine-2643.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.

Unable to contact my own server at [http://192.168.0.179:46235/].
This usually means that the network is not configured properly.

A common cause is that the machine cannot connect to itself.  Please check
for errors by running:

	ping 192.168.0.179

For more tips, please see

	http://www.ros.org/wiki/ROS/NetworkSetup

The traceback for the exception was written to the log file

问题2解决方法
(1)检查主机和从机之间是否能够互相 ping通,主从机IP地址用ifconfig查询。
(2)检查是否在主机和从机中的家目录下.bashrc文件末尾添加了下面语句:
主机(PC端)

export ROS_MASTER_URI=http://主机IP地址:11311
export ROS_HOSTNAME=主机IP地址

【一定要注意】:
主机端的添加语句中的IP地址都是主机自身IP地址
主机端的添加语句中的IP地址都是主机自身IP地址
主机端的添加语句中的IP地址都是主机自身IP地址
(。。。重要的事说三遍)

从机(树莓派端)

export ROS_MASTER_URI=http://主机IP地址:11311
export ROS_HOSTNAME=从机IP地址

(3)添加好后。分别在主机和从机上执行 source ~/.bashrc,启动ros相配配置文件(每次开机都需重复启动)。
(4)此时,再执行 roscore,主机通信环境就配置好了,主机界面如下所示
主机启动成功
从机执行rostopic list,查看是否订阅到主机发布的话题,若出现如下两条语句

/rosout
/rosout_agg

到这就表示主-从机通信环境配好。

本文所采用方法可能不能解决所有表面看上去与本文问题相同的问题(因为造成相同问题的原因有很多,解决方法并不一致)。
若本文对您有用,欢迎评论区留言,以供往后相同问题的 读者 看到 留言后(产生希望),再按此文操作。若无用 或 为您提供思路 ,也请在评论区讨论,共同学习,以供往后读者 作参考。

  • 23
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值