刚刚接触Ubuntu 刚刚接触ros,写点东西,当做总结,还请大家批评指正。
1.ros中的第一步就是建立一个工作空间,这个工作空间的建立参考ros的官方教程。工作空间的作用,我的理解就是你的一个任务是在这样的一个文件夹下面编译,生成和调用。所有的命令执行都是以工作空间为单位的,一般情况下不同的工作空间下的东西不能够相互调用,通过设置好像是可以的。进入一个工作空间必须要sourc一下这个工作空间,然后才能对这个包内的文件进行调用和执行,编译等等。
2.紧接着ros工作空间的另外一个概念就是软件包,一个工作空间可以有多个软件包,一般情况下把工作任务大致相同的软件包放在相同的工作空间下面,避免在执行程序是相互调用不同的工作空间。
3.接下来对这个软件包进行一下说明,每次新建立的软件包,软件包包含三部分包含程序库,可执行文件和脚本文件。一个程序包可能依赖于ros系统中其他的程序包,这个在建立软件包的时候就应该说明清楚,这个软件包的建立参考官方教程。软件包建立的的时候在文件中会生成3个主要的东西 package.xml文件 cmakelist文件 程序包 package.xml文件里提供了这个包的基本信息,包括依赖的程序包等等,要学会改这里面的基本信息。 cmakelist文件中这个主要是起到了一个生成的作用,这里表明了文件SRC中cpp文件生成的可执行文件的名称。
4.对上面3个大的部分的介绍整体表示为 workspace/ src/ cmakelist.txt package_1/ cmakelist.txt package.xml src/ launch/ ... package_n/ cmakelist.txt package.xml src/ launch/ 在workspace文件夹以一般有三个文件:devel build src. src文件中有软件包,软件包中有新的程序包中的src文件,最常用的连个文件是src和launch文件,和urdf文件。 devel中也会有好几个文件夹,常用的是lib文件夹,这里面会根据相应的软件包再生成相应名称的文件夹,这个都是在编译过程中自动生成的,这个lib文件中看的是节点node,说白了就是可执行文件exe。在ros系统中我们称为节点。
5.我们在ros中运行一个程序,运行的文件不是exe文件,而是在终端中调用launch文件,接下来说一下ros中的这个问题。 ros的通信是以节点跟节点之间通信为基础的,这个是每个可执行文件都是相应的节点。节点中在launch文件中,我们可以同时调用很多个节点,这个多个节点之间相互通信,我们设置相应的参数,从而完成一个整体的任务。