可以利用Eclipse集成开发环境进行ROS开发,从而提高研发效率。以色列巴尔伊兰大学的Mr. Roi Yehoshua开设了一门ROS课程,课程2( Lesson 2)讲解了如何利用Eclipse在ROS上进行开发。这里走下总结整理。安装步骤如下:

1. 安装Java8

我们采用Eclipse Neon版本的IDE,所以需要Java8的运行环境,下面为安装Java8的命令,如下所示:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default

2. 安装Eclipse Neon

  • 确保Java虚拟机JVM已经安装,如果没有安装,在终端执行以下的命令:
$sudo apt-get install default-jre
  • 下载Eclipse IDE for C/C++开发平台:

    ----下载地址:http://www.eclipse.org/downloads/

    ----最新的Eclipse Neon版本为:eclipse-cpp-neon-1a-linux-gtk-x86_64.tar.gz

  • 解压Eclipse到你指定的文件夹中。
  • 在终端中,将Eclipse移到系统的目录 /opt,执行如下命令:
$sudo mv eclipse /opt
  • 创建一个链接,以给所有的用户可以使用,执行如下命令:
$sudo ln -s /opt/eclipse/eclipse /usr/bin/eclipse 
  • 为了方便,弄个Eclipse的快捷方式到桌面
$sudo gedit /usr/share/applications/eclipse.desktop

添加如下内容:

[Desktop Entry]
Name=Eclipse
Type=Application
Exec=bash -i -c "/opt/eclipse/eclipse"
Terminal=false
Icon=/opt/eclipse/icon.xpm
Comment=Integrated Development Environment
NoDisplay=false
Categories=Development;IDE
Name[en]=eclipse.desktop

–The bash –i - c command will cause your IDE's launcher icon to load your ROS-sourced shell environment before launching eclipse

3. 生成Eclipse项目文件

  • 创建工作空间,执行如下代码:
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws/src
$ catkin_init_workspace
$ cd ~/catkin_ws
$ catkin_make
  • 创建一个包first_pkg,执行如下代码:
$ cd ~/catkin_ws/src
$ catkin_create_pkg first_pkg std_msgs rospy roscpp
  • 到catkin的工作空间,利用catkin_make命令,建立一个eclipse的项目,命令如下:
$ cd ~/catkin_ws
$ catkin_make --force-cmake -G"Eclipse CDT4 - Unix Makefiles"
  • 项目的文件声称在目录 ~/catkin_ws/build里。

4. 导入项目

  • 启动 Eclipse
  • 选择catkin_ws 文件夹作为工作空间文件夹:
 
 
  • 选择File --> Import --> General --> Existing Projects into Workspace
  • 从文件夹~/catkin_ws/build中导入项目
  • 剔除没必要的目录。如果项目比较大,整个项目浏览器会比较的繁杂,为了让项目浏览更简洁,我们做些设置。右击项目build,选择Properties -> Resource,添加一个资源过滤器,如下图所示进行填写。然后选择ok,并应用即可。

5. 添加预编译头文件的路径

  • 默认情况下,Eclipse是不会只能识别到ROS的头文件信息的,为了修复它,作如下操作进行设置:
    –到 Project Properties --> C/C++ General --> Preprocessor Include Paths, Macros, etc. --> Providers tab
    –检查CDT GCC Built-in Compiler Settings [Shared]
 
 
 
6. 项目结构
  • 项目的源文件在文件夹 "Source directory"中,开发者可以在这个目录下添加源代码。
7. 添加项目文件
  • 右击src,然后选择New –> Source File, 创建文件 hello.cpp,如下图所示:
  小技巧,Eclipse自动补齐代码快捷键:Ctrl+Space
 
  编写如下代码:
#include "ros/ros.h"
 
int main(int argc, char **argv)
{
ros::init(argc, argv, "hello");
 
ros::NodeHandle nh;
ros::Rate loop_rate();
 
int count = ;
while (ros::ok()) // Keep spinning loop until user presses Ctrl+C
{
ROS_INFO_STREAM("hello world" << count);
 
ros::spinOnce(); // Allow ROS to process incoming messages
loop_rate.sleep(); // Sleep for the rest of the cycle
count++;
}
 
return ;
}

8. 编译节点

  • 在编译前,需要在包的CMakeLists.txt文件中添加新的编译内容(红色部分),如下所示:
cmake_minimum_required(VERSION 2.8.)
project(first_pkg) ## Find catkin macros and libraries
find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs) ## Declare ROS messages and services
# add_message_files(FILES Message1.msg Message2.msg)
# add_service_files(FILES Service1.srv Service2.srv) ## Generate added messages and services
# generate_messages(DEPENDENCIES std_msgs) ## Declare catkin package
catkin_package() ## Specify additional locations of header files
include_directories(${catkin_INCLUDE_DIRS}) ## Declare a cpp executable
add_executable(hello src/hello.cpp) ## Specify libraries to link a library or executable target against
target_link_libraries(hello ${catkin_LIBRARIES})
  • 按快捷键 Ctrl-B,编译项目
 
9. 在Eclipse中运行节点
  • 创建新的启动配置,点击 Run --> Run configurations... --> C/C++ Application (double click or click on New)。
  • 选择相应的二进制执行程序 (use the Browse… button),如本例程的执行程序为:~/catkin_ws/devel/lib/first_pkg/hello。

  • 确保roscore已经在终端中运行。
  • 点击Run,结果如下图所示:
当然也可以在终端中运行。
 
10. 在Eclipse中调试
  • 为了调试,你需要将编译器设置为调试模式,终端中,到catkin_ws/build目录执行如下代码:
$ cmake ../src -DCMAKE_BUILD_TYPE=Debug
  • 重启Eclipse
  • 这样就可以利用Eclipse的调试工具进行调试了,进入调试界面,如下图所示:
 
参考资料:

ROS知识(6)----基于Eclipse开发的更多相关文章

  1. Hadoop伪分布配置与基于Eclipse开发环境搭建

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  2. 用Eclipse 开发Dynamic Web Project应用程序 【转】

    简介:本文仅简单介绍基于Eclipse开发Dynamic Web Project应用下的JSP,Servlet及TOMCAT数据源的配置和开发. 软件环境: Eclipse Java EE IDE f ...

  3. java 中的Debug eclipse 开发工具使用

    Eclipse的debug模式:代码调试 * Eclipse或MyEclipse就是java的开发工具 * Eclipse开源的.免费的Java开发工具 * MyEclipse基于Eclipse开发出 ...

  4. 转-用Eclipse 开发Dynamic Web Project应用程序

    简介:本文仅简单介绍基于Eclipse开发Dynamic Web Project应用下的JSP,Servlet及TOMCAT数据源的配置和开发. 软件环境: Eclipse Java EE IDE f ...

  5. 基于Eclipse的Hadoop应用开发环境配置

    基于Eclipse的Hadoop应用开发环境配置 我的开发环境: 操作系统ubuntu11.10 单机模式 Hadoop版本:hadoop-0.20.1 Eclipse版本:eclipse-java- ...

  6. 基于Eclipse搭建STM32开源开发环境

    最近项目不忙,想着没事看看简单的嵌入式,弄弄物联网什么的.于是就从廉价的STM32开刀了.因为一直是做PC软件开发的,那VS的智能感知那叫一个爽啊,相比之下,觉得这个Keil简直就像文本编辑器一样lo ...

  7. 基于Eclipse的Go语言可视化开发环境

    http://jingyan.baidu.com/article/d7130635032e2f13fdf475b8.html 基于Eclipse的Go语言可视化开发环境 | 浏览:2924 | 更新: ...

  8. JavaEE开发基于Eclipse的环境搭建以及Maven Web App的创建

    本篇博客就完整的来聊一下如何在Eclipse中创建的Maven Project.本篇博客是JavaEE开发的开篇,也是基础.本篇博客的内容干货还是比较多的,而且比较实用,并且都是采用目前最新版本的工具 ...

  9. JavaEE开发之基于Eclipse的环境搭建以及Maven Web App的创建

    本篇博客就完整的来聊一下如何在Eclipse中创建的Maven Project.本篇博客是JavaEE开发的开篇,也是基础.本篇博客的内容干货还是比较多的,而且比较实用,并且都是采用目前最新版本的工具 ...

随机推荐

  1. php 面试指南

    https://xianyunyh.gitbooks.io/php-interview/

  2. [ python ] 作业:选课系统

    功能代码实现源地址:https://www.cnblogs.com/lianzhilei/p/5832691.html    如有侵权,立即删除 本文主要是分析 选课系统 实现思路及上面代码的实现过程 ...

  3. caffe源码整个训练过程

    Caffe源码 Blob protected: shared_ptr<SyncedMemory> data_; shared_ptr<SyncedMemory> diff_; ...

  4. MySQL-开发规范升级版

    一.基础规范 表存储引擎必须使用InnoDB   表字符集默认使用utf8,必要时候使用utf8mb4 解读: (1)通用,无乱码风险,汉字3字节,英文1字节 (2)utf8mb4是utf8的超集,有 ...

  5. python基础(5)---整型、字符串、列表、元组、字典内置方法和文件操作介绍

    对于python而言,一切事物都是对象,对象是基于类创建的,对象继承了类的属性,方法等特性 1.int 首先,我们来查看下int包含了哪些函数 # python3.x dir(int) # ['__a ...

  6. apache2.2控制目录文件访问设置

    1.apache2.2控制目录文件访问需求 红框可以访问,其他不能访问 2.apache2.2具体正则配置 <locationMatch ^/f/user/Panorama/81/581/(gr ...

  7. OPENSSL问题,使用fsockopen()函数提示错误

    环境配置 系统环境 CentOS7.2WDCP v3.2.2 lanmp PHP 多版本 指定使用5.6 OpenSSL 1.0.2h  3 May 2016 php.ini相关设置allow_url ...

  8. 【PAT】1011. A+B和C (15)

    1011. A+B和C (15) 给定区间[-231, 231]内的3个整数A.B和C,请判断A+B是否大于C. 输入格式: 输入第1行给出正整数T(<=10),是测试用例的个数.随后给出T组测 ...

  9. day1作业一:编写登陆接口

    作业一:编写登陆接口 1.输入用户名和密码 2.认证成功后显示欢迎信息 3.输错三次后锁定 Readme: (1)提示用户输入用户名: (2)用户名验证,验证是否已经锁定: (3)是否锁定:已锁定告诉 ...

  10. 5 Linux网络编程基础API

    5.1   socket地址API 大端字节序(网络序):高位在低址,低位在高址 小端字节序(主机序):低位在低址,高位在高址 判断,利用联合的特性: #include <iostream> ...