当前位置:   article > 正文

香橙派昇腾AIpro ROS具身智能机器人创新实践

香橙派昇腾AIpro ROS具身智能机器人创新实践

香橙派昇腾 AIpro ROS具身智能机器人创新实践


前言

哈喽,大家好!第一次见面请大家多多关照。 因为昇腾的国家级、市级大创要结项同时2024的昇腾AI创新大赛还想干票大的,下半年去商汤实习,应该会比较闲,故此开波首坑!

先说一个我的个人经历吧,和昇腾也是一年多的老朋友了,去年打了23的昇腾AI创新大赛就拿了区银奖没进国,但是赛后竟然有2w的奖金,自此就彻底沦陷昇腾了。由于我本人是人工智能专业,去年做的项目也是“nlp端侧部署”,今年想要基于这个再提升一下,所以就把目光投向了“具身智能”这个领域。


故而,此波开坑将涉及的知识面很广,上有910b集群服务器的大模型训练和微调,夹带ros的机器人感知、建图、导航、规划、决策等,底层涉及嵌入式的layerout和单片机嵌入式开发(谁让咋是智能车出生呢~)
我也不知道自己能不能把这个坑填上,只能说尽力而为哈,望诸位共勉~


一、香橙派AIpro介绍

1.香橙派AIpro简介

香橙派联合华为发布了基于昇腾的Orange Pi AIpro开发板,提供8/20TOPS澎湃算力,能覆盖生态开发板者的主流应用场景,让用户实践各种创新场景,并为其提供配套的软硬件。而价格更是极为亲民,8TOPS、8GB内存的创客价/预售价仅为799元,8TOPS、16GB内存的创客价/预售价仅为999元。20TOPS的顶配也才1999,相比华子确实良心的太多了。Orange Pi AIpro开发板采用昇腾AI技术路线,无论在外观上、性能上还是技术服务支持上都非常优秀,提供8/20TOPS澎湃算力,能覆盖生态开发板者的主流应用场景,让用户实践各种创新场景,并为其提供配套的软硬件。

请添加图片描述
OrangePi AIpro(8-12T)采用昇腾AI技术路线,具体为4核64位处理器+AI处理器,集成图形处理器,支持8-12TOPS AI算力,拥有8GB/16GB LPDDR4X,可以外接32GB/64GB/128GB/256GB eMMC模块,支持双4K高清输出。 Orange Pi AIpro引用了相当丰富的接口,包括两个HDMI输出、GPIO接口、Type-C电源接口、支持SATA/NVMe SSD 2280的M.2插槽、TF插槽、千兆网口、两个USB3.0、一个USB Type-C 3.0、一个Micro USB(串口打印调试功能)、两个MIPI摄像头、一个MIPI屏等,预留电池接口,可广泛适用于AI边缘计算、深度视觉学习及视频流AI分析、视频图像分析、自然语言处理、智能小车、机械臂、人工智能、无人机、云计算、AR/VR、智能安防、智能家居等领域,覆盖 AIoT各个行业。 Orange Pi AIpro支持Ubuntu、openEuler操作系统,满足大多数AI算法原型验证、推理应用开发的需求。

小平手里目前20t和8t的板子都已入坑,谁让咱是昇腾家的铁粉呢~

二、AIpro ros环境搭建

别问为啥用ros1,不直接apt安装,因为本心是想重新看一遍ros的整个实现,考虑把ros算法下移至高性能mcu,这样掉包的时候都能去看源码来加深理解,其次才是本地编译带来的性能加速,主要还是为了督促一下自己学习,要不直接用ros2不香嘛~

参考博客:香橙派AIpro测评:快速部署SLAM算法,性能与体验的完美融合:https://blog.csdn.net/qq_45049500/article/details/140136108

1.编译noetic-ros

直接编译ros的源码坑倒是没什么坑,常见报错都有解决方案哈,我编译的时候有一个报错需要将gcc11回退到gcc9才可以编译通过(8t已经编完投入生产了,等我20t编ros的时候遇到了再分享给大家哈)

参考博客:Ubuntu 22.04源码编译安装ros noetic https://blog.csdn.net/Drknown/article/details/128701624

2.安装编译需要的ros包

这部分就很是头疼,因为我ros工作空间跑的是迁移之前树莓派上的麦轮小车,所以就是编译中遇到一个缺的包补一个包,足足耗时我三天的青春呐¥
这部分很无聊就是缺啥补啥,但就是很容易遇到历史遗留原因造成的bug,详情都等之后20t的板子上见真章哈,大家遇到问题可以评论去交流哈

3.系统镜像备份

当我们把系统的环境配置完了之后首当其冲的一定是要把现在的镜像备份,要不后面系统被自己玩炸了都没地方哭!!!
我也是去找了好多的资料研究怎么去备份和打包这个镜像,但发现最后往往是大道至简,直接ubuntu上两行命令搞定,枉废我试了诸如systemback、winhex、diskgenius等等工具,最可气的是这些克隆完还不能用…

镜像备份代码如下(环境:本地ubuntu物理机 准备:要备份系统的sd卡文件):
注:tf卡的挂载位置大家按自己的来就行,打包后的位置也需要指定本,这个耗时有点长,也没有日志回显,大家耐心等待~

# 通过dd指令将挂载的sd卡打包为镜像文件
dd if=/dev/sda | gzip>/home/aipro_20t/orangepiaipro_20t.gz
  • 1
  • 2

请添加图片描述

# 将打包的文件指向需要备份的挂载sd卡(sd卡需要格式化为ext4)
gzip -dc /home/aipro_20t/orangepiaipro_20t.gz  | sudo dd of=/dev/sda
  • 1
  • 2

请添加图片描述

参考博客:制作SD卡备份镜像以及还原 https://blog.csdn.net/sinat_33909696/article/details/116430895

三、ros机器人实践

为什么要用ros呢?

ROS(Robot Operating System)是一个适用于机器人的开源框架,这个框架把原本松散的零部件耦合在了一起,为它们提供了通信架构。
ROS虽然叫做操作系统,但是它却要安装在如Linux这种操作系统上才能运行。它的作用只是连接真正的操作系统(如Linux)和使用者自己开发的ROS应用程序(比如自动驾驶的感知、规划、决策等模块),所以它也算是个中间件,在基于ROS的应用程序之间建立起了沟通的桥梁。

实验过程留到后续开专栏再写吧,要不篇幅太长了~

1.添加摄像头(普通usb、D435i)功能包

USB 摄像头是日常使用当中最常见的一种类型,如笔记本内置摄像头等,在 ROS 中使用此类设备非常轻松,可以直接使用 usb_cam 功能包驱动。
Intel RealSense D435i是英特尔公司推出的一款消费级深度相机,包含一个RGB相机、两个红外相机以及一个红外发射器,此外还有一个IMU单元,通过主动立体红外成像获得深度图和对应RGB影像生成RGB-D点云。

2.添加雷达(单线360度激光雷达)功能包

移动机器人在环境中获取障碍物的具体位置、房间的内部轮廓等信息都是非常必要的,这些信息是机器人创建地图、进行导航的基础数据,以及多传感器融合的重要数据。
激光雷达可用于测量机器人和其他物体之间的距离。我使用的是 rplidar A1 雷达,这款雷达适合室内移动机器人使用,可以最快 10Hz 频率检测 360︒范围内的障碍物信息,最远检测信息 6m。具体参数可参考其官网 RPLIDAR A1
针对 rplidar A1 这款激光雷达,ros 中有相应的驱动功能包—rplidar,该功能包的相关话题、参数设置接口可以参考一下链接。
网址:https://github.com/Slamtec/rplidar_ros
rplidar roswiki:http

推荐阅读
相关标签