小车人体跟随 之前我们介绍了如何利用 X3派 进行人体检测和跟踪,那么加入我们想要将体检测和跟踪和真实机器人做一个结合会是一种什么样的体验呢? 这里,我们将通过X3派检测到的人体目标进行一个移动跟踪,最终的一个效果就是当装配着X3派和摄像头的小车面前出现一个人物时,小车将会跟随着人体一起移动。接下来,让我们一起来体验一下吧。 编程开发方法 先来看整个程序的流程图: 这里,我们将通过
SLAM建图 从这一节开始,我们开始尝试将 TogetherROS 与机器人联系起来做一些小项目。 第一节将开始学习 SLAM 技术。SLAM一般指即时定位与地图构建,即时定位与地图构建(Simultaneous Localization and Mapping,简称SLAM) 这个章节,我们将联系ROS2 和 TogetherROS ,使用 ROS2 的 SLAM-Toolbox 作为建图
单目3D室内检测 接下来,我们继续学习物体 3D 检测算法。 机器人有时候不仅仅要识别出人,还要识别出房间里有什么东西,这就是室内物体 3D 检测啦。 在TogetherROS上,就集成了这样一套算法,接下来让我们一起来体验以下吧。 先来看一张图片,很明显大家可以看到图中有两个垃圾桶。 运行示例程序 # 配置ROS2环境 $ source /opt/tros/setup.bash
人体检测与跟踪 不知道大家有没有玩过类似XBOX的体感游戏机,上边会有一个相机,动态识别我们的动作,比如跳舞、打球,是不是还挺神奇的,这就是人体检测与跟踪的应用。 TogetherROS中也集成了一套类似的算法,可以识别人体、人头、人脸、人手等一系列关键点,我们来体验一下。 编程开发方法 先来看一个人体识别的基础应用,我们驱动相机后,实时采样视觉信息,然后再通过检测算法,识别每一幅图片中人
动态目标检测 图像物体分类重在分析图像中存在的物体是什么,便于机器理解看到的环境信息,另外一种场景,机器不仅要识别某一物体,还要知道这个物体所在的位置,当物体在运动时,更要快速连续的跟踪,这就是目标检测,重在分析识别到物体在图像中的位置。 目标检测原理 假设我们要识别图像中这只狗的位置,以最为常用的YOLO算法为例,它会运用单个卷积神经网络(CNN) ,将图像分成网格,并预测每个网格的对
图像物体分类 接下来我们继续学习基于Hobot CNN模型推理库之上的视觉应用。 机器人要感知周边环境,那就得确定看到的图像中都有什么,比如地上有一只猫,旁边有一个桌子之类的,这个猫和桌子就是具体的物体分类啦。 图像分类原理 如果是人来识别一只猫的话,似乎再简单不过了,无论黑猫、白猫还是花猫,我们一眼就可以看出来。 不过这件事对于机器人来讲可没有那么简单,为了能够让机器准确识别一只猫,无
智能机器人与机器学习是紧密相连的,机器学习又可以分成数据采集、标注、训练、推理等环节,其中数据的训练需要消耗大量算力,适合在服务器或者云端进行,不过训练好的模型可是要部署到机器人端进行推理运算的,所以模型推理的效率如何,直接决定了机器人视觉处理的效率,这刚好是TogetherROS所擅长的地方。 Hobot DNN模型推理库 TogetherROS集成了Hobot DNN模型推理库,集成了众多
CV图像加速处理 OpenCV是一个著名的机器视觉处理库,相信大家都有听过,这个库中有很多图像处理的基础算法,比如灰度变化、图像滤波等,不过这个库为了保证较好的通用性,主要通过软件实现各种算法,TogetherROS对此作了大量优化,我们一起来看看。 TogetherROS视觉加速 TogetherROS中集成了地平线Hobot CV视觉加速库,通过底层芯片中的硬件引擎,软硬件协同,可以提升
机器视觉介绍 机器视觉概念 机器视觉, 就是用计算机来模拟人的视觉功能,但这并不仅仅是人眼的简单延伸,更重要的是像人脑一样,可以从客观事物的图像中提取信息,进行处理并加以理解,最终用于实际检测、控制等场景。 获取图像信息相对简单,但想让机器人理解图像中千变万化的物品,就难上加难了。 为了解决这一系列复杂的问题,机器视觉也是一个涉猎广泛的交叉学科,横跨人工智能、神经生物学、物理学、计
I2C同步串行通信 SPI通信虽然功能更强大了,但是需要4根线做连接,还是有点复杂,接下来I2C的连线就简单很多了。 I2C通信原理 I2C也是一种常用的串行通信方式,和SPI一样可以连接多个设备,重点是它只需要两根线就可以完成 不过他的两根线和UART不同,不全是传输数据用的,I2C中的一根线是时钟线,另一根才是传输数据的,这根线可以双向的传输数据。 I2C通信中可以有多个主设备或
SPI同步串行通信 UART串口通信中的数据只能一位一位的传输,如果数据量比较大的时候,传输速率会受到很大影响,此时我们就可以考虑使用同步串行通信了,比如SPI。 SPI通信原理 SPI,全称是Serial Peripheral Interface,也就是串行外设接口,同样是一种通信协议,在很多芯片中都有集成。 相比之前学习的UART串口通信,他多了两根线,其中一个是时钟信号,另一个是
UART串口通信 现在的传感器和执行器种类越来越多,需要和控制器传输的数据也是多种多样,只用GPIO来控制和读取的话,只有0和1的状态,未免还是有点麻烦,各种各样的通信方法也层出不穷,UART串口通信绝对是最为常用的一种。 串口通信原理 串行通信是一种通讯协议,也可以简称为串口,可以理解为数据是串成一串的,所以也就只能一位一位的发送,这样传输的速度虽然受到了限制,但是对硬件线路的要
PWM脉冲宽度调制 我们已经可以用GPIO控制LED灯一闪一闪亮晶晶了,这样只有亮和灭的状态似乎还是太简单了,能不能对LED的亮度进行调整呢? 当然没问题,这就要用到接下来学习的PWM脉冲宽度调制了。 PWM脉冲宽度调制原理 在GPIO的数字输入和输出模式中,只有高低电平,高电平一般是3.3V或者5V,低电平就是0V,如果我想要一个折中一点的电压怎么办呢?PWM大家了解一下。 P
TogetherROS示例运行接下来,我们就在安装配置好TogetherROS的旭日X3派上,试一试系统自带的一些例程,确保整个系统已经可以正常运行。 通信测试先来测试一下TogetherROS系统的通信功能。 我们需要启动两个终端,分别连接到旭日X3派上,并分别按以下命令配置环境变量。 终端1: bash $ source /opt/tros/local_setup.bash
数字输入与输出 数字输入与输出是最常用的一种外设通信方式,虽然每一个端口只有0和1两种状态,但却可以组合出各种各样的变化。 数字输入与输出原理 数字输入与输出,也称为通用输入输出,全称是General-purpose input/output,大部分情况下,我们都会用简称GPIO GPIO的功能,主要是指这个管脚可以作为数字信号的输入或者输出使用,到底是输入还是输出呢,这需要我
分布式通信配置 智能机器人的功能繁多,全都放在一个计算机里,经常会遇到计算能力不够、处理出现卡顿等情况,如果可以将这些任务拆解,分配到多个计算机中运行岂不是可以减轻压力? 这就是分布式系统,可以实现多计算平台上的任务分配。 分布式通信 什么叫分布式? 机器人功能是由各种节点组成的,这些节点可能位于不同的计算机中,这种结构可以将原本资源消耗较多的任务,分配到不同的平台上,减轻计算压
零拷贝数据传输 在传统操作系统的数据传输过程中,系统内部会在磁盘、内存、缓存中多次进行数据拷贝,每次都会占用CPU的资源,数据量小的时候还好,随着数据量的增加,CPU的开销也会持续增加,尤其是在机器人图像数据的应用中 ,经常会发生这种问题,导致CPU都在做数据拷贝,没有时间处理其他的应用功能了,直接的感觉就是处理卡顿。 零拷贝技术 针对这种问题,零拷贝技术应运而生。 零拷贝主要的任务就是
多节点动作通信 机器人是一个复杂的智能系统,并不仅仅是键盘遥控运动、识别某个目标这么简单,我们需要实现的是送餐、送货、分拣等满足具体场景需求的机器人。 在这些应用功能的实现中,另外一种ROS通信机制也会被常常用到——那就是动作。从这个名字上就可以很好理解这个概念的含义,这种通信机制的目的就是便于对机器人某一完整行为的流程进行管理。 通信模型 举个例子,比如我们想让机器人转个圈,这肯
多节点服务通信 话题通信可以实现多个ROS节点之间数据的单向传输,使用这种异步通信机制,发布者无法准确知道订阅者是否收到消息,本讲我们将一起学习ROS另外一种常用的通信方法——**服务**,可以实现类似**你问我答的同步通信**效果。 通信模型 在之前的课程中,我们通过一个节点驱动相机,发布图像话题,另外一个节点订阅图像话题,并实现对其中红色物体的识别,此时我们可以按照图
多节点话题通信 节点实现了机器人各种各样的功能,但这些功能并不是独立的,之间会有千丝万缕的联系,其中最重要的一种联系方式就是话题,它是节点间传递数据的桥梁。 通信模型 以两个机器人节点为例。A节点的功能是驱动相机这个硬件设备,获取得到相机拍摄的图像信息,B节点的功能是视频监控,将相机拍摄到的图像实时显示给用户查看。 大家可以想一下,这两个节点是不是必然存在某种关系?没错,节
TogetherROS开源机器人操作系统、地平线机器人开发平台教程
博客
泡泡
积分
勋章
地平线机器人开发平台教程|6.2_小车人体跟随
地平线机器人开发平台教程|6.1_SLAM地图构建
地平线机器人开发平台教程|5.7_单目3D室内检测
地平线机器人开发平台教程|5.6_人体检测与跟踪
地平线机器人开发平台教程|5.5_动态目标检测
地平线机器人开发平台教程|5.4_图像物体分类
地平线机器人开发平台教程|5.3模型推理框架
地平线机器人开发平台教程|5.2CV图像处理加速
地平线机器人开发平台教程|5.1机器视觉介绍
地平线机器人开发平台教程|4.5I2C同步串行通信
地平线机器人开发平台教程|4.4SPI同步串行通信
地平线机器人开发平台教程|4.3UART异步串口通信
地平线机器人开发平台教程|4.2PWM脉冲宽度调制
地平线机器人开发平台教程|2.4TogetherROS示例运行
地平线机器人开发平台教程|4.1数字输入与输出
地平线机器人开发平台教程|3.5分布式通信配置
地平线机器人开发平台教程|3.4零拷贝数据传输
地平线机器人开发平台教程|3.3多节点动作通信
地平线机器人开发平台教程|3.2多节点服务通信
地平线机器人开发平台教程|3.1多节点话题通信
地平线机器人开发平台教程|2.3TogetherROS系统配置
地平线机器人开发平台教程|2.2TogetherROS系统安装
地平线机器人开发平台教程|2.1机器人开发套件介绍
地平线机器人开发平台教程|1.4TogetherROS应用场景
地平线机器人开发平台教程|1.3TogetherROS与ROS对比
地平线机器人开发平台教程|1.2TogetherROS系统介绍
地平线机器人开发平台教程|1.1智能机器人发展与现状
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信