ROS2简介

ROS2 VS ROS1

系统架构

ROS vs ROS2 系统架构对比

比较明显的变化:

移除了Master节点管理控制,不再需要roscore了,ROS1Master节点管理器崩溃,系统就会无法订阅和发布

增加了DDS系统,网络安全,实时性提高

ROS1原来基于TCP/UDP通信系统,频繁诟病于延迟、丢数据、无法加密等问题

跨平台

DDS系统

DDS(Data Distribution Service, 数据分发服务)是物联网中广泛应用的一种通信协议,是一个国际标准

https://zhuanlan.zhihu.com/p/192981171

因此DDS系统并不唯一,不同厂家可以根据需要实现不同的DDS系统

例如 OpenSplice、FastRTPS等

Overview

但不同DDS厂家设计的DDS软件接口并不相同

为了解决这个问题,ROS2设计了一个ROS Middleware,简称RMW,如果DDS厂家想要接入ROS2系统,就需要自行编写一下适配的接口,将自家DDS移植过来。

在开发和使用过程中,我们不会涉及DDS系统,上层软件

但需要注意DDS一个通用特性QoS(质量服务策略)

QoS是一种网络传输策略,应用程序指定所需要的网络传输质量行为,QoS服务实现这种行为要求,尽可能地满足客户对通信质量的需求,可以理解为数据提供者和接收者之间的合约

我们在开发设计发布者以及使用一些命令行时,会遇到Qos的配置,比如缓冲队列长度,策略等

ros2 topic echo /xxx --qos-reliability reliable

实际使用过程中,我们只需要安装相应的包,声明我们需要使用的rmw就可以切换不同的DDS

export RMW_IMPLEMENTATION=rmw_fastrtps_cpp

核心概念

在这里插入图片描述

与ROS1类似,不再过多赘述

https://innovusioncn.atlassian.net/l/cp/XuvXpq5S

https://innovusioncn.atlassian.net/l/cp/w0up4kn0

古月居·ROS2入门21讲

安装

一键安装(推荐)

wget http://fishros.com/install -O fishros && . fishros
// 支持noetic(ROS1) foxy(ROS2) galactic(ROS2) rolling(ROS2) iron(ROS2) humble(ROS2)

官网教程安装

https://docs.ros.org/

使用

设置环境变量

source /opt/ros/<ros_version>/setup.bash

ROS2常用命令

//可视化工具
rviz2

ros2 pkg list         //查看系统中功能包列表

ros2 pkg executables <package_name>    //查看包内可执行文件列表
ros2 pkg executables innovusion  

ros2 run <package_name> <node_name>    //节点运行
ros2 run innovusion publisher  --ros-args -p device_ip:=172.168.1.10 -p port:=8010 -p udp_port:=8010

ros2 run rqt_reconfigure rqt_reconfigure  //rqt参数配置工具

ros2 node list //查看当前域活动的节点列表
ros2 node info <node_name>   //查看节点详细信息、包括订阅、发布的消息,开启的服务和动作等


ros2 topic list //列出可使用的主题列表
ros2 topic info <topic_name>  //显示主题消息类型,订阅者数量,发布者数量等
ros2 topic hz <topic_name>    //显示主题的发布频率
ros2 topic bw <topic_name>    //显示主题的带宽
ros2 topic delay <topic_name> //通过header时间戳计算消息延迟
ros2 topic echo <topic_name>  //控制台显示主题消息  --field header.stamp --qos-reliability reliable
ros2 topic pub <topic_name> <message_type> <message_content>

ros2 launch <package_name> <launchfile>
ros2 launch innovusion ivu_pc2.py device_ip:=172.168.1.10   // 通过launch文件运行


ros2 bag info <bag_file>   //显示bag包信息
ros2 bag record <topic_name>  //录制指定topic, 多个topic用空格隔开
ros2 bag record <topic_name> -o <floder_name>    //录制topic, 到一个文件夹中存储
ros2 bag record -a         //录制当前所有的topic, 以时间戳命名文件夹

ros2 bag play <bag_file>    //回放bag_file
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值