ROS学习笔记

1. ROS是什么

1.1 ROE发展史

ROS学习笔记_第1张图片

1.2 ROS是什么

ROS学习笔记_第2张图片

 复用别人已经开发好的代码或功能,做进一步扩展和完善,加速机器人开发。含通信机制,开发工具,应用功能,生态系统四大部分。

1.3 ROS的四个组成部分

1.3.1 ROS的通信机制

ROS学习笔记_第3张图片

 每个椭圆代表一个节点,如图像采集,图像处理,SLAM导航等相关算法,每一个具体功能都是一个节点,节点之间的箭头连接代表节点间通信时的数据流向,由此简化出该计算图。

1.3.2 ROS的开发工具

ROS学习笔记_第4张图片

用于机器人开发调试,可视化工具,建立仿真环境等一系列开发工具

1.3.3 ROS中的应用功能

ROS学习笔记_第5张图片

 ROS中应用功能非常丰富,可用于开发机械臂,水下机器人,无人机等,如导航,建图,运动规划等功能包,这些功能包是ROS社区围绕一定框架,协议或接口的标准所开发的一系列算法,我们只需关心其接口输入,输出,围绕所需实现的计算功能,以类似搭积木的方式完成基础开发,在根据具体需求进行完善。

1.3.4 ROS中的生态系统

ROS学习笔记_第6张图片

2. ROS命令行工具的使用

ROS学习笔记_第7张图片

小海龟示例

ROS学习笔记_第8张图片

rosrun 功能包 节点名 :用于运行功能包中某节点

rqt_graph :ROS中有许多rqt开头的命令,是基于QT的可视化工具,直观查看一些信息,此命令是用于显示系统计算图的工具,查看节点与节点间的关系

rosnode :用于显示系统与节点相关的信息eg :rosnode list , rosnode info 节点名

rostopic :查看使用系统发布相关话题

rosmsg :查看消息数据结构

rosseverci :查看使用ros服务

ROS学习笔记_第9张图片

 ROS学习笔记_第10张图片

3. 创建工作空间与功能包

ROS学习笔记_第11张图片

工作空间中含四个相应文件夹src,build,devel,install

src :代码空间,用于存放功能包代码,配置文件,launch文件等

build :编译空间,用于存放编译过程中产生的中间文件

devel :开发空间,用于存放编译后产生的可执行文件,库以及一些脚本

install :安装空间,使用install命令安装成功后存放位置

ROS学习笔记_第12张图片

 ROS学习笔记_第13张图片

4. 发布者Publisher的编程代码实现

ROS学习笔记_第14张图片

步骤

创建工作空间

ROS学习笔记_第15张图片

代码实现,在learning_topic功能包的src文件夹下创建cpp文件,代码如下

ROS学习笔记_第16张图片

 Python版代码

ROS学习笔记_第17张图片

 将所需编译内容写入功能包CMakeLists文件中

ROS学习笔记_第18张图片

 编译并运行发布者

ROS学习笔记_第19张图片

5. 订阅者Subscribe代码实现

在learning_topic功能包的src文件夹下创建cpp文件

 ROS学习笔记_第20张图片

 Python语言

ROS学习笔记_第21张图片

将所需编译内容写入功能包CMakeLists文件中

ROS学习笔记_第22张图片

 编译并运行订阅者

ROS学习笔记_第23张图片

6. 话题消息的定义和使用

ROS学习笔记_第24张图片

 在learning_topic功能包的src文件夹下创建msg文件夹

ROS学习笔记_第25张图片

 ROS学习笔记_第26张图片

 catkin_package 修改如下

ROS学习笔记_第27张图片

发布者与订阅者创建

在learning_topic功能包的src文件夹下创建cpp文件夹

发布者代码

ROS学习笔记_第28张图片

 订阅者代码

ROS学习笔记_第29张图片

 CMakeLists添加如下代码

ROS学习笔记_第30张图片

编译运行

ROS学习笔记_第31张图片

7.客户端Client的编程实现

ROS学习笔记_第32张图片

 创建功能包

ROS学习笔记_第33张图片

创建客户端代码

C++

ROS学习笔记_第34张图片

 Python代码

ROS学习笔记_第35张图片

 配置客户端代码编译规则

ROS学习笔记_第36张图片

 编译并运行客户端

ROS学习笔记_第37张图片

 

8. 服务端Sever的编程实现

服务器代码

ROS学习笔记_第38张图片

 配置服务器代码编译规则

ROS学习笔记_第39张图片

 编译并运行服务器

ROS学习笔记_第40张图片

 

9. launch启动文件的使用方法

9.1 launch文件的作用

ROS学习笔记_第41张图片

9.2 launch文件的常用语法

ROS学习笔记_第42张图片

 ROS学习笔记_第43张图片

ROS学习笔记_第44张图片

 

更多标签参见 roslaunch/XML - ROS Wiki

launch示例

ROS学习笔记_第45张图片

 

10. ROS中常用可视化工具的使用

rqt

ROS学习笔记_第46张图片

 Rviz

ROS学习笔记_第47张图片

 ROS学习笔记_第48张图片

 Gazebo

ROS学习笔记_第49张图片 

你可能感兴趣的:(ROS学习,ubuntu)