目录
- 前言
- 开机
- 网络配置和远程连接
- 快速体验(1)(2)(3)
- 总结
前言
地平线团队在不断测试,完善了sunrise X3pi
这块板子之后,X3pi开发板已经变得成熟。仅个人观点,个人认为X3配置的双核BPU在使用合理的情况下,推理能力并不亚与其他派,贴主实装了yolov5目标检测上板推理+Cython后处理,推理速度达到了20多帧,理论上通过超频,多线程等处理还能达到更快。
言归正传,前些日子sunrise X3pi
正式改名RDK X3
,并且推出了将电路高度集成在核心板,仅通过2排CM4板对板接口向外引出,功能同样强大的RDK X3 Module
。贴主这边立马参加了新板试用活动,拿到一块热乎的X3 Module和此时还未开卖的官方载板。
本帖主要对新板展开快速体验,寻找一些注意事项,并快速搭建一辆视觉小车。
开机
开机前,需要烧录系统,贴主这块核心板到的时候,载板还未发出,迫不及待体验就去购买了微雪载版,在X3 module手册中有提到烧录系统相关,可以选择烧录到板卡自带的闪存,也可以选择烧录到TF储存卡,烧录系统完成后就可以插电开机了。
由于我买的微雪载板似乎没有提供调试串口,所以直接插上了键鼠和HDMI显示器开机,可以看见地平线的logo桌面,正常开机了。
网络配置和远程连接
我在X3pi的习惯登陆方式是:“手机开热点
>>板端自动连接
>>PC端ssh登入
”,而这次官方寄来的载板是无wifi版本的,为了能够连接网络实现快速登入,入手了一块无线网卡,取代板子的wifi模块。
购置无线网卡时需要注意,问问客服ubuntu系统能否使用,树莓派和英伟达等开发板能否使用。如果其他开发板都能使用,那么X3也能用。
插上网卡不能直接使用,我们需要安装驱动,可以直接找客服要编译好的驱动文件(以.ko为后缀),本帖以88x2bu
驱动文件为例展示安装。
插上键鼠,显示器,直接打开图形化桌面,用U盘把驱动文件转移到板子上的/lib/modules/4.14.87/
路径下,对驱动签名sudo hobot-sign-file 88x2bu.ko
,并启用驱动sudo /sbin/depmod -a 4.14.87 sudo insmod 88x2bu.ko
。这时,就可以用正常的方法连接wifi并ssh登入了。
快速体验(1)
板上的快速体验demo和旧版是差不多的,但是多出了很多Cdemo,这次先不看它们,玩点不一样的。
参照我在地平线社区的文章【小白适用】如何用X3pi秒杀视觉循迹小车
,快速搭建一辆二轮小车
写一个控制函数,简单测试一下电机控制
import Hobot.GPIO as GPIO
pwma , pwmb = 32 ,33
stby , ain2 , ain1 , bin1 , bin2 = 11 , 13 , 15 , 16 , 18
GPIO.setmode(GPIO.BOARD)
GPIO.setup(stby,GPIO.OUT)
GPIO.setup(ain1,GPIO.OUT)
GPIO.setup(ain2,GPIO.OUT)
GPIO.setup(bin1,GPIO.OUT)
GPIO.setup(bin2,GPIO.OUT)
GPIO.setmode(GPIO.BOARD)
pa = GPIO.PWM(pwma,48000)
pb = GPIO.PWM(pwmb,48000)
#启动tb6612电机控制模块
GPIO.output(stby,GPIO.HIGH)
#初始占空比
pa.start(100)
pb.start(100)
def ctrl(left,right):
if left >= 0:
GPIO.output(ain1,GPIO.HIGH)
GPIO.output(ain2,GPIO.LOW)
else:
GPIO.output(ain2,GPIO.HIGH)
GPIO.output(ain1,GPIO.LOW)
if right >= 0:
GPIO.output(bin1,GPIO.HIGH)
GPIO.output(bin2,GPIO.LOW)
else:
GPIO.output(bin2,GPIO.HIGH)
GPIO.output(bin1,GPIO.LOW)
pa.ChangeDutyCycle(abs(left))
pb.ChangeDutyCycle(abs(right))
pa.start(abs(left))
pb.start(abs(right))
该控制函数传入左右pwm值,控制电机,且根据pwm正负反馈到电机正反转。
快速体验(2)
小车可以动了,不妨再做一些高逼格的东西,我们给小车部署上目标检测,就做个手势跟随吧。
找个训练集,贴主这边是在github上找的无标手势图集,自己打的标,质量一般因此不方便开源。
然后使用yolov5框架训练模型
模型训练好之后,需要量化成bin文件才能在板上推理,将yolov5模型部署到板上高速推理的方法请参考我在地平线社区的文章【模型提速】如何在X3pi使用yolov5模型50ms推理
PS:至于天工开物工具链面对小白的:如何部署工具链,如何转化模型等问题,站内是有对应教程的,并且我的学习还不够充分,只是知道如何使用,但在不久后我计划出一篇面向小白的模型部署详细全过程教程,还请期待。
我们在板端测试一下模型,效果如下
快速体验(3)
最后再将两部分整合,以摄像头读取画面,转化为nv12数据,推理得到目标框数据,在阈值之上选取置信度最高的框,将其与图像中心点的差距作为误差,可传入pid处理,但贴主这边没有传入pid,只是做了缓慢旋转的算法,由于后处理代码是使用X3的demo,放在这里过于凸长,大家可以可以到我的代码仓库查看:github.com/hachi-leaf/sunrise
效果视频:bilibili.com/video/BV1ec411w789
总结
整块板子体验下来,虽然总体和X3pi的功能基本一致,但/app下多出了很多C的demo,开放了许多底层C代码,可见地平线对开发者们的高度欢迎。X3Module把接口集成在两排CM4接口,也极大方便了扩展应用。前几天虽迟但到的官方载板结构和英伟达相似,已经能够预见地平线在国际战线上的做大做强了。
后续我将使用X3参加全国大学生光电设计竞赛并开展其他机器人开发活动,将会给大家带来更多开源分享,敬请期待!
评论(0)
您还未登录,请登录后发表或查看评论