基于NodeHub智能机器人应用中心是深度学习巡线小车实现示例
racing_line_follower
视觉巡线Demo基于纯视觉的方法实现赛车在赛道内运动,其中赛道中间有引导线辅助赛车保持在赛道内。
为实现上述功能,需要视觉输入、环境感知、运动控制三大模块,其中:
视觉输入模块负责获取真实世界(或仿真世界)的图像并传递给下一级环境感知模块;
环境感知模块负责感知赛车在赛道中的位置,并将相关信息传递给运动控制模块;
运动控制模块根据环境感知模块输出的赛车位置信息计算得出合理的运动控制指令并下发给赛车进行对应运动。
接下来需要对上述三个大的模块进行细化和实现以完成视觉巡线Demo。NodeHub是地平线为广大机器人开发者提供的“智能机器人应用中心”,该应用中心包含多个类别不同功能的开源Node,能够快速安装和使用,通过串联不同的Node可以完成对上述三大模块的实现。
实现细节
视觉输入
NodeHub中“外设适配”栏目包含多种传感器和机器人底盘的适配,可以轻松获取图像、点云数据。这里选择《MIPI相机驱动》来获取实现视觉输入模块。选择该模块的主要原因是该模块支持GC4663大FOV相机,视角更大,有利于赛车完成巡线。
查看《MIPI相机驱动》Node可知:
该Node支持1920x1080、640x480等多种常见分辨率;
发布话题为/hbmem_image、/image_raw、/camera_info;
可以通过ros2 launch加载不同launch文件的方式选择分辨率。
综合考虑下一级感知模块的精度和系统负载,这里选择mipi_cam_640x480_nv12_hbmem.launch.py配置文件,即以共享内存的方式发布640x480分辨率的NV12格式图像。
点击Node页面“一键部署”按钮,将生成的如下命令拷贝至RDK X3终端运行
在完成“一键部署”后,启动该Node的命令为
环境感知
赛道检测,检测赛道中引导线相对赛车本体的位置关系
NodeHub中“比赛专区”栏目中《赛道检测》基于深度学习的方法识别图像中赛道的中点并以话题的形式发布。
查看《赛道检测》Node可知:
该Node订阅/hbmem_image话题,类型为hbm_img_msgs/msg/HbmMsg1080P,此话题与视觉输入模块发布的话题一致,可以获取视觉输入模块的图像数据;
该Node将计算处理后的赛道中点值以/racing_track_center_detection话题发布,类型为geometry_msgs/msg/PointStamped;
模型文件默认路径/opt/nodehub_model/race_detection/race_track_detection.bin,更新模块可以替换该文件;
点击Node页面“一键部署”按钮,将生成的如下命令拷贝至RDK X3终端运行
在完成“一键部署”后,启动该Node的命令为
模型训练方式可参考《赛道检测模型训练部署全过程讲解》
运动控制
NodeHub中“比赛专区”栏目中《小车巡线控制》接收赛道识别节点的消息,控制小车巡线。
查看《小车巡线控制》Node可知:
该Node订阅/racing_track_center_detection话题,类型为geometry_msgs/msg/PointStamped,此话题与《赛道检测》Node发布的话题一致,用于获取赛道信息进行巡线控制;
该Node综合感知信息将计算处理后将控制信息以/cmd_vel话题发布,类型为geometry_msgs/msg/Twist;
点击Node页面“一键部署”按钮,将生成的如下命令拷贝至RDK X3终端运行
在完成“一键部署”后,启动该Node的命令为
source /opt/tros/local_setup.bash
ros2 launch racing_control racing_control.launch.py avoid_angular_ratio:=0.2 avoid_linear_speed:=0.1 follow_angular_ratio:=-1.0 follow_linear_speed:=0.1
启动底盘
NodeHub中“外设适配”栏目包含多种机器人底盘,需要按照机器人型号选择,此处以《Originbot底盘驱动》为例,该节点接收控制节点的消息,分解为对各个电机的控制,实现小车运动
查看《Originbot底盘驱动》Node可知:
该Node订阅/cmd_vdel话题,类型为geometry_msgs/msg/Twist,此话题与《小车巡线控制》Node发布的话题一致,用于获取控制信息进行电机控制;
点击Node页面“一键部署”按钮,将生成的如下命令拷贝至RDK X3终端运行
在完成“一键部署”后,启动该Node的命令为
至此,视觉循线Demo已经搭建完成整体详细框图如下图所示。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由雪飘梦飞转载自D-Robotics官网,原文标题为:深度学习巡线小车,本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关推荐
连接RDK X3操作奥比中光Astro Pro相机驱动示例
基于RDK X3的奥比中光Astro Pro相机驱动操作方案介绍。
基于RDK X3开发板设计并实现的手持slam建图设计
这里使用RDK X3开发板设计并实现了一款SLAM手持建图设备,它使用RDK X3开发板的计算性能,通过激光雷达实现一个纯激光里程计,通过IMU对激光数据进行畸变矫正和对SLAM的姿态矫正,实现一个手持的SLAM建图功能。
RDK平台实现MIPI相机驱动的操作实例
本项目案例为对已适配的MIPI接口摄像头进行配置,并将采集的图像数据以ROS标准图像消息或者零拷贝(hbmem)图像消息进行发布,供需要使用图像数据的其他模块订阅。
基于RDK X3操作思岚激光雷达驱动示例
SLLIDAR ROS2驱动,以ROS2标准消息格式发送激光雷达数据。
RDK X3基于RDK X3的手势识别算法示例
手势识别算法示例订阅包含人手框、人手关键点信息的算法msg,利用BPU进行推理,发布包含手势信息的智能结果msg。手势识别算法集成了人手关键点检测,手势分析等技术,使得计算机能够将人的手势解读为对应指令,可实现手势控制以及手语翻译等功能,主要应用于智能家居,智能座舱、智能穿戴设备等领域。
YDLIADAR激光雷达驱动应用实例
介绍YDLIADAR激光雷达驱动的方案与技术要求,YDLIDAR ROS2驱动,以ROS2标准消息格式发送激光雷达数据。
基于地平线RDK模型YOLOv5s深度学习的方法进行赛道障碍物检测应用实例
该功能为基于深度学习的方法识别赛道中的障碍物,使用模型为YOLOv5s。地平线RDK通过摄像头获取小车前方环境数据,图像数据通过训练好的YOLO模型进行推理得到障碍物的图像坐标值并发布。
基于RDK平台的YOLOv10目标检测算法示例
YOLO功能介绍YOLO目标检测算法示例使用图片作为输入,利用BPU进行算法推理,发布包含目标类别和检测框的算法msg。YOLO目标检测算法示例使用图片作为输入,利用BPU进行算法推理,发布包含目标类别和检测框的算法msg。目前支持yolov2、yolov3、yolov5、yolov5x四个版本。
基于RDK X3 & Module的性能检测软件使用示例
Performance Node该应用基于Web网页打造,无论是什么品牌的电脑和手机,只需要在浏览器访问即可。
NodeHub快速入门
NodeHub是地平线为机器人爱好者打造的智能机器人应用中心,旨在以更加简单、高效、开放的方式协助机器人爱好者开发自己的智能机器人。
多模态感知仿生机械手项目案例
本项目提供了一款五指仿生机器手,其仿照人手的外观与自由度,使其能够作为人形机器人的末端执行器,完成人手所能完成的任务。
2D垃圾检测应用示例
本Node是基于hobot_dnn开发的2D垃圾目标检测算法,采用PaddlePaddle开源框架, 利用PPYOLO模型进行垃圾检测任务设计和训练。为了达到快速部署的目的,本Node支持配置文件更换垃圾检测模型,开发者可以将更多精力投入在算法模型能力的迭代,减少部署工作量,识别输出的AI信息不仅可以通过话题发布,还可以在Web页面渲染显示。
智能语音聊天机器人功能及使用指南
智能语音聊天机器人通过识别用户语音,调用ChatGPT API获取答复并播放,实现语音聊天。需地平线RDK、ChatGPT API Key及音频板等物料。准备、组装后,安装功能包并运行,配置音频和ChatGPT API Key。常见问题包括设备连接、音频驱动、配置文件及网络访问等。
RDK X3 机械臂捡垃圾经验分享
hobot_arm package 是基于 mono2d_trash_detection package 开发的2D垃圾目标检测+机械臂抓取的应用示例。在地平线的旭日X3派上利用BPU进行模型推理获得感知结果,利用幻尔机械臂作为下位机,进行垃圾抓取的示例。
OriginBot机器人最小功能系统的机器人底盘驱动应用实例
OriginBot是一款智能机器人开源套件,更是一个社区共建的开源项目,旨在让每一位参与者享受机器人开发的乐趣。该项目是OriginBot机器人最小功能系统,该最小系统可接受/cmd_vel指令控制机器人运动并反馈/Odom信息。
电子商城
服务
可定制ATD TE Dehumidifier的冷却功率:20~220W;工作电压:12V(DC)/ 220V(AC);控温精度:≤±0.5℃;尺寸:冷面:20*20~500*300;热面:60*60~540*400(长*宽;单位mm)。
最小起订量: 1 提交需求>
可定制1027S、1097、1093A、1099、991系列,粘度:900~2万;硬度:70~90D;固化速度:5~15min;粘接强度:15~20Mpa;不同规格包装形式。
最小起订量: 1支 提交需求>
登录 | 立即注册
提交评论