Eclipse构建ROS开发环境

1. 安装eclipse

二进制安装和卸载:也可以apt-get方式进行安装和卸载,只不过安装的版本较低。

#安装
sudo apt-get install eclipse
#卸载
sudo apt-get remove --purge eclipse

2. 安装CDT (C Development Tools)

#查找
sudo apt-cache search cdt

#安装
sudo apt-get install eclipse-cdt*

3. 设置eclipse快捷方式

cd /usr/share/applications

sudo touch eclipse.desktop

sudo nano eclipse.desktop

然后将如下内容保存到eclipse.desktop

扫描二维码关注公众号,回复: 1028163 查看本文章

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

4. 创建一个简单的ros包

  • 建立测试目录和文件
mkdir catkin_ws     #建立工作目录 
mkdir src           #在工作目录下建立src文件夹。
#切到src目录下,我们开始建立包,后面的东东都是依赖项
catkin_create_pkg hello rospy roscpp std_msgs
#切到hello 包目录下,此时会多几个文件,切到src目录下
#新建自己的程序。也就是节点程序,开始写你的代码就行。
vim hello.cpp
  • 内容如下:
// a simple "hello" ROS program.
#include "ros/ros.h"
#include "std_msgs/String.h"
using namespace ros;
 
int main(int argc, char **argv)
{
  ros::Time::init(); //定时器初始化
 
  ros::init(argc, argv, "hello"); //节点初始化
 
  ros::Rate loop_rate(10); //定时10ms
 
  while (ros::ok()) //节点是否正常工作
  {
 
    ROS_INFO("%s", "hello world !"); //打印节点信息
 
    ros::spinOnce(); //节点只循环一次
 
    loop_rate.sleep(); //不够10ms的补充到10ms为止。
 
  }
  return 0;
}
  • 添加依赖项,在切回来到hello 包底下,在CMakeLists.txt文件中添加依赖项,。
add_executeable(hello src/hello.cpp) #其实会生成hello.exe的名字
target_link_libraries(hello ${catkin_LIBRARIES}) #添加节点编译需要的库文件。
  • 开始编译整个项目
catkin_make --force-cmake -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_ECLIPSE_MAKE_ARGUMENTS=-j8 

增加 –-force-cmake之后,表示强制编译,编译工具用的CDT4,且会生成两个文件 .project ,此project 也就是在Eclipse里面要用到的。


在devel目录下可以看到两个project隐藏文件.

5. 导入ROS包到Eclipse

  • 通过已存在的包导入

这里我们只导入借助CDT编译生成的Project-Debug,其余的都是我用gcc 和catkin_make生成的包.将来我会把这些工程用eclipse CDT重新编译生成,然后导入到eclipse中.

6. 配置eclipse里面导入的工程

在导入的项目名称,右击—debug as – debug configurations,配置一下 C/C++ Application

然后查看工程属性,查看include path是否已经自动正确配置.右键-->属性-->C/C++ Include Paths

当上面的工作都做好以后,我们就可以进行debug了

7. 开始debug

选择下面的debug项进行调试,但是需要先在命令行启动roscore

点击debug之后,开始系统调试,

这里报错,说我们没有设置ROS_MASTER_URI,我们需要在.bashrc里面设置一下.

source一下bashrc文件,然后重新启动roscore和重新debug

设置后,还不成功,还是报同一个错误.

最后我就在eclipse上配置环境变量

然后无论是debug还是run都没有问题啦


至此,我们已经通过一个简单的例子,打通了的eclipse编译运行ros package的流程.

下面,我们在eclipse里面修改hello.cpp,然后试试看能否生效.我们修改了输出的内容,然后点击工程名,会发现里面包含了在catkin_ws里面的所有的包


经过我们多番折腾,发现我们修改了cpp后,无论怎么编译,在eclipse里面都无法生效.这个让人很恼火.下面我们换方法进行尝试,最终成功

--------------------------------------------------------------------------------------------------------------------------------------------

第一步:

首先确保你的项目是通过roscreate-pkg创建的

假设你的ROS项目目录为catkin_ws,进入catkin_ws,执行下列命令。为你的项目生成Eclipse可以识别的Makefile

catkin_make --force-cmake -G"Eclipse CDT4 - Unix Makefiles"


第二步:

请确保你的Eclipse已经安装了CDT。


第三步:

现在你已经在Eclipse C/C++项目中有了catkin_ws该项目了。

File > New > Project


点击finish,完成

第四步:

配置你的编译路径 

Project > Properties > C/C++ Build

设置Build Location为 catkin_ws/build

第五步:如何解决类似下列问题?

ImportError: No module named genmsg.template_tools

向你的Eclipse中添加PYTHONPATH环境变量(python变量)。

Project > Properties > C/C++ Build > Environment

这里,我们顺便吧ROS_MASTER_URI设置一下.

OK, 到此为止,你的Eclipse就配置完成了。

第六步 编译工程

迅速尝试一下Project > Build Project吧。

我们运行一下hello这个包,配置一下run as 的configuration,配置要运行的applicaiton是我们的hello,也可以在这里的Environment里面设置ROS_MASTER_URI



第七步 运行hello包


第八步, 修改hello包的src目录下的hello.cpp

第九步,  执行第六步和第七步,即可.





猜你喜欢

转载自blog.csdn.net/jinking01/article/details/80372445