Apollo ROS

  • ROS概述
  • Apollo ROS原理
  • ROS深入介绍
  • Apollo框架使用

目录

ROS概述

机器人操作系统的历史

核心概念

基础message 类型

首先启动 ROScore

编译系统——基于cmake

Apollo ROS原理

通信性能优化

去中心化网络拓扑

数据兼容性扩展

ROS深入介绍

ROS packages基本组成方式

CMakeLists怎么去编译ROS工程

hello world

subscriber例子

Publisher例子

其他通讯方式

可视化工具

Apollo框架使用

TF坐标系转换

RQT用户接口

机器人模型(URDF)

仿真中的描述(SDF)

其他使用比较广泛的概念


 

ROS概述

     

从不同模块的数据交互 到车的决策控制

ROS是基于消息机制的,从子模块都构建构成

     Apollo ROS_第1张图片

 ROS Overview

       Apollo ROS_第2张图片

机器人操作系统的历史

松耦合、点对点,嵌入式,跨语言、轻量级、开源框架

            

核心概念

节点(node):算法模块(感知)—— 不同节点相互独立、相互通信 

节点管理器(ROScore):cpu 节点之间建立通信连接

主题(topic):包含各种信息  通讯时候的不同数据类型文件

             Apollo ROS_第3张图片

基础message 类型

                   Apollo ROS_第4张图片

首先启动 ROScore

  • Roslaunch 启动各个节点
  • Talker 启动发送节点程序
  • Rostopic info 启动主题订阅
  • listener 启动接受信息

编译系统——基于cmake

              Apollo ROS_第5张图片

launch文件

              Apollo ROS_第6张图片

Gazebo 仿真工具

               Apollo ROS_第7张图片

Apollo ROS原理

ROS能否满足工程需求?

  • 大数据量传输性能瓶颈
  • 单中心的网络存在单点风险
  • 数据格式缺乏后向兼容

                        Apollo ROS_第8张图片                               

通信性能优化

由于通信的性能问题,大数据量会在通信时会有延迟。

在自动驾驶中,一个传感器数据(camera)可能会有很多的节点去订阅。

之前的ROS在多个订阅 会做很多的复制。

Apollo 共享内存减少了多次数据copy。

            Apollo ROS_第9张图片 

               Apollo ROS_第10张图片

            Apollo ROS_第11张图片

去中心化网络拓扑

原生ROS以Master为中心(过程太多,建立联系时太依赖master)(在多机系统更加不适应)

Apollo建立一个点对点的复杂网络拓扑

                Apollo ROS_第12张图片

RTPS服务 (通知各个节点,有新的节点加入/退出)

      Apollo ROS_第13张图片

流程

   Apollo ROS_第14张图片              Apollo ROS_第15张图片

   Apollo ROS_第16张图片               Apollo ROS_第17张图片

数据兼容性扩展

原生ROS使用 Message 描述组件接口语言(接口升级,接口难以兼容)

Apollo引入一个新的消息买描述格式 Protobuf (tensorflow)

                            Apollo ROS_第18张图片

         Apollo ROS_第19张图片

ROS深入介绍

ROS packages基本组成方式

         Apollo ROS_第20张图片

package 定义了可执行文件中依赖的一些库,软件版本,开发信息

               Apollo ROS_第21张图片

CMakeLists怎么去编译ROS工程

                 Apollo ROS_第22张图片

hello world

nodehaddle 句柄指针

        Apollo ROS_第23张图片

subscriber例子

接收方。使用回调函数

         Apollo ROS_第24张图片

Publisher例子

         Apollo ROS_第25张图片

每个节点都是复杂的交互过程,既有发送,又有接收

其他通讯方式

service

  Apollo ROS_第26张图片

parameter

主动去get 参数

       Apollo ROS_第27张图片

可视化工具

rviz 也可以当作其中的一个节点

       Apollo ROS_第28张图片

Apollo框架使用

TF坐标系转换

节点是松耦合的关系,在系统中是独立运行的。每个节点有其自己的坐标系。

相对独立的坐标系,转化到一个坐标系

      Apollo ROS_第29张图片

 控制行命令   TF转换树   可视化

             Apollo ROS_第30张图片

               Apollo ROS_第31张图片

RQT用户接口

R QT 可视化

             Apollo ROS_第32张图片

常用工具

rqt_image_view 实时看camera中的图像数据

              Apollo ROS_第33张图片

rqt_multiplot(转化为二维坐标系)

                     Apollo ROS_第34张图片

rqt_graph 节点显示(tensorflow)

                Apollo ROS_第35张图片

日志系统

          Apollo ROS_第36张图片

           Apollo ROS_第37张图片

机器人模型(URDF)

统一机器人格式描述语言

            Apollo ROS_第38张图片

 

               Apollo ROS_第39张图片

仿真中的描述(SDF)

 

      Apollo ROS_第40张图片

其他使用比较广泛的概念

Services(list call)

           Apollo ROS_第41张图片

                 Apollo ROS_第42张图片

                 Apollo ROS_第43张图片

Actions(多一个取消的功能)

         Apollo ROS_第44张图片

Time

                Apollo ROS_第45张图片

Bags(录制数据,比较、)

                    Apollo ROS_第46张图片

Debug

                  Apollo ROS_第47张图片

 

 

你可能感兴趣的:(Apollo课程,Apollo代码,ROS)