在ROS中使用kdevelop这么久了,越来越觉得它非常好用啊,现在就总结一下
它的使用技巧,希望对大家有帮助,谢谢。

参考博客:Kdevelop的简单使用和简单调试
用kdevelop构建ROS程序包
ROS入门教程-1.1.3 创建ROS程序包(创客智造)
ubuntu16.04环境Kdevelop安装和汉化

一、软件安装
它的安装方式是非常简单的,可以说是我见过的所有软件之中安装最简单的软件了。一条指令搞定:

sudo apt-get install kdevelop

然后它就会自己完成所有依赖项的安装,cmake一般也会自动安装,正常来说应该不会有什么问题,等待5分钟左右(视网速而定)就差不多结束了。

因为ROS的相关设置是保存在bashrc启动文件中的,所以需要让kdevelop自动检索bashrc启动文件,关联ROS环境。首先是找到它的桌面启动快捷方式,一般在如下路径里:

cd /usr/share/applications/kde4
sudo gedit kdevelop.desktop

输入文件时可以按Tab键,防止输入错误。打开文件之后,更改其中一条,将其中的:

Exec="kdevelop" %u

改为:

Exec=bash -i -c "kdevelop" %u

最后,就可以保存退出了。

二、ROS功能包编译
首先需要提醒的是,kdevelop无法完成ROS功能包的创建,所以只能在创建好功能包之后再用kdevelop打开,继续完成其他部分的编写。

通常情况下,使用CATKIN方式创建功能包,那么,一个catkin程序包由什么组成?
一个程序包要想称为catkin程序包必须符合以下要求:

该程序包必须包含catkin compliant package.xml文件,这个package.xml文件提供有关程序包的元信息。
程序包必须包含一个catkin 版本的CMakeLists.txt文件,而Catkin metapackages中必须包含一个对CMakeList.txt文件的引用。
每个目录下只能有一个程序包。这意味着在同一个目录下不能有嵌套的或者多个程序包存在。
这里,先创建一个简单的功能包用于演示:

cd ~/catkin_ws/src
catkin_init_workspace
catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
cd ..
catkin_make

这里必须注意,创建好的功能包要先catkin_make 初始化工作空间,然后才能用kdevelop打开功能包。然后就是创建cpp或者python文件,更改CMakeLists等文件,这里就不细说了。

下面说一下编译功能包的流程:

1.打开工程
选择“打开工程”选项, 找到工作空间(~/catkin_ws/src),选择CMakeLists.txt;
在这里插入图片描述

可以将工作名称进行替换(默认src,取一个方便管理的名称),选择CMake Project Manager(这是英文名,也就是CMake工程管理器),选择完成;

在这里插入图片描述

2.选择构建类型

出现cmake配置窗口,选择构建空间 /home/<user_name>/catkin_ws/build/;
添加额外参数,确保二进制文件和库在正确的catkin空间中(devel) :

-DCATKIN_DEVEL_PREFIX=../devel -DCMAKE_INSTALL_PREFIX=../install

在这里插入图片描述

3.编译最后点击左上角编译(也就是齿轮图标,显示为“构建”)按钮就可以了。

在这里插入图片描述

三、ROS功能包调试
ROS功能包的调试,应该说程序员最想要的一个功能了。而在kdevelop中,他其实也有这个功能,而且调试过程中能看到中间变量,十分简便好用。而调试过程呢基本和正常程序一样,但是有几点不同,下面具体说说调试流程:

1.设置编译选项
一定需要在CMakeList.txt中加入下面的指令,来设置编译模式:

#在project指令后加入即可
set( CMAKE_BUILD_TYPE "Debug" )

在这里插入图片描述

——摘自高翔博士《视觉SLAM十四讲》
设置结束之后,注意一定要再编译一次。

2.配置启动器

选择“运行”菜单下的“配置启动器”按钮,进入启动器的设置;

在这里插入图片描述

正常来说,直接添加“应用程序”就好了,kdevelop会自动选择可执行文件;

在这里插入图片描述

但是有的时候需要自己添加二进制启动文件,我现在的情况就是这样,所以需要先找到启动文件;

在这里插入图片描述

然后,选择需要调试的启动文件,确认添加即可,最后是这样;

在这里插入图片描述

kdevelop里可以设置多个“应用程序”,但是每次只能运行一个,需要还需要选择哪个“应用程序”;

在这里插入图片描述

3.进行调试
准备好以上工作之后,就可以开始进行调试了。我们都知道,ROS节点是运行在roscore环境当中的,所以这一条必须满足我们的节点才能运行起来,那么怎么实现这个条件呢?(其实下面的这个操作我也是意外发现,没到到还真的可以实现,再一次佩服kdevelop)
首先是添加断点,双击程序左侧,出现一个瓢虫图标就说明添加好了;
在这里插入图片描述

然后打开终端,和往常一样,启动roscore,最小化该终端,让他默默运行吧;
最后就是点击kdevelop上的debug按钮了,注意它的左侧是启动按钮,就是正常运行程序使用的,这里我们进行调试;

在这里插入图片描述

马上,你会发现kdevelop马上进入了debug模式,激不激动,开不开心,马上进行调试吧!

在这里插入图片描述

四、中文字符显示不全

有的时候会发现一行程序只显示一半,删除中文又能正常显示了,看着特别别扭,其实这是系统字体的原因,换一种字体就好了,比如这样的:

在这里插入图片描述

如果这个字体不行,就试试其他字体,应该有能够正常显示的。

五、Kdevelop汉化

正常来说会自动跟随系统语言,如果还是英文,可以选择汉化。汉化时不需要自己下载汉化包,Kdevelop安装后,在终端执行下列语句,查看kdevelop的相关资源:

aptitude search kdevelop

可能会提示未安装,那么自己安装一下:

sudo apt-get install aptitude

然后再次执行第一条语句,就能看到结果了,会弹出如下内容:

在这里插入图片描述

选择中间的 kdevelop-l10n 进行安装,此时,启动软件就是汉化后的了:

sudo apt-get install kdevelop-l10n

如果重启以后仍然是英文,点击“help"菜单栏中的”switch Application language“手动设置语言即可。