咳咳!这个是自己的毕业设计,内容比较多就拆开发。设计实现了一款SLAM移动机器人,加机械臂完成视觉识别抓取的,同时还有语音识别控制、QT上位机控制、Web网页控制。前几年看古月老师的视频,看到古月老师设计的HRMRP(混合实时移动机器人平台),就也来对标一下!机器人演示视频链接如下~
【marm + mbot = 我的毕设资料整理中,预计七月中左右开源,感谢古月老师资料】 https://www.bilibili.com/video/BV1bL4y1K7Rp/?share_source=copy_web
这个系列的博文,会把如何设计机器人的内容分享出来~
机器人具备移动抓取、自主导航、交互控制的多功能智能仓储搬运机器人系统。整个操作系统主要由软体和硬件两部分构成,操作系统架构分为应用层、系统层、驱动层和结构层,具体如下图所示。
整个系统设计分为四层结构,具体为:
(1)结构层采用两轮差速运动底盘实现机器人的运动,通过五轴机械臂+夹爪实现抓取功能。
(2)硬件层由两块驱动板实现,STM32F103RCT6实现SLAM系统的底层驱动功能,通过接收系统发出的空间速度信息,通过PID实现速度转PWM值实现底层控制器功能;Atmega 328P实现机械臂部分的驱动控制,通过接收系统发出的空间关节信息,转为机械臂各个关节角度值执行,机械臂驱动板部分板载一路蜂鸣器报警电路,作为硬件系统提示。供电部分使用XL4016E1实现5V 8A的输出,为系统主机、SLAM底盘、激光雷达进行供电,LM2596S-5.0负责机械臂系统的供电。通过树莓派开发板(4B 2GB版本)作为运算主机,实现系统运算处理。
(3)系统层基于机器人操作系统(ROS,Robot Opearting System)的控制系统设计,实现SLAM同步位置与运动地图建立、运动机器人的主动引导、六轴机械臂正逆运动学解算及目标识别,系统层和应用之间分别通过可达讯飞SDK实现语音识别交互控制、通过ROS和Qt联合开发PC软件交互控制、通过Python Bottle轻服务器框架实现Web交互控制。
(4)应用层是为用户提供的交互界面设计,这里分为基于Qt开发的桌面交互软件、基于Web网页的在线交互界面、基于语音识别的交互控制。
机器人分为SLAM底盘+六轴机械臂+语音识别控制三部分组成。机器人系统采用Raspberry Pi开发板为主控,并采用了Ubuntu Mate 20.04操作系统,并安装了ROS Noetic自动化机器人控制系统。
SLAM底盘部分使用STM32F103RCT6单片机为主控,通过TB6612电机驱动芯片驱动两路直流编码电机M1和M2,同时接入MPU6050六轴陀螺仪传感器实现姿态里程检测。考虑系统整体供电设计,底盘部分使用XL4016E作为电源管理芯片,实现8~40V转5V 8A(Max)输出,如下图所示。
六轴机械臂部分使用Atmega 328P单片机为主控,通过六路PWM占空比输出来驱动六个伺服电机。考虑系统整体供电设计,机械臂部分使用LM2596S-5.0作为电源管理芯片,实现8~40V转5V 3A(Max)输出,如下图所示。