【turtlebot】turtlebot运行报错解决方案

来源:互联网 发布:java sftp 断点续传 编辑:程序博客网 时间:2024/05/05 11:34

一、

【问题描述】:

博主将turtlebot_node.py里的has_gyro值改为False,再用cp命令将之替换掉了/opt/ros/indigo/lib里的turtlebot_node.py,随后不久出现了以下问题

连上turtlebot运行下列语句

$ roslaunch turtlebot_bringup minimal.launch

卡在如下位置:

[ INFO] [1445311453.590191542]: Zeroconf: service successfully established [turtlebot][_ros-master._tcp][11311]/opt/ros/indigo/lib/python2.7/dist-packages/bondpy/bondpy.py:114: SyntaxWarning: The publisher should be created with an explicit keyword argument 'queue_size'. Please see http://wiki.ros.org/rospy/Overview/Publishers%20and%20Subscribers for more information.  self.pub = rospy.Publisher(self.topic, Status)/opt/ros/indigo/lib/python2.7/dist-packages/bondpy/bondpy.py:114: SyntaxWarning: The publisher should be created with an explicit keyword argument 'queue_size'. Please see http://wiki.ros.org/rospy/Overview/Publishers%20and%20Subscribers for more information.  self.pub = rospy.Publisher(self.topic, Status)

如下图:
这里写图片描述

【解决方案】:

【补充】经过验证,如果没有source turtlebot的工作空间运行minimal.launch的时候就会出现卡在上图的情况,解决办法是在.bashrc末尾加入source语句:

$ gedit ~/.bashrc

然后在.bashrc末尾加入如下语句,注意顺序

$ source ~/turtlebot/devel/setup.bash

——2015.10.23


【订正】:以下重装ROS的方案不是解决前述报错的最佳方案,如遇以上错误请按照2015.10.23补充说明修改。以下内容仅为重装ROS及Turtlebot包的参考

由于目前ROS下还没有办法方便的将一个工作空间中的所有包同时卸载,除非逐个找出turtlebot工作空间中的包挨个卸载。多方询问未果之后只得重装ROS,这样turtlebot之类的包也将同时卸载。

(1)卸载ROS并重装ROS

因为我是用apt-get方式安装ROS的,卸载使用如下命令:

$ sudo apt-get remove ros-*

然后按照如下安装教程重新安装ROS:
http://wiki.ros.org/cn/indigo/Installation/Ubuntu

(2)重装turtlebot包

接着安装turtlebot所需要的三个工作空间(rocon、kobuki、turtlebot):
http://wiki.ros.org/turtlebot/Tutorials/indigo/Turtlebot%20Installation
安装完之后进行如下配置:
运行下面命令在~/.bashrc中加入环境变量

# For a source installationecho "source ~/turtlebot/devel/setup.bash" >> ~/.bashrc

我的平台是irobot的create,深度摄像头采用的是Kinect,所以按照create base的方法配置环境变量(http://wiki.ros.org/turtlebot/Tutorials/indigo/Create%20Base)
在~/turtlebot/devel/setup.bash中添加如下环境变量:

# Export the turtlebot variablesexport TURTLEBOT_BASE=createexport TURTLEBOT_STACKS=circlesexport TURTLEBOT_3D_SENSOR=kinectexport TURTLEBOT_SERIAL_PORT=/dev/ttyUSB0

配置好环境变量之后再次运行

$ roslaunch turtlebot_bringup minimal.launch

各节点正常运行

【总结】

如果在输入roslaunch turt 然后按Tab键补全的时候出现如下警告:

siat@ThinkPad-siat:~$ roslaunch turt[rospack] Warning: error while crawling /home/siat: boost::filesystem::status: Permission denied: "/home/siat/.gvfs"le

如下图:
这里写图片描述
有一个Warning,后面出现了补全的结果“le”,虽然这个警告不影响补全的效果,但还是需要注意的

解决这个问题的办法就是注销计算机重新登录Ubuntu
然后重开一个终端再次运行minimal.launch

$ roslaunch turtlebot_bringup minimal.launch

此时补全功能不再警告Warning
或者运行如下命令:

$ umount ~/.gvfs$ rm -rf .gvfs/

PS:目前我常用的包只有turtlebot,所以我的.bashrc文件source语句比较少,它们的顺序是这样的(下面是.bashrc文件末尾的截图):
这里写图片描述

二、

【问题描述】

运行$ roslaunch turtlebot_dashboard turtlebot_dashboard.launch 遇到如下报错

RosPluginProvider.load(kobuki_dashboard/KobukiDashboard) exception raised in __builtin__.__import__(kobuki_dashboard.dashboard, [KobukiDashboard]):Traceback (most recent call last):  File "/opt/ros/indigo/lib/python2.7/dist-packages/rqt_gui/ros_plugin_provider.py", line 77, in load    module = __builtin__.__import__(attributes['module_name'], fromlist=[attributes['class_from_class_type']], level=0)  File "/home/siat/kobuki/src/kobuki_desktop/kobuki_dashboard/src/kobuki_dashboard/dashboard.py", line 6, in <module>    from rqt_robot_dashboard.dashboard import DashboardImportError: No module named rqt_robot_dashboard.dashboardPluginManager._load_plugin() could not load plugin "kobuki_dashboard/KobukiDashboard":Traceback (most recent call last):  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/plugin_handler.py", line 99, in load    self._load()  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/plugin_handler_direct.py", line 54, in _load    self._plugin = self._plugin_provider.load(self._instance_id.plugin_id, self._context)  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/composite_plugin_provider.py", line 71, in load    instance = plugin_provider.load(plugin_id, plugin_context)  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/composite_plugin_provider.py", line 71, in load    instance = plugin_provider.load(plugin_id, plugin_context)  File "/opt/ros/indigo/lib/python2.7/dist-packages/rqt_gui_py/ros_py_plugin_provider.py", line 60, in load    return super(RosPyPluginProvider, self).load(plugin_id, plugin_context)  File "/opt/ros/indigo/lib/python2.7/dist-packages/qt_gui/composite_plugin_provider.py", line 71, in load    instance = plugin_provider.load(plugin_id, plugin_context)  File "/opt/ros/indigo/lib/python2.7/dist-packages/rqt_gui/ros_plugin_provider.py", line 83, in load    raise eImportError: No module named rqt_robot_dashboard.dashboard[rqt_gui-2] process has died [pid 3435, exit code 1, cmd /opt/ros/indigo/lib/rqt_gui/rqt_gui -s kobuki_dashboard __name:=rqt_gui __log:=/home/siat/.ros/log/d3c65470-3394-11e6-a44c-28d244c5bb27/rqt_gui-2.log].log file: /home/siat/.ros/log/d3c65470-3394-11e6-a44c-28d244c5bb27/rqt_gui-2*.log

【解决方案】

原因是安装ROS的时候未安装ros-indigo-rqt-robot-dashboard 包,运行下面命令安装即可

$ sudo apt-get install ros-indigo-rqt-robot-dashboard
0 0
原创粉丝点击