0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

智能搬运机器人系列之使用旭日X3派实现机器人防脱轨功能

地瓜机器人 2022-11-25 09:41 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

准备工作

(1)旭日X3派

本摄像头小车上位机采用旭日X3派开发板。开发环境为Ubuntu系统下的opencv-python环境。通过HDMI外接显示器实现对两个车载USB摄像头的监测与开发,进而感知周边地图环境,通过UART与下位机的通信实现对下位机的控制。

(2)Aduino Mega 2560 Pro 开发板+IO拓展板

搬运小车的下位机使用的是以开源开发板Arduino ATmega2560 为原型改进的YWRduino mega 2560 pro开发板,它可以满足搬运小车的基本设计需求。开发环境使用的是Arduino官方提供的IDE和基于VS CODE的Platform IDE。

(3)罗技C170网络摄像头

此摄像头是用于车身位置引导和视觉循迹的摄像头,对分辨率和视野范围有较为特殊的需求。使用视频流时分辨率可以达到640*480像素,每帧图像的品质最高可以达到500万像素,在视频流获取过程中可以实现自动变焦。

(4)免驱动USB摄像头

此摄像头用于颜色识别,其镜头焦距为6.0MM,调焦范围在20MM至极远之内,视像解析度为640*480。摄像头长约3.8CM,宽1.5CM,高约3CM,配有可伸缩线圈,最长可以65CM。

(5)补光灯

补光灯使用的是自行设计的双档可调补光灯,由8个发光二极管并联而成。通过GPIO口控制三极管的通断及发光二极管的通断,实现亮度调节的目的,以满足在不同的环境条件下摄像头对环境光的需求,进而提高颜色识别的精准程度。

轨道状态

poYBAGN_KFKAAf3PAANVQvfOZb8919.png(导航地图)

搬运机器人在地图上是这样一个状态

pYYBAGN_KGqALFe0AAeIjba_TO8466.png

由于拍实体机器人看起来不是很生动(主要是机器人做的太丑了),为了便于生动理解原理我使用以下图片解释。搬运机器人在每次转弯以后,摄像头正对的地方都是一条长直线(生动一点解释就是以下图二)。

poYBAGN_KIWATOrKAAEBpiDSvuI807.pngpoYBAGN_KImAAARhAADaQXUw71o499.png(模拟车身在导航线上)

当搬运机器人中轴线跟导航线中轴线刚好重合,也就是搬运机器人正居导航线正中的时候,这种状况就是最良好的导航状况——搬运机器人正在路的正中,正上方摄像头拍到的导航线状况如下:

pYYBAGN_KOiAV6YuAAAtVZyA_yY415.png(导航线居于图片正中)

当搬运机器人左右发生偏移的时候,机器人与正上方摄像头拍到的导航线状况如下

poYBAGN_KSmAWzeHAACa1YezZCg431.png(模拟车身在导航线偏右)poYBAGN_KS2ATwJHAACf4863TjI988.png(模拟车身在导航线偏左)

由此可见,旭日X3派要做的事情就是,通过摄像头实时拍摄导航线的图片,并且经过一系列算法处理,得出搬运机器人相对导航线的偏离状况,并且把状况实时反馈给下位机。而下位机要做的就是接收到偏离信息,通过姿态调整算法,把搬运机器人调整回到轨道正中。

实现原理

先把拍摄到的导航线图片进行中值滤波,去除噪点。接着转化成灰度图,再把灰度图片进行二值化处理,处理到这里的时候,二值化结果中就只有0——白色的地图;255——导航线,从而使用数学方式找到导航线的中轴线。

由于摄像头跟车身位置固定,所以摄像头拍到图片的中位线就是车身中轴线所在位置,把两条中轴线的坐标还有斜率进行比对,就可以分析出搬运机器人车身相对中轴线的姿态,进而可以把分析结果通过串口通信方式发送给下位机。

导入需要用的库:

import cv2 as cv

设置串口各种参数,波特率设置为115200,使用40PIN中的UART3:

os.system('ls /dev/tty[a-zA-Z]*')

选择8号相机用作视频获取:

cap_follow = cv.VideoCapture(8)

设置两个变量分别用作记录两个中轴线的坐标:

line_1 = 0

获取一帧图片并进行中值滤波:

#第二个参数frame:表示截取到一帧的图片

(此处要解释一些为什么采用中值滤波:均值滤波、方框滤波、高斯滤波,都是线性滤波方式。由于线性滤波的结果是所有像素值的线性组合,因此含有噪声的像素也会被考虑进去,噪声不会被消除,而是以更柔和的方式存在,这时使用非线性滤波效果可能会更好。中值滤波与前面介绍的滤波方式不同,不再采用加权求均值的方式计算滤波结果,它用邻域内所有像素值的中间值来替代当前像素点的像素值。)

剪切获取到的图像,只显示和处理一正中小块(可参考下面图片,由于处理整张图片占用算力而结果跟局部处理一样,所以先裁剪图片到一小块有用区域,然后进行灰度、二值化处理):

ROI = blur[0:210, 345:605] # try to limit the ROI

找出搬运机器人中轴线和导航线中轴线:

n = [len(dst[:, 0]), len(dst[0, :])]

把线标注在处理后的图片上,以便调试时观察:

ROI = cv.line(ROI, (int(n[1] / 2), 0), (int(n[1] / 2), n[0]), (0, 0, 255), 2)

电脑上显示处理后的灰度图片和标注完中轴线的灰度图便于调试时候观察(旭日X3派上的代码以删除了显示功能,因为用的是serve版本没有桌面,使用HDMI显示起来又挺麻烦而且占用算力):

cv.imshow("gray", gray)

在调试窗口输出两个中轴线坐标差值和斜率差值:

print(int( (n[1] / 2 - p1(n[0]))/20 ))

把两个差值处理成0-9十个梯度通过串口传送给下位机

if line_1 < -5 and line_2 > 141:

运行效果

为了方便展示使用电脑模拟搬运机器人(自己写了一个processing程序用作模拟),主要是搬运机器人一打开电源,跑的速度很快,发生偏移和脱轨后的纠正几乎都发生在一瞬间,为了方便展示,自己写了一个模拟的小程序(搬运机器人实跑视频见文末)。

用于仿真的processing程序

此处不一一对processing的程序进行讲解,这个程序实现的功能,仿真出导航线,并且仿真出下位机。这个仿真程序可以通过串口接收到来自旭日X3派反馈的姿态数据,并且根据数据调整搬运机器人的姿态,使导航线重新回到摄像头拍摄图片正中间,即搬运机器人中轴线跟导航线中轴线重合。

import processing.serial.*;

使用电脑运行程序(因为电脑可以看到调试窗口)

右上角的两个小窗口,不带两条直线的是截取后的原始灰度图片,另外一个就是仿真出两条中轴线的模拟图。视频主体模拟的是摄像头右移,即模拟搬运机器人右移,从带有中轴线的调试窗口可看出导航线出现在了图片左边;下位机模拟程序调整搬运机器人车身,可看到屏幕上的中轴线也跟着右移,证明数据反馈和姿态调整算法发生作用。

操作旭日X3派

连接usb摄像头到旭日X3派、用usb转ttl下载器把旭日X3派跟电脑连接在一起:

poYBAGN_KhmAEJYmAADhSnbaiVw558.png

上电,使用ssh登录,在线操作:

poYBAGN_KiaAUbURAAHfgSi9-Fs208.png

在app文件夹里面创建了一个user的文件夹,把自己写的用于测试的代码都放在这里:

poYBAGN_KjOARF1zAAAMDuXh1cc918.png

在命令串口执行代码,并且打开电脑端写的仿真软件:

python3 /app/user/xunxian_pi.py

用手控制摄像头先往右移动,即模拟机器人车身偏右;再往左移,即模拟偏左,可从视频中看出,都可以很快调整回去,黑色的导航线紧跟着摄像头移动。命令串口不断反馈数值和指令,left表示向左调整,right表示向左调整,go stright表示不需要调整(指令下面两行数字分别是坐标调整值和角度值):

原作者:衣柜旁的小明

原链接:详见地平线开发者社区

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45357

    浏览量

    664210
  • 人工智能
    +关注

    关注

    1813

    文章

    49783

    浏览量

    261874
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    工业机器人的特点

    的基础,也是三者的实现终端,智能制造装备产业包括高档数控机床、工业机器人、自动化成套生产线、精密仪器仪表、智能传感器、汽车自动化焊接线、柔性自动化生产线、
    发表于 07-26 11:22

    盘点#机器人开发平台

    地瓜机器人RDK X5开发套件地瓜机器人RDK X5开发套件产品介绍 旭日5芯片10TOPs算力-电子发烧友网
    发表于 05-13 15:02

    【「# ROS 2智能机器人开发实践」阅读体验】+内容初识

    控制机器人沿着路径行驶,同时实时检测环境变化,调整路径规划和导航控制策略。书中提供了完整的导航系统搭建示例,包括代码实现和参数配置,帮助读者快速掌握导航系统的开发。 3. 案例分析与实践 机器
    发表于 04-27 11:24

    地瓜机器人RDK X5 规格书与地瓜机器人RDK X5原理图

    、割草机等细分场景下与全球超过 200+中小创客、50,000+个人开发者开展深度合作,创造了超过 50+品类的智能机器人旭日智能计算芯片相关资料下载链接: 地瓜
    的头像 发表于 04-21 19:01 2597次阅读
    地瓜<b class='flag-5'>机器人</b>RDK <b class='flag-5'>X</b>5 规格书与地瓜<b class='flag-5'>机器人</b>RDK <b class='flag-5'>X</b>5原理图

    名单公布!【书籍评测活动NO.58】ROS 2智能机器人开发实践

    Gazebo机器人仿真平台,以RDK X3、RDK X5赋能生态产品——OriginBot智能机器人开源套件为原型讲解,手把手教读者从零构建
    发表于 03-03 14:18

    全平台搭载旭日5!科沃斯GOAT智能割草机器人全新系列正式开售

    科沃斯GOAT全新系列产品全平台搭载地瓜机器人全新推出的旭日5智能计算芯片
    的头像 发表于 02-18 11:03 1400次阅读
    全平台搭载<b class='flag-5'>旭日</b>5!科沃斯GOAT<b class='flag-5'>智能</b>割草<b class='flag-5'>机器人</b>全新<b class='flag-5'>系列</b>正式开售

    科沃斯GOAT系列割草机器人搭载旭日5芯片

    全新系列割草机器人全平台搭载了地瓜机器人最新推出的旭日5智能计算芯片。这款芯片具备强大的计算能力,拥有高达10 TOPs的算力,为割草
    的头像 发表于 02-14 09:37 1167次阅读

    从扫地机器人到割草机器人,科沃斯再度全平台搭载地瓜机器人旭日系列芯片

    定位解决方案。 GOAT全新系列产品全平台搭载地瓜机器人全新推出的旭日5智能计算芯片 ,具备10 TOPs 算力,拥有丰富的异构计算资源,可支持机器
    发表于 02-13 14:23 1327次阅读
    从扫地<b class='flag-5'>机器人</b>到割草<b class='flag-5'>机器人</b>,科沃斯再度全平台搭载地瓜<b class='flag-5'>机器人</b><b class='flag-5'>旭日</b><b class='flag-5'>系列</b>芯片

    【「具身智能机器人系统」阅读体验】2.具身智能机器人的基础模块

    具身智能机器人的基础模块,这个是本书的第二部分内容,主要分为四个部分:机器人计算系统,自主机器人的感知系统,自主机器人的定位系统,自主
    发表于 01-04 19:22

    《具身智能机器人系统》第10-13章阅读心得具身智能机器人计算挑战

    阅读《具身智能机器人系统》第10-13章,我对具身智能机器人的工程实践有了全新认识。第10章从实时性角度剖析了机器人计算加速问题。
    发表于 01-04 01:15

    【「具身智能机器人系统」阅读体验】+两本互为支持的书

    最近在阅读《具身智能机器人系统》这本书的同时,还读了 《计算机视觉PyTorch数字图像处理》一书,这两本书完全可以视为是互为依托的姊妹篇。《计算机视觉PyTorch数字图像处理》
    发表于 01-01 15:50

    【「具身智能机器人系统」阅读体验】2.具身智能机器人大模型

    中取得了令人瞩目的效果。 阅读感悟 从传统的手动编程到借助大模型实现智能化、自主化,从单一模态的交互到多模态信息的深度融合,再到扩散模型的应用,机器人控制技术正在以惊人的速度进化。这不仅让机器
    发表于 12-29 23:04

    【「具身智能机器人系统」阅读体验】1.初步理解具身智能

    的研发工作奠定了基础。继之而来,北京理工大学在2002年发布的“汇童”系列机器人实现了无外接电缆的行走。 三、问题与挑战 具身智能虽然取得了一定的进展,但是也面临着诸多的问题与挑战,
    发表于 12-28 21:12

    【「具身智能机器人系统」阅读体验】+初品的体验

    《具身智能机器人系统》 一书由甘一鸣、俞波、万梓燊、刘少山老师共同编写,其封面如图1所示。 本书共由5部分组成,其结构和内容如图2所示。 该书可作为高校和科研机构的教材,为学生和研究人员提供系统
    发表于 12-20 19:17

    《具身智能机器人系统》第1-6章阅读心得具身智能机器人系统背景知识与基础模块

    、谷歌的RT系列等前沿产品中展露锋芒。这些突破性成果标志着AI正从虚拟世界迈向物理世界的深度交互。 而研读《具身智能机器人系统》前六章,我对具身智能(Embodied Artifici
    发表于 12-19 22:26