ROS机器人实战,对标古月老师HRMRP机器人(一)——机器人总体方案设计

咳咳!这个是自己的毕业设计,内容比较多就拆开发。设计实现了一款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)输出,如下图所示。

点击ROS机器人实战,对标古月老师HRMRP机器人(一)——机器人总体方案设计 - 古月居 可查看全文

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/826771.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud-搭建XXL-JOB任务调度平台教程

一、XXL-JOB任务调度平台介绍 XXL-JOB是一个轻量级分布式任务调度框架,旨在解决分布式系统中的任务调度问题,提高系统的处理效率和任务管理的便捷性。 1. XXL-JOB任务调度概念 XXL-JOB任务调度平台通过中心化管理方式,使得任务的调度更加高…

设计模式之观察者模式(优先使用对象组合的原则)的C++实现

观察者模式又称订阅者发布者模式,本篇介绍主要是利用对象组合大于类继承的设计模式原则实现订阅发布模式,这种设计的优点是想订阅数据的类不需要继承订阅者类的抽象类,减少了一层类的继承;当然,具体情况需要可根据需求…

Hive 中常用的函数以及数据类型

数据类型 1.基本数据类型: 数据类型大小范围示例TINYINT1byte-128 ~ 127100YSMALLINT2byte-32768 ~ 32767100SINT4byte-2^32~ 2^32-1100BIGINT8byte-2^64~ 2^64-1100LFLOAT4byte单精度浮点数5.21DOUBLE8byte双精度浮点数5.21DECIMAL-高精度浮点数DECIMAL(9,8)BOOLEAN-布尔型tr…

linux 下的 sqlite数据库

SQLite 认识 SQLite简介 轻量化,易用的嵌入式数据库,用于设备端的数据管理,可以理解成单点的数据库。传统服务器型数据库用于管理多端设备,更加复杂 SQLite是一个无服务器的数据库,是自包含的。这也称为嵌入式数据库&…

【语音识别】在Win11使用Docker部署FunASR服务器

文章目录 在 Win11 使用 Docker 部署 FunASR 服务器镜像启动服务端启动监控服务端日志下载测试案例使用测试案例打开基于 HTML 的案例连接ASR服务端 关闭FunASR服务 在 Win11 使用 Docker 部署 FunASR 服务器 该文章因官网文档不详细故写的经验论 官网文章:https:/…

Docker - WEB应用实例

原文地址,使用效果更佳! Docker - WEB应用实例 | CoderMast编程桅杆Docker - WEB应用实例 在之前的章节中,仅对普通容器进行了演示,但在实际中常常使用到 Docker 容器中的 WEB 应用程序。 运行一个WEB应用 拉取镜像 创建一个容器…

NewStarCTF 2023 web

目录 week1 泄漏的秘密 Begin of Upload Begin of HTTP ErrorFlask Begin of PHP R!C!E! EasyLogin week2 游戏高手 include 0。0 ez_sql Unserialize? Upload again! R!!C!!E!! week3 Include 🍐 medium_sql POP Gadget GenShin wee…

unity学习(89)——unity塞满c盘!--删除editor下的log文件

卸了一个视频后强制续命打开详细信息: 这个再往下找也是没用的! 显示隐藏文件夹后!执行如下操作! 30个g! 其中unity占23g editer占了21g 删除C:\Users\王栋林\AppData\Local\Unity\Editor下的log文件 恢复到之前的水…

【编译原理】03语法分析

1,语法分析的若干问题 1.1 语法分析器的作用 编译器前端的重要组成部分: (1) 根据词法分析器提供的记号流,为语法正确的输入构造分析树(或语法树)。 (2) 检查输入中的语法(可能包括词法)错误,并调用出错处理器进…

031——从GUI->Client->Server->driver实现dht11数据的采集

目录 0、设置ip 1、修改显示界面 2、 修改客户端 3、 修改服务器程序通信部分 4、 修改驱动处理程序 5、 重写驱动程序 6、 展示 0、设置ip 因为ifconfig命令要被淘汰了,所以我们改成使用ip命令设置ubuntu的ip ip addr add 192.168.5.10/24 dev ens36 ip …

ElasticSearch中使用向量和关键词联合检索

注:案例测试数据及其索引构建详见:ElasticSearch中使用bge-large-zh-v1.5进行向量检索(一)-CSDN博客 中的第三部分。 假设任务场景为:用“新疆”向量检索相关的数据,同时需要匹配关键词“巴州”。 首先获取…

VUE运行找不到pinia模块

当我们的VUE运行时报错Module not found: Error: Cant resolve pinia in时 当我们出现这个错误时 可能是 没有pinia模块 此时我们之要下载一下这个模块就可以了 npm install pinia

Elasticsearch进阶篇(三):ik分词器的使用与项目应用

ik分词器的使用 一、下载并安装1.1 已有作者编译后的包文件1.2 只有源代码的版本1.3 安装ik分词插件 二、ik分词器的模式2.1 ik_smart演示2.2 ik_max_word演示2.3 standard演示 三、ik分词器在项目中的使用四、ik配置文件4.1 配置文件的说明4.2 自定义词库 五、参考链接 一、下…

利用Opencv4.9为图像添加边框

返回:OpenCV系列文章目录(持续更新中......) 上一篇利用OpenCV4.9制作自己的线性滤波器! 下一篇 :OpenCV系列文章目录(持续更新中......) 目标 在本教程中,您将学习如何: 使用 OpenCV 函数 …

[Spring Cloud] (4)搭建Vue2与网关、微服务通信并配置跨域

文章目录 前言gatway网关跨域配置取消微服务跨域配置 创建vue2项目准备一个原始vue2项目安装vue-router创建路由vue.config.js配置修改App.vue修改 添加接口访问安装axios创建request.js创建index.js创建InfoApi.js main.jssecurityUtils.js 前端登录界面登录消息提示框 最终效…

故障诊断 | 用于跨机器工况下故障诊断的深度判别迁移学习网络附Pytorch代码

目录 基础代码小结基础 目前,研究者已经提出了很多用于解决目标域和源域之间的分布对齐和知识迁移问题的领域自适应方法。然而,大多数研究方法只关注到边缘分布对齐,忽略了目标域和源域之间判别性特征的学习。因此,在某些案例中,这些方法仍然不能很好地满足故障诊断要求。…

InFusion:通过从扩散先验学习深度完成来修复3D高斯

InFusion: Inpainting 3D Gaussians via Learning Depth Completion from Diffusion Prior InFusion:通过从扩散先验学习深度完成来修复3D高斯 Zhiheng Liu * 刘志恒 *1144Hao Ouyang * 欧阳浩 *2233Qiuyu Wang 王秋雨33Ka Leong Cheng 郑家亮2233Jie Xiao 街小…

Elasticsearch常用查询语法及RestClient操作

DSL Query基本语法 1,查询所有数据matchall(当然并不是会显示所有数据) #查询所有数据 GET /索引名/_search {"query": {"查询类型": {"查询条件":"条件值"}} }2,全文搜索检索-分词搜索…

从零实现诗词GPT大模型:实现Transformer架构

专栏规划: https://qibin.blog.csdn.net/article/details/137728228 首先说明一下,跟其他文章不太一样,在本篇文章中不会对Transformer架构中的自注意力机制进行讲解,而是后面单独1~2篇文章详细讲解自注意力机制,我认为由浅入深的先了解Transformer整体架构和其中比较简单…

IDEA JAVA项目如何设置JVM参数

问题背景: 有时候项目在本地启动时会报参数引用不到,如果确实找不到在哪里添加的话,我们可以先加JVM参数来暂时解决本地环境的调试。 解决方案: 编辑配置Edit Configurations 选择需要配置的项目,点击Modify options 选…