收藏 分销(赏)

基于ROS的自导航垃圾识别智能移动小车设计.pdf

上传人:自信****多点 文档编号:574850 上传时间:2024-01-02 格式:PDF 页数:3 大小:1.58MB
下载 相关 举报
基于ROS的自导航垃圾识别智能移动小车设计.pdf_第1页
第1页 / 共3页
基于ROS的自导航垃圾识别智能移动小车设计.pdf_第2页
第2页 / 共3页
基于ROS的自导航垃圾识别智能移动小车设计.pdf_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、wwwele169com|45智能应用基于 ROS 的自导航垃圾识别智能移动小车设计朱泳珏,蒋学程,方楚炎(闽江学院 物理与电子信息工程学院,福建福州,350108)摘要:本课题主要设计了一款基于jetson nano硬件平台的自导航智能移动小车,该小车主要由导航定位和图像识别所组成。小车搭载的传感器有激光雷达、IMU和摄像头,基于ROS机器人操作系统开发,采用cartographer算法实现SLAM建图,通过STM32对小车底层驱动控制,实现自主导航。采用YOLOv5目标检测算法,对不同垃圾进行精准识别。关键词:ROS;cartographer;YOLOv5;激光雷达0 前言随着人工智能技术

2、的进步,智能小车在物流、工业和生活服务等领域得到了广泛应用。要实现小车智能化,需要实现建图、定位、路径规划这三项任务。前两项任务就是实现实时建图以及实时定位,第三项任务就是实现路径规划,即根据已知的地图规划出一条到达目标的最佳路径1。现如今的许多智能车价格昂贵、软件代码不开源且通用性差,如果从头到尾开发一个机器人的软硬件系统会造成开发难度大和周期长等问题2。针对这些问题,本课题基于 ROS 开源机器人操作系统开发,设计一款具有通用性、结构简单、经济性良好的智能小车系统。1 系统总体方案概述本课题主要设计一款自导航垃圾识别智能移动小车。硬件部分:上位机采用搭载 ROS 的 jetsonnano

3、硬件平台,下位机采用 STM32 进行运动控制,传感器有激光雷达、IMU 和摄像头,如图 1 所示。软件部分:主要开发自主导航和图像识别两部分,如图 2 所示。2 导航实现 2.1 上位机与下位机建立通讯采用的通信协议:11 字节,55aasize05 左轮速度2 字节 右轮速度 2 字节 控制位 07 效验位 0d0a。数据传输选择共用体的方法,通过使用共享内存的方式,使传输数据的大小增加,图 3 为具体原理图。上位机部分,采用 ROS 的话题通信机制,订阅/cmd_vel 话题,获取小车线速度和角速度,解算为左右轮速,将左右轮速通过串口向下位机发送。下位机部分,通过 STM32 的 USA

4、RT串口,使能 GPIOA9 和 GPIOA10,对串口的收发模式进行设置,通过主程序中对其进行调用,可以使两者进行通讯。由建立的通信协议打包成的库,通过中断的方式将 ROS 下发的左轮和右轮数据从 USART串口中接收进来,在保证波特率和延时一致时,两者之间就可以实现通信了。2.2 SLAM 建图cartographer 是 由 谷 歌 开 发 的 实时 室 内 SLAM,cartographer 是 基 于图 1硬件部分框架图 2软件部分框架图 3数据传输原理图46|电子制作2023 年 7 月智能应用submap 子图构建全局地图的思想,能有效避免建图过程中环境中有移动物体带来的干扰。c

5、artographer 采用了基于谷歌开发的 ceres 非线性优化的方案,cartographer 的亮点在于代码规范与工程化,非常适合商用和再开发。并且cartographer 支持多传感器数据来建图,支持建立二维地图和三维地图。所以,我们果断采用 cartographer。下面我们将 cartographer 的代码部署到自己的机器人平台上。cartographer 提供了一个基于 RevoLDS 的demo,与我们所使用的 rplidar 相近,可以参考该 demo进行实现。修改 revo_lds.lua 配置文件内的参数即可。revo_lds.lua 文件中的部分内容如图 4 所示。

6、图 4revo_lds.lua 文件部分参数说明:参数map_frame:cartographer中使用的全局坐标系。参数 tracking_frame:SLAM 算法追踪的 ROS 坐标系。参数 published_frame:正在发布 pose 的坐标系。参数 provide_odom_frame:是否需要 cartographer内部提供里程计。参数 use_odometry:是否使用里程计。参数 odom_frame:里程计坐标系。参数 use_imu_data:是否使用 IMU 数据。参数 publish_frame_projected_to_2d:如果启用,发布的位姿将被限制为纯

7、2D 位姿。2.3 定位定位其实就是计算出机器人自身在全局地图上所处的位置。在 SLAM 中也需要定位,但是,SLAM 中的定位仅仅用于导航开始之前用于构建出全局地图。而当前定位是用于导航过程中的,导航中机器人需要按照规划好的路线移动,通过定位,我们就可以评估机器人的实际轨迹是否符合我们的预期。在 ROS 的导航功能包集 navigation 中提供了一个非常实用的功能包,该功能包就是 amcl 功能包,可以实现导航中的机器人定位。AMCL 是一种面向二维移动机器人的概率定位系统,它实现了自适应蒙特卡洛定位,可以基于现有的地图使用粒子滤波器计算出机器人所处位置。2.4 路径规划导航的核心功能之

8、一就是路径规划,在 ROS 的导航功能包集 navigation 提供了一个move_base 功能包,可用于实现路径规划。在世界坐标中给定一个目标位置,move_base 功能包就可以根据这个位置,不断地将速度信息通过/cmd_vel 话题发布出来,使机器人底盘不断接近目标位置,在移动过程中也会不断地反馈机器人自身的位姿信息和目标位置的状态信息。使用 move_base 功能包,需要编写四个 yaml 配置文 件:costmap_common_params 文 件,该 文 件 是move_base在本地路径规划和全局路径规划时都要载入的通用参数,其中包含了传感器的信息、距离障碍物的安全距离、

9、机器人的尺寸等。base_local_planner_params文件,该文件设置了基本的本地规划器参数,设置了机器人的最大和最小速度,也设置了加速度的阈值。local_costmap_params 文件,该文件用于设置本地代价地图的参数。global_costmap_params 文件,该文件用于设置全局代价地图的参数。2.5 自主导航要实现机器人自主移动的 SLAM 建图,需要将导航与SLAM 建图相结合。在使用 cartographer 进行 SLAM 建图的过程中本身就会实时发布地图信息,所以只需要同时启动SLAM节点与move_base节点即可实现机器人的自主导航。小车自主导航实际环

10、境测试效果如图 5 所示,可见在rviz 中指定一个目标位置后,小车可以避开包括动态障碍物在内的各种障碍物,实现自主导航并建立二维栅格地图。3 图像识别2020 年 6 月,Ultralytics 公司公开发布了 YOLOv5,wwwele169com|47智能应用主要有四种不同规模的版本。YOLOv5 的大部分性能改进来自 PyTorch,而模型架构仍然接近于 YOLOv4。YOLOv5 具有快速、精确且易于训练的优点。YOLOv5 核心思想是将整张图作为网络的输入,在输出层直接回归出目标的位置坐标和类别,其特点是检测精度高、检测速度快,满足实时监测的需求3。图 5小车自主导航实测效果要实现

11、图像识别,第一步需要制作数据集。我们共制作了 30 张垃圾的图片,对图片进行按顺序命名,把这些图片作为训练集。对这些图片进行手工标注。标注完成后,生成格式为.txt 的文件。第二步训练 YOLOv5。创建 garbage.yaml 文件,该文件用于配置存放数据集路径等参数。在 yolov5s.yaml 文件中。找到 nc 参数,nc 为类别数量,修改为 16,我们指定垃圾种类有 16 个类别。打开终端,执行命令,开始训练。训练完成后会生成对应的.pt 文件,该文件就是我们所需的权重文件。将该权重文件载入到 YOLOv5 中,启动神经网络即可实现图像识别,效果如图 6 所示。图 6 图像识别效果

12、4 结语本文设计了基于 ROS 的自导航智能移动小车,采用cartographer 算法建立二维栅格地图,结合导航算法功能包实现自主导航,采用 YOLOv5 实现图像识别。本课题为自主导航和服务型机器人提供了可行的解决思路和方案。未来,智能移动机器人将更多地运用在物流、工业和生活服务等领域。参考文献 1 董文康,陈少斌,黄宴委.基于 ROS 的小车自主建图与路径规划 J.福建电脑,2018,34(12):100-101+112.2 李建勇,刘雪梅,李雪霞,杜博阳.基于 ROS 的开源移动机器人系统设计 J.机电工程,2017,34(02):205-208.3 张三林,张立萍,郑威强,郭壮,付子

13、强.基于 YOLOv5 的核桃品种识别与定位 J.中国农机化学报,2022,43(07):167-172.逆运动学求解、坐标变换等。轨迹规划模块用于生成机器人的运动轨迹,包括直线轨迹、圆弧轨迹、样条曲线等。示教再现模块用于通过示教器来控制机器人的运动,包括手动示教和自动再现。系统设置模块用于设置软件系统的参数和配置文件,包括机器人的参数、控制卡的参数、通信协议等。4 结语本文设计了一个低成本、移植性好的工业机器人控制系统,该系统采用 STM32 单片机、微型计算机终端实现了电机控制、信号采集、信号输出和通信任务。系统设计了一门简单的工业机器人编程语言,实现了位置控制和速度控制等功能。未来的工业

14、机器人控制系统应该继续提高控制精度和稳定性,加强机器人的力控制和轨迹规划功能,以满足更高的工业生产需求。参考文献 1 韩锐.新工科背景下工业机器人实训课程设计与教学实践 J.时代汽车,2022(18):98-100.2 陆叶.基于工业机器人的 3C 产品自动生产线的设计 J.机电工程技术,2021,50(09):137-140.3 李显,朱青松,吕世霞,王学雷.基于多类型工业机器人的多功能实训设备设计 J.科技创新与应用,2021,11(22):100-102+105.4 黄福,赵崇杰,李俊杰,张国泉,杨勇,姚宇茏.工业机器人机械臂加强装置优化设计研究 J.广东技术师范大学学报,2021,42(03):20-25.5 吴斌.基于工业机器人的智能制造生产线设计 J.机床与液压,2020,48(23):55-59.(上接第 24 页)

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文指导/设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服