背景介绍

阅读源代码,首先应该从头文件入手,ROS集成了许多的头文件,一句

#include<ros/ros.h>

就包含了绝大部分基础代码的头文件,但是这往往让初学者看代码时遇到很大的困扰。

最近本人也从事一些路径规划算法研究,打算利用ROS在机器人上实现,为此一边做学习笔记以便自己复习,另一方面也可以给广大使用ROS的机器人爱好者提供参考。

查找头文件位置

基本的头文件都在这个大文件夹中,/opt/ros/($your version,eg:kinetic)/share/

经过半年多的ROS学习,这里下载的依赖文件就已经有好几百个了。

那么要找的头文件具体是哪个文件夹呢?

roscd 只能到已经添加了路径的已知文件夹,那么未知的可以尝试用locate或mlocate,比如查找ros.h:

locate ros.h

或:

mlocate ros.h

如果不行,先下载updatedb

sudo updatedb

不过返回的东西比你想的多得多,那找个啥子?

一般来讲,上面这个方法适用与找一些作为小基础部分的头文件,而不是像ros.h这样大的总成型头文件。层级如下:

但如果我知道具体是哪个头文件,可用,比如init.h里面的forwards.h:

locate forward.h

特地查看了一下,一般不同的头文件,即使文件名完全相同,里面的内容也不同,只是大致功能是同的。造成这个问题是编程人员编头文件的时候用了太多重名头文件了,或者是timeshif等备份软件做的备份。

可用的读源代码方法

法一:从网站上看

下面是ros.h的源代码网址,点进每个小头文件可以查看不同的代码层级和实例:

http://docs.ros/api/roscpp/html/ros_8h_source.html

法二:用vscode查看

这个方法是本人后面才接触到的,许多人也用这个编程、查看等等,由于时间问题,就不展示了。

法三:用roboware查看

打开你想看文件的源代码,然后用右键打开,看到有个英文显示“GO TO DEFINITION”,点击后就可以直查看头文件源代码,甚至可以修改(建议初学者不要修改)。或按Ctrl然后鼠标左键就可进入。

roboware安装教程可以查看

https://blog.csdn/lixujie666/article/details/80139112

好了,知道源代码怎么查看之后就可以开始学习了。

参考资料

https://stackoverflow/questions/13079650/how-can-i-find-the-header-files-of-the-c-programming-language-in-linux

更多推荐

关于阅读ROS的源代码