基于ROS 的智能AGV 运输小车
2020-06-15钟开洋韦兴德詹晓晨赵嘉宾程志敏曾智禀叶健洪何士悦
王 佳 钟开洋 韦兴德 詹晓晨 赵嘉宾 程志敏 曾智禀 叶健洪 何士悦
(佛山科学技术学院,广东 佛山528000)
随着机器人领域的发展和人民生活的需求日益提高,生产工业化正在向生产智能过度,因此工业智能机器人的发展需求越来越大。
由于ROS 系统的分散式消息机制,各模块多线程分布式独立工作,可根据需求将软件功能独立应用于各个模块的控制,具有非常高的灵活度,是应用于低功耗工业智能化的不二之选。而现有AGV 小车结构尚有不合理之处,造成各个组件的安装位置不够理想,难以进行设备升级和替换,也难以进行故障检修和功能扩展,往往会对其智能化程度造成一定限制。
本文的目的在于提供一种树莓派3b+ 主控板下的智能AGV 运输小车的框架原理与实现方案,其便于进行设备升级和替换,也便于故障检修和功能扩展,智能化程度高。
1 系统功能设计
构成小车的硬件系统包括主控板RaspberryPi3B+,8400mAH 带充电器的锂电池,步进电机,STM32 电机驱动板,激光雷达RPLIDAR A1 用于使用SLAM 导航,OpenMV 摄像头模块,红外扫描仪,无线网卡,SD 卡接口,16G SD 卡,串口线智能密码锁模块,盒子储物箱,小车底板以及车轮、螺丝钉、铜柱、杜邦线若干用于构造车体。主控板RaspberryPi3B+自带以太网模块,以太网接口。系统框图和功能框图如图1、图2。
图1 系统框图
当APP 进入主界面时,会显示小车的位置和摄像头的监控。通过“密码锁设置”功能改变储物箱的智能锁的密码;通过“SLAM定点导航”在APP 界面设置相对位置的定点导航,通过红外扫描仪避开障碍物;通过“手动方向控制”来自由操控小车运动。
主要功能实现为APP 发送指令给主控板,从而主控板控制各个步进电机运动,雷达和摄像头作为实时监控,把信号传输给主控板,主控板再把数据处理后传给以太网模块,再通过无线网卡将数据传送到手机APP,实时获取数据后,又可以继续通过APP 发送指令给主控板;其次,可以在主控板执行APP 的指令中,通过APP 的中断键,终止指令,主控板会发送停止信息给电机驱动模块。
图2 功能框图
2 系统结构设计
2.1 智能锁设计
智能锁可通过51 单片机串口控制舵机实现,其输入密码部分可用数字电路结构和独立按键组成。可以在APP 设置密码,通过网络传输给主控板,主控板将数据传给51 单片机。当在锁上输入密码,51 单片机获取并处理,再根据密码正确与否通过串口线控制舵机运动。
图3 智能锁设计
电子锁与51 单片机系统通过串口通信,采用4 根串口线,分别为VCC、GND、TXD、RXD。同理,51 系统也需要引出4 根串口线与主控板相互传输数据。
2.2 车体设计
核心部件主控板藏于车身内部;电机驱动模块置于底盘;为了保证小车的避障功能,将红外扫描仪安装在车体前;摄像头成像与雷达扫描都应该在车身上方,其中雷达扫描范围大,置于顶端,摄像头置于雷达下,避免相互干扰;储物箱置于车身后,底盘上,通过51 系统引出4 根串口线与主控板进行串口通信。
2.3 openMV 摄像头
OpenMV 是一个开源,低成本,功能强大的摄像头模块。以STM32F767CPU 为核心,集成了OV7725 摄像头芯片,集成了各种高效的算法,提供Python 编程接口,对于自带python 编程环境的RaspberryPi3B+有非常高的适用性。摄像头直接成像,并将视频信号实时传到给主控板,主控板处理并压缩后,通过以太网模块传输APP。
2.4 激光雷达
ROS 系统下,通过激光雷达可以使用SLAM(即时定位与地图创建)来完成定点导航。雷达与主控板组成嵌入式系统,实时将扫描数据传输到主控板,主控板再进行处理压缩,利用以太网模块传输给APP,并绘制地图及定位信息。
3 软件设计
Android 系统是一个开源的操作系统,采用Android 系统开发APP 便于二次开发以及应用程序的维护;其次,Android 操作系统有更多免费开源的开发环境,如:Android Studio + SDK;Eclipse + ADT + SDK;IntelliJ IDEA + SDK;这里建议使用Eclipse + ADT + SDK,将手机作为上位机,嵌入式系统作为下位机,有助于直观地观察编译效果,做各种测试。
4 结论
本设计主要以嵌入式技术为主,讲述了一种结合ROS 系统、单片机、激光雷达、摄像头、智能锁等设备的智能AGV 小车,结合物联网技术,使用手机APP 控制,极大地加强使用的便利性,促进智能机器人水平的提高,满足更多生活和工业上的需求。