编程技术网,编程语言,IT新闻,code,代码审查

百度无人驾驶的编程语言

2020-11-24 13:08

舟山气象台,荆门市会计网,艾微库

下面是Cmakelists文件的一个例子。


从上到下依次指定了Cmake的版本、project的名字、ROS工程所依赖的c++的版本、另外是依赖的库文件,最后生成可执行文件以及这个文件所链接的依赖库。

2.Eclipse下编译ROS基本工程

工程建立好之后,catkin build可以直接对工程进行编译。直接用 catkin build去编译,会把整个工程目录里面的所有的package进行统一编译,如果是构建一个比较复杂的系统,可能一个文件夹包含了很多节点或者package包,编译时间会比较久,可以通过指定package名,编译某一个固定的package包,提升编译效率。

下面介绍在Eclipse下如何编译ROS基本工程



首先是设置工作ROS工作区,然后将ROS package导入到Eclipse设置的工作区。


通过Eclipse提供的build或者run等功能去调试ROS工程。同时Eclipse里面提供的快捷键在编译程序里面同样适用。

3.通过hello world 了解ROS基本的运行逻辑


上图的hello world程序展现了ROS框架写Node所使用的核心要素:
Include 就是include ROS的一个基本环境;

Main函数里面有三行需要重点注意:

1.init:引入ROS的一个基本环境,指定节点使用的node名字和一些参数信息;
2.NodeHandle:node和整个ROS框架进行通信所使用的一个句柄指针;
3.数据发送的频率:looprate(10)以10赫兹发送消息。

最底下的while循环以10赫兹的消息频率进行发送,同时进行计数。

Spinonce:有一帧消息就把这消息立马发送出去,同时进行下一轮的消息等待。

4.ROS提供的日志系统


在示例程序里面有一个ROS_INFO,它就是ROS提供的日志系统;

ROS的日志系统是分级的,即在编写节点程序的时候对打印的信息进行分级,对不同的分级,ROS会提供不同的颜色和格式进行展示。分级的作用是为了帮助开发者快速地定位到关键信息,不会对整个节点的逻辑产生实质性的影响。

日志系统提供了两种格式ROS_INFO与ROS_INFO_stream:

ROS_INFO:默认把信息打印到当时运行的屏幕上。
ROS_INFO_stream:它是流式数据,默认输出到后台这个节点所对应的日志文件。

5.ROS提供的subscriber和publisher功能

上一篇:编程语言排行榜:Python 排名第二,首次领先于 Java

下一篇:JAVA程序员必读:基础篇(目录) [Java]