用ROS来做无人测试平台系列之ROS学习-1-基础知识

/*以下皆为个人在学习过程中的一些见解,写在这里一方面是为了复习每周所学的一些知识,另一方面是留作笔记用;我所用的环境配置为Ubuntu16.04+Kinetic版本的ROS+catkin管理工具+C++IDE之ClionC+PythonIDE之pycharm*/

强烈推荐的书籍:R.Patrick Goebel的ROS By Example

ROS简介:ROS是一个基于网络的去中心化的框架,各个节点之间独立运行,可以通过消息来互相传递信息。在学习的过程中可以掌握C++、Python编程,cmake的相关使用,以及有关机器人的相关知识。

基础知识(基础知识的掌握看ROS的官方教程即可):http://wiki.ros.org/ROS/Tutorials

一、ROS的文件系统级


1、package:功能包,通过catkin_create_pkg 来建立,建完之后一定包括package.xml,cmakelist.txt,一般都要修改这两个文件。Cmake比较好的教程:

2、消息与服务:ROS帮我们简化了此过程,我们只需要建一个.msg和.srv文件,roscpp即可帮我们自动生成所需的头文件。所谓的消息与服务就是指由客户端发出的消息,服务器提供相应的服务(处理机制)来对待服务。便于分布式处理。

3、消息与服务的进阶版-actionlib:客户端发送的为goal,服务增加了相应的feedback,results。http://wiki.ros.org/actionlib

用ROS来做无人测试平台系列之ROS学习-1-基础知识_第1张图片

二、ROS的计算图级

1、节点:一个可执行的程序。分布式模块化的最好体现。最好一个节点实现一个单一的功能。

2、参数服务器:通过参数配置节点。

3、消息:用于节点之间的通信。

4、主题:节点之间传递消息的媒介(对消息进行路由和消息管理的数据总线)

5、服务:也可以理解为一个用于处理数据的的节点,他与主题最大的不同就是主题只是消息的转发站,而服务可以做出相应的处理。

你可能感兴趣的:(ROS,无人车,轮式机器人,ROS,无人车,轮式机器人)