A-A+

roscore运行失败的解决方法

2014年04月12日 note 评论 1 条 阅读 9,132 次

一、错误说明:

今天在执行roscore的时候,出现了如下错误:

roscore

即:

ERROR: rosout is not built. Please run 'rosmake rosout'

failed to start core service [/rosout]。

大意就是说:无法运行rosout服务。

二、发生错误之前最后的操作:

我想看一下roslaunch的源码包,于是就是下载下来放在了~/catkin_ws/src中,

git clone https://github.com/ros/ros_comm.git -b hydro-devel

下载下来的包的名字是ros_comm,里面有各种ROS常用的工具。

三、错误分析及解决方法:

到ROS官网以及google上查找相关的解决方案,大体有如下几个:

1. 按照命令提示:运行rosmake rosout

2.cd $ROS_ROOT

make

第一种解决方法在rosout确实没有被make的情况下有效。

第二种解决方法一般是解决从低版本过渡到高版本ROS的时候出现的问题。

这两种方法对于我遇到的问题均无法解决。

于是,我想到了去看看rosout包所在的文件夹:

roscd rosout/

突然发现转到了~/catkin_ws/src/ros_comm/tools/下。

这个显然不是ros安装好后默认的系统路径,而是我刚才下载roslaunch放到的目录。

为什么会出现这个问题呢?

我们来看看ROS包的路径列表:

echo $ROS_PACKAGE_PATH

出现类似下面的路径:

/home/exbot/rosbuild_ws/sandbox:/home/exbot/catkin_ws/src:/opt/ros/hydro/share:/opt/ros/hydro/stacks

catkin_ws/src是被包含到默认包搜索路径下的。

而装好ROS系统后默认的rosout存放地址为/opt/ros/hydro/share:

ROS在检查package路径的时候,会按照$ROS_PACKAGE_PATH里面列出的地址顺序来依次查找。

这样,在运行roscore时,会用到rosout,先搜到的路径为:

/home/exbot/catkin_ws/src

在这里面有我刚才下载到的ros_comm,里面有rosout工具。

问题到这里就清楚了,把ros_comm移出$ROS_PACKAGE_PATH所包含的文件夹即可。

然后roscd rosout,这回转到的就是:

/opt/ros/hydro/share/rosout

然后,运行:roscore

roscore_suc

运行成功!

至此,此问题解决。

PS:解决此问题涉及到了ROS工作空间的overlay的概念,具体理解请参考:

配置ROS工作空间catkin+rosbuild

Exbot原创经验,

转载请注明出处。

标签:

1 条留言  访客:1 条  博主:0 条

  1. 菜鸟

    roscore出错运行rosmake rosout没用

给我留言

Copyright © ExBot易科机器人实验室 保留所有权利.   Theme   Robin modified by poyoten

用户登录

分享到: