您的位置:首页 > 编程语言 > Java开发

Ubuntu14.04下ROS indigo Eclipse开发环境搭建

2015-04-27 23:23 597 查看

ROS IDE – Ubuntu14.04
环境下ROSindigo的Eclipse环境搭建

前记:本文主要是翻译http://wiki.ros.org/IDEs中的第一部分关于Eclipse中ROS环境配置.其中需要在Terminal中输入的指令均以'
$ ' 开头,黑体部分即为指令.由于本人英语能力有限(目前为止四级都还没有过),所以很多自己不太能读懂的地方都是意会,而且有部分内容尚未翻译.

1. 安装Eclipse
网上关于Ubuntu下安装Eclipse的帖子非常多,我也就不整理了.总的说来其实就两步,先安装JDK,然后解压Eclipse就OK了.需要的可以百度一下,一抓一大把.

2. 创建工程文件

2.1 创建ROS工程包并转成Eclipse工程文件
首先,cd到自己的工作空间.创建一个自己的Package,使用下诉命令.
$ roscd
$ cd camera
$ roscreate-pkgusb_cam_pub sensor_msgs std_msgs roscpp


如果对上述命令的文件目录有疑问,可查看上一篇博客.
我的工作空间目录是 ~/workspace/ROS, roscd首先是直接进入该目录.如果你roscd没有进入到你所新建的工作目录,说明你没有执行source
~/workspace/ROS/setup.bash
.你也可以打开Terminal,输入 echo $ROS_PACKAGE_PATH .查看输出信息,是否含有你新建的工作目录.
我在工作目录下新建了一个文件夹,即对应教程中的sanbox文件夹.文件夹名是 camera.

所以在第三条命令执行前,我的完整目录应该是 ~/workspace/ROS/camera .执行第三条指令,即在该目录下新建ROS Package.包名是cam_pub(因为下一步工作我准备编写一个获取USB
Camera数据然后通过Publish/Subscribe的形式发布出来的节点). 附加依赖包有 sensor_msgs和std_msgs.

然后,执行:
$ cd cam_pub
$ make eclipse-project


2.1.1 创建多个Eclipse工程文件

cd到你的package所在目录.按照上述我的工作目录,执行下述指令的目录应该是在 ~/workspace/ROS/camera .在该目录下,保存着之前我所创建的多个工程文件.然后运行

$ rosmake --target=eclipse-project --specified-only *


[/code]
3. 导入工程到Eclipse
现在,开启Eclipse, 按如下路径选择, 由于我的Eclipse是英文版本, 所以路径以英文为主:
File(文件) → Import(导入) → Existing projects into workspace(已存在的工程到工作空间),



点击<next>, 然后选择路径到上诉已创建好的工程目录.



此处一定要注意,不能选择<Copy projects into workspace>, 复制整个工程到Eclipse工作目录后,编译运行会出现问题.
点击<finish>, 完成整个导入过程.
4. 实验效果

1)
现在我们首先尝试将之前已有代码导入Eclipse中.示例代码可以参考http://wiki.ros.org/ROS/Tutorials/WritingPublisherSubscriber%28c%2B%2B%29
其中有两个及其简单的ROS Node代码.一个talker,一个listener.安装上述网站顺序,建好代码.在Terminal中尝试运行OK.现在可以按照上诉导入步骤导入到Eclipse中.导入之后没有任何报错.
2)
如果没有已有Package需要导入,现在尝试第二种可能,就是在按照步骤2中创建好自己的Package,但是没有任何代码.可以看到,Eclipse中src文件夹是空文件夹,没有任何源码文件.现在尝试在Eclipse中创建源码文件,编辑代码.
右键单击src文件夹→New
→ Source File, 输入文件名talker.cpp,单击Finish.复制1)中网站所给出的talker.cpp代码.复制进来应该是没有任何错误的.但是我在复制之后有很多错误.我Project→
Clean...了一下,然后Project→ Build
All,就OK了.没有任何错误.我也不知道为什么.
在下图中可以看到Eclipse中关于导入的节点文件夹中所包含的所有文件夹以及文件.



之前接触过ROS的朋友肯定知道,在写好代码之后均需修改CmakeList.txt,然后在Terminal中make才能编译源码.在Eclipse中同样需要这样.双击选择CmakeLists.txt,在文件末尾添加下述文字.
rosbuild_add_executable(alkersrc/talker.cpp)
rosbuild_add_executable(listenersrc/listener.cpp)

现在点击Project→
Build All, 即可编译.在文件夹bin中可以看到生成的可执行文件.一个talker,一个listener.

4.1. 在Eclipse中运行ROS可执行文件
在Eclipse中运行和调试ROS代码,最重要的一步是配置launchconfiguration.点击Run→
Run Configuration... → C/C++ Application (双击或者点击New),选择你所要运行的程序.在EnvironmentTab中,新增(至少)
ROS_ROOT
ROS_MASTER_URI







如果你不知道ROS_ROOT或者ROS_MASTER_URI的值是什么.可以打开Terminal,输入下述命令,然后复制打印出的值到Value即可.
$ echo $ROS_ROOT
$ echo$ROS_MASTER_URI


现在打开Terminal,输入$roscore,然后在Eclipse中分别运行talker,和listener.依次可见到如下效果.说明ROS在Eclipse中环境搭建成功.并且ROSNode运行正常.

运行talker后的输出显示.



运行listener后的输出显示.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: