OrangePi AIpro 机器人仿真与人工智能应用测评(上)+https://developer.aliyun.com/article/1585390
二、 机器人仿真开发
2.1基于 ROS 平台的机器人仿真
基于ROS的仿真我这里主要进行ROS2 MoveIt机械臂仿真及turtlebot相关运动机器人导航仿真。
2.1.1 机械臂仿真
2.1.1.1 MoveIt介绍
MoveIt是ROS社区下开源的机械臂运行规划库,主要可完成机械臂运动规划、碰撞检测,功能包内还集成了几种开源的运动规划库,可以用来开发机械臂,或者控制现有的机械臂,在机器人领域应用十分广泛。其功能框架如图所示。
2.1.1.2 机械臂仿真环境搭建
按照MoveIt官网教程安装相应的库并编译,步骤如下所示:
创建 Colcon 工作区并下载教程
要获取教程,您需要设置一个 Colcon 工作区。
mkdir -p ~/ws_moveit/src
下载 MoveIt 源代码及教程
移动到 Colcon 工作区,提取 MoveIt 教程源代码:
cd ~/ws_moveit/src git clone https://github.com/ros-planning/moveit2_tutorials
接下来,我们将下载 MoveIt 其他部分的源代码:
vcs import < moveit2_tutorials/moveit2_tutorials.repos
导入命令可能会要求输入 GitHub 认证信息。你可以直接按 Enter 直到它继续(忽略 "Authentication failed"(验证失败)错误)。
构建 Colcon 工作区
以下步骤将从 Debian 安装工作区中尚未安装的任何依赖包。这一步将安装 MoveIt 及其所有依赖包:
sudo apt update && rosdep install -r --from-paths . --ignore-src --rosdistro $ROS_DISTRO -y
下一条命令将配置 Colcon 工作区:
cd ~/ws_moveit colcon build --mixin release
这个构建命令可能需要很长时间(20 多分钟),这取决于你的电脑速度和可用内存量(我们建议 32 GB)。
实际在OrangePi AIpro编译需要数小时,中间需要解决一些依赖问题。
2.1.1.3 示例程序运行
参考MoveIt官网搭建运行环境,下载并编译相关功能包,运行程序即可运行机械臂轨迹规划功能包:
ros2 launch moveit2_tutorials demo.launch.py
因为启动了RVIZ及其GUI界面,所以运行稍微有些卡顿,若不启动GUI界面,实际作为机械臂控制器使用时完全没有问题。
我们还可以打开ROS生态下的Gazebo,运行示例程序,如图所示为机械臂工作台示例。我们可以通过GUI界面操作机械臂的各个关节运行,后续有科研或者工业需要可以与其他开源ROS功能包一起使用完成相关功能。
2.1.2 移动机器人仿真
2.1.2.1 Turtlebot4 机器人仿真
Turtlebot4是开源的ROS2机器人,clearpath公司开发的面向教育的机器人产品,自身携带丰富的传感器,配套的开源软件也很丰富,唯一的缺点就是很贵(10000元+),但是我们可以安装仿真器,在仿真器中体验使用Turtlebot4。官方做的仿真场景是在工厂中,机器人通过自身携带的思岚激光雷达进行二维建图及导航,我们可以使用虚拟手柄操作机器人运行。
按照官方说明文档安装仿真器,步骤如下:
ros2 launch turtlebot4_ignition_bringup turtlebot4_ignition.launch.py slam:=true nav2:=true rviz:=true
命令行运行仿真程序效果如下:
通过GUI 界面操作机器人,RVIZ界面则显示二维激光雷达所建地图。
使用rqt_graph查看节点图:
2.2基于开源动力学库及开源仿真器MuJoCo平台的机器人仿真
按照官网的说明安装好开源的动力学库及MuJoCo
2.2.1 MuJoCo 人形机器人LQR控制程序
这里运行了官方提供的示例程序,主要功能是控制人形机器人单脚站立,使用线性二次型规划控制。运行效果如图所示。
程序主要包括加载机器人模型并渲染展示,建立机器人动力学模型,并在指定位置线性化及离散化,设计LQR控制器,最后施加干扰并渲染完成控制。
2.2.2 使用开源动力学库
这里使用开源的动力学库pinocchio,运行官方示例程序加载机器人,效果如图所示:
主要加载了几种不同种类的机器人,如人形机器人,移动机械臂,四足机器人,无人机。
三、 人工智能应用开发
3.1 官方示例
3.1.1 YOLO5s示例适合部署在边缘设备上
按照官方说明运行Yolo5s示例程序,图像来源使用奥比中光采集的图像,运行效果如图所示,可以看出算法检测出泰迪熊及时钟并给出了相应的置信度。
3.1.2 OCR识别
同样按照示例程序进行,我这里的图片是从昇腾社区官网截取,结果如图所示,能够识别出字符。
系统内还有丰富的示例可以运行,我这里不做演示。
3.2 昇腾社区示例
3.2.1 生成式扩散模型示例
官方说明系统内自带MindSpore开发工具链,至官网下载如下示例程序测试AI性能:
这里测试的是扩散模型,隶属于生成式,示例十分丰富,感兴趣可以至官网下载相关示例程序运行测试。
四、 总结
4.1 使用总结
本文在OrangePi AIpro开发板上搭建了机器人开发环境(ROS及仿真器等),测试了机械臂运行规划及移动机器人建图示例,之后运行了系统内置的AI示例及昇腾社区Mindspore示例。
个人认为OrangePi AIpro的算力及性价比在目前的嵌入式开发板中算相对较高的,环境搭建相对来讲也并不复杂。特别是系统集成了华为的Mindspore工具链,适合在边缘 嵌入式设备中加速AI计算。
目前没有测试相关GPIO(如I2C,SPI等)接口,若OrangePi AIpro的GPIO接口的性能足够(比如传输速率等),个人觉得作为机器人主控完全足够,后续也可以在机器人基础上继续开发相应的AI功能。
4.2 调试总结
至此,本文已经结束了。硬件方面,在拿到开发板之前我买好了相应的硬件(包括外壳,SSD,烧录器,硬盘盒等);软件方面,在编译ROS MoveIt功能包源码时由于MoveIt本身复杂程度高,耗费了挺长的时间(大概几个小时)。由于时间有限,运行AI示例数量有限。大部分工作为晚上10点至凌晨3点之间完成。
如有错误,请指正!