今天学习一下如何创建功能包。

跟着教程,首先创建一个catkin_ws的文件夹,下面再创建一个src文件夹。

1.通过:mkdir -p ~/catkin_ws/src。这个命令。

直接使用mkdir指令创建src文件夹的话,如果没有catkin_ws这个文件夹,那么将会出错,说没有该文件夹,无法创建。

而使用mkdir -p这个命令,可以递归创建目录,即使上级目录不存在,也会按目录层级自动创建目录。

ros创建工作空间+功能包_工作空间

2.继续。切换进入该文件夹下,通过命令cd ~/catkin_ws命令。

ros创建工作空间+功能包_bash_02

3.继续。通过catkin_make命令进行编译。(编译是让源代码生成可执行文件的过程)

ros创建工作空间+功能包_ubuntu_03

继续。编译完成之后,catkin_ws目录下出现了bulid和devel文件夹,src,build和devel文件夹中都各有不同的文件。

4.然后配置环境变量。(为什么要配置环境变量?为了访问方便)

回到主文件夹ctrl+h显示隐藏文件夹。然后找到.bashrc这个文件。在文件的下方输入:source /home/zcfly/catkin_ws02/devel/setup.bash命令。

ros创建工作空间+功能包_ubuntu_04

像下面一样,添加一行。

ros创建工作空间+功能包_javascript_05

具体路径要找到自己的setup.bash文件查看属性看一下自己的路径哈。

ros创建工作空间+功能包_ubuntu_06

然后source一下,source这个命令主要是寻找文件,通过这个寻找setup.sh文件。

source这个命令是配置工作空间,用于刷新环境,必不可少,将当前的工作空间配置了。每次编译之后都要执行以下source这个命令。

ros创建工作空间+功能包_roboto_07

关于此命令,这里有一篇网友的文章非常详细。

至此,我们的catkin_ws工作空间就创建完成了,然后创建功能包,功能包在src文件夹下,我们常说的package就是指功能包,

package里面是写代码的地方。

用catkin_create_pkg这个命令来创建一个新的功能包。

我们来创建第一个功能包吧。

命令:catkin_create_pkg demo0 roscpp rospy std_msgs

这个命令的意思是:创建一个名为’demo0’的新功能包,这个功能包依赖于std_msgs、roscpp和rospy。

std_msgs、roscpp、rospy是ros程序依赖的库。

ros创建工作空间+功能包_javascript_08

继续操作。

ros创建工作空间+功能包_工作空间_09

粘贴。

ros创建工作空间+功能包_ubuntu_10

继续

ros创建工作空间+功能包_javascript_11

然后,发现看代码好累,安装个qt吧

然后安装完了以后,在下面文件夹新建一个qt工程,然后在main函数里面讲上文中my_demo.cpp里的代码给复制到main函数,然后调试。

ros创建工作空间+功能包_工作空间_12

发现以下错误提示:

ros创建工作空间+功能包_javascript_13

这里有解决办法:​

ros创建工作空间+功能包_ubuntu_14

可以,继续尝试。还是不行。

未完待续。