简介:前几节我们主要介绍了关于ROS2通讯机制—主题(Topic)的发布与订阅机制的使用方法,一般情况下,数据周期发布、数据交互频率高,或者数据生产与消费不是强关联的功能,我们通过主题的发布与订阅机制来实现,比如摄像头图像数据、小车控制指令等;ROS2系统底层通讯机制还有另外一种—服务(Service),服务一般用于数据交互频率比较低或者没有明显周期性质,而且需要实时返回交互结果的功能需求中,比如
简介:在前面的章节中,我们先简单学习了ROS2的话题发布和订阅,两种操作都是通过python代码实现的,而在实际应用过程中,我们会经常用到命令行操作来辅助调试,更进一步的可以使用GUI工具辅助调试,比如前边用到的rqt中的Image View工具,这一节在现有功能基础上介绍一部分常用的命令行操作指令。 注:以下实际操作数据都是在duckiebot节点和control节点运行过程中的数据。
简介:在上一节的内容中,我们通过ROS2的话题发布功能将小车实时视频信息发布了出来,同时使用GUI工具进行查看,在这一节内容中,我们学习一下如何订阅话题并处理话题消息,具体实现的功能就是通过方向键控制小车行驶。 1、安装pynput 我们要通过键盘方向键控制小车行走,需要用python编码实现键盘事件监听,我这里使用了pynput库,默认系统时没有安装的,需要手动安装一下: $ pip3
1、硬件准备 LinkIt 7697 _1,继电器模块_1,面包板_1,RGB LED灯_1(共阳极,工作电流20mA,红灯压降2~2.2V,绿灯蓝灯压降3~3.2V),限流电阻2个(一个150Ω,一个100Ω),两头针杜邦线若干,micro USB数据线一根,小号螺丝刀一套,万用表一台。 2、软件准备 1)安装arduino1.8.xxx版。 2)文件—>首选项—>附加开
在ROS1中由主节点(master)负责其它从节点的通信,在同一局域网内通过设置主节点地址也可以实现多机通讯,但是这种多机通讯网络存在一个严重的问题,那就是所有从节点强依赖于主节点,一旦运行主节点的设备离线,整个网络就完全瘫痪了,在ROS2中取消了主节点,通讯系统是基于DDS(Data Distribution Service)实现的,具有实时性、嵌入式、分布式、支持多操作系统等特性,下文我们将简
简介:ROS2功能的学习我们还是在基于OpenAI的gym虚拟仿真环境中来完成,gym虚拟仿真环境安装请参考另一篇教程,这里不再重复说明,接下来我们开始创建一个ROS2的功能节点,并发布虚拟仿真环境小车摄像头的图像,然后利用rqt工具查看图像。 1、创建工作空间 与ROS1类似,ROS2也有工作空间的概念,所谓工作空间,实际就是一个目录结构按约定搭建的文件夹(我们这里的工作空间是指ros2
在教程之前先闲聊几句,为什么要学习ROS2呢?之前为了研发一款无人驾驶小车,学习了一下ROS平台(以下简称ROS1),在使用过程中出现了一个很不好解决的问题,就是无人驾驶需要车车协同,同时还需要一个全局的控制系统对车进行调度,而在ROS1中多机通信很不好实现,在寻找优化方案的过程中了解到了ROS2,发现ROS2可以完美的解决这个问题,而且还支持跨平台,所以就有了学习ROS2的想法,之前有整理过一些
简介:无人驾驶虚拟仿真环境中,道路障碍物默认有3种,路障、小鸭子(模拟行人)和小车,其中路障是静止状态,小鸭子和小车可以是静止状态,也可以是运动状态。障碍物色彩复杂多变、在道路中的位置随机且动态变化,普通的图像处理手段不再适用于障碍物的检测,在这里我们利用机器学习的手段来进行障碍物的检测。 目录 1、模型训练环境部署 2、制作训练数据集 3、模型训练 4、模型验证 5、模型导
简介:接触过ROS1的同学对launch肯定不陌生,在ROS1中,我们常用launch实现node和master同时启动、多节点同时启动配置等功能,ROS2中的launch也是用于多节点启动、配置功能,但是在使用方法上有了很多不同,ROS1只支持xml格式的.launch文件配置,ROS2在兼容xml的基础上,还支持yaml和python格式,而python格式的launch是我的学习重点
简介:ROS2提供了ros2 bag命令,可以记录指定主题的数据到文件中,也可以将记录下的内容再发布出来,相当于是数据的回放,除了通过命令行的方式实现数据记录以外,也可以通过编程实现主题数据记录以及而合成的主题数据记录 目录 1、ros2 bag命令行工具 1.1 ros2 bag record 1.2 ros2 bag info 1.3 ros2 bag play 2、ros2 b
简介:参数也是ROS2系统中很重要的一项功能,主要是用来对节点进行配置,一般用在调试过程中,通过命令行的方式修改节点的一些配置,用以辅助调试,另外节点参数也支持导入和导出,调试好的参数可以导出到本地保存,再次启动时可以加载调试好的参数直接使用。 目录 1、问题描述 2、解决思路 3、编码实现 4、命令行操作示例 1、问题描述 小车自动行驶时,需要对道
简介:ROS2底层通信机制有主题(Topic)和服务(Service)两种,两种通信机制可以解决大部分问题,但是还有一些问题用这两种机制解决起来比较复杂,以无人驾驶虚拟仿真环境中的应用举例,在十字路口或者丁字路口要实现转弯,因为在路口并没有给出转弯车道线,车辆转弯将没有任何依据,通过主题或者服务可以实现强制指挥小车转弯,但是什么时候结束强制指挥又是一个问题,像这类情况,我们就可以通
ROS2学习笔记(九)— ROS2命令行操作常用指令总结(二) 简介:在第六、七、八章节中介绍了自定义消息(Message)、服务(Service)、动作(Action)的实现过程,另外还介绍了参数的应用,在学习过程中我们穿插了部分命令行操作用来调试或者验证相关功能,这一节详细介绍这些内容相关的命令行操作,通过虚拟仿真环境下已经实现的功能来验证。 消息、服务、动作在ROS2中统一称之为接口(i
简介:在上一节中,我们完成了障碍物检测模型训练以及python部署,在这一节中,我们将障碍物识别部署到ROS系统中。 新建功能包 $ catkin_create_pkg objects_detect rospy std_msgs sensor_msgs 新建配置文件 $ mkdir -p objects_detect/config/objects_detect_node $ t
准备工作:安装有相关环境的电脑一台,组装好的无人驾驶小车一台,烧录好系统的SD卡一张,与烧录SD卡配置一致的路由器一台。 注:以下内容都以主机名为duckiebot1的小车为例说明。 目录 1、第一次启动小车 2、初始化设置 3、远程登陆 4、更新电池固件 5、更新驱动板固件 1、第一次启动小车 SD卡插入主控板卡槽,单按一下电池按钮,系统启动,正常现
简介:linux开发板在调试过程中,我们需要在开发板系统内进行某些操作时,可以为开发板接上显示器、鼠标、键盘直接操作,如果开发板不支持接外设或者不方便接外设,尤其是做为小车等机器人主控的开发板在移动过程中,这是绝对不可行的,所以我们需要通过网络远程登录开发板系统进行操作,下面我们介绍一下远程登录的方法以及一些常用操作。 一、SSH 远程登录 SSH 为 Secure
简介:无人驾驶小车主控采用的是NVIDIA Jetson nano开发板,开发板系统安装在SD卡中,系统安装通过dt-shell命令行工具进行,具体操作流程呢如下: 1、命令格式说明 $ dts init_sd_card --hostname duckiebot1 --type duckiebot --configuration DB21M --wifi SmartCarAP:123
简介:在这一章节中,我们需要安装有相关环境(虚拟机方式为例,需要安装有ROS系统,安装过程请参考无人驾驶虚拟仿真教程第2节)的电脑一台,组装好并经过初始化设置的无人驾驶小车一台,路由器一台,主要学习通过脚本或者命令行的方式来与小车进行交互,交互内容包括视频流获取、小车控制、tof传感器数据获取、按钮事件获取、车灯控制等内容。 注:以下命令以duckiebot1为例
简介:本文档描述了城市交通地图外观规范。规范是一组规则,功能系统已经通过这些规则得到验证。这意味着如果在构建城市交通地图时遵循这些规则,无人驾驶小车就可以工作。 任何不遵守此处所述规则的城市交通地图都可能导致在其中运行的小车以意想不到的方式失败。尽管大多数算法对变化都是鲁棒的,但是外观规格的小扰动都可能会对小车的性能产生负面影响,因此地图规格要尽量按照规定
硬件资料设定:小车驱动来自于两个相同的电机,转向依靠两轮差速实现,小车前后左右安装超声波传感器,前后各一个,左右各两个; 功能目标:假设小车左侧有墙壁,通过超声波测距实现按指定距离沿墙行驶 参数设定:车轮半径r=3cm,车轮间距wd=10cm,车身长length=16cm,侧边超声波传感器前后各一个,假设一个在车头一个在车尾,间距=车身=length=16cm,小车线速度恒定v =
简介:在第五节的内容中,我们学习了使用rqt工具集观看摄像头视频流的方法,细心的同学应该会发现camera_node发布的视频数据中的图像有变形现象,图像变形会导致直线不直,部分区域变大,部分区域缩小,导致无法准确计算出我们需要的数据,为了解决这个问题,我们需要先校准相机,另外在虚拟仿真的学习过程中,我们了解到在后续的图像处理过程中,我们还需要知道相机的内参矩阵,以及投影变换矩阵,在这一章节中
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信