【毕业设计】履带四足复合机器人

1.项目简介

本项目中,履足式复合机器人拥有两种行进模式:四足行进模式、履带行进模

式,应对不同场景及地形时能够切换形态。四足形态下整体总共拥有8个自由度DOF,单腿各具备2个自由度DOF,足端结构融入了履带机构,各履带机构配备1个直流电机驱动。

该机器人主控板的MCU模组为ESP32-WROVER-E,能够实现针对总线舵机+PWM舵机+直流电机的控制,同时包括其他硬件资源:六轴加速度传感器、OLED屏幕接口、RGB灯珠、蜂鸣器等。

履带车形态在平坦或稍崎岖的地貌上能够保持较高的行进速度,降低了四足爬行的功

bilibili视频链接:https://www.bilibili.com/video/bv1aU4y197CP

初始草稿:

00e0f905a9c3d9ed022da93003b877a4.png

最初的构想来源——《使命召唤11:高级战争》中的“泰坦”重型坦克:

4f9c7f2fd367915476067cd8b3681535.png


2.电控硬件功能

2.1 主控板:

2.1.1 电机驱动:

  • 6路串行总线舵机接口:

    PH2.0-3P,74HC126D

  • 4路直流电机驱动:

    TB6612FNG

2.1.2 指示器件:

  • 1颗 六轴加速度传感器:

    MPU6050

  • 1块 拨轮编码器:

    MITSUMI

  • 1颗 普普通通的 微型无源蜂鸣器:

    DET402-G

  • 1颗 普普通通的 发光LED:

    0603

  • 1处 0.96寸4针OLED屏幕接口:

    HDR-1*4P-F

  • 3颗 普普通通的 RGB灯珠:

    WS2812B-2020

2.1.3 拓展接口:

  • 2路拓展IIC接口:

    PH2.0-4P

  • 1路WS2812B灯珠接口:

    HDR-M-2.54-3P

2.2 拓展板:

  • 16路PWM舵机驱动:

    PCA9685


3.选型简述

3.1 电机选型:

  1. 串行总线舵机选型:型号:HTS-35H,额定电压:9.0~12.6V,串行通信波特率115200,额定扭矩:35kg.cm/3.5N.m。通信需要将UART全双工转半双工,根据幻尔舵机商家提供的通信协议手册和原理图,采用74HC126D实现;

    1d08011c38b8fd92c40508b5b792dba5.png

    1a278f9e2196098ca1e45ada311504da.png

  2. PWM舵机选型【经济方案】:型号:MG996R,额定扭矩:13kg.cm/1.3N.m。常见的大舵机,配合拓展板应该也没什么问题,箭头处注意供电电压。(注意供电连接,主控板与拓展板可通过铜柱连接电源)

    7056edff9a581a0e84ab7fea22687958.png

    acd8b6353cf93e28168a2ccf41ccbf42.png

    f21da2780fd0d35a9b1927695b747572.png

    43f1cffe23c1c29cd8a52af598bc3f78.png

  3. 直流电机选型:型号:JGA25-370-1260,额定电压:12.0V,减速比:1:103,空载转速:60转/分钟。主控V1.0版本中,采用TB6612FNG驱动【考虑到价格问题,后续打算用RZ7899/DRV8833替代】;

    e1a39d5a8ff779fe846f9420d031f253.png

    759b78df376aaded25bdf20436abe0fd.png

3.2 其他选型:

  1. 六轴加速度传感器:MPU6050。通常选择,源代码中定义支持了采用DMP获取四元数后,再解算得Pitch、Roll角(yaw角太飘),而且QFN封装可能不太好焊。

    3980ecfec361311cf806883beac657e1.png

  2. 芯片供电:3.3V与5V供电均采用LDO实现,即SCJT1117-3.3与SCJT1117-5.0。(由于压差较大,建议贴散热片)

    b8b63f2fcde8496037915669491b564a.png

  3. 电源选型:采用放电倍率35C的3S聚合物航模电机,但考虑到安全问题,经测试3节放电倍率10C的18650动力锂电池也能驱动

    航模电池:(危险,但带劲)

    90b0befb54e078005fe93d428fe345dc.png

    18650动力锂电池:

    a40b5e85e0a60e73f93cf603cf28398c.png


4.实物图片

主控板:

67f008b93afba59b701daaf74fdae752.png

16路PWM舵机---拓展板:

ea0d970221f91daf997089b0e381a80f.png

组合图:

917376dfbee4803ef0df828a3fd18cf0.png


5.机械结构设计

所述机器人整体总重量(加电源)经称量可达3.0kg。
目前大部分结构零件以FDM式3D打印技术制造,采用PLA材质,故主要参数推荐:0.15mm层高,70%填充。部分需要少量支撑零件,如履带外壳——主壳、提手、躯体前侧板等

设计特点:

  • 履带足

  • 二自由度串联腿

  • 四足形态:

    8自由度

  • 履行模式:

    4电机驱动

  • 预留二自由度云台

  • 3D打印结构

caedf40f7da63f90def08d6f27d0a729.png


6.控制系统软件设计

VSCode+PlatformIO平台开发,目前机器人主控系统主要包括2部分:底层驱动,运动控制。

d59e07ea1640a2d5faa57c5301cbc001.png

6.1 底层驱动内容:

  • 串行总线舵机通信

  • 直流电机驱动

  • 六轴加速度传感器通信

  • OLED屏幕驱动

  • 拨轮编码器读取

  • WS2812B-RGB灯珠驱动

  • 蜂鸣器驱动

  • WiFi通信配置

6.2 运动控制内容:

  • 单腿正解FK

  • 单腿逆解IK

  • 姿态逆解

  • 足端摆线轨迹计算

  • Trot步态模式

  • Walk步态模式

  • *VMC算法 -- 伪闭环(待测试)

6.3 代码文件说明:

lib:

  • Adafruit_NeoPixel: WS2812B灯珠驱动控制(有点小bug,第1个灯珠有些不受控制,待更改)

  • Adafruit_PWM_Servo_Driver_Library: PCA9685通信及驱动库

  • MPU6050:加速度传感器

  • U8g2:用于0.96寸 OLED屏幕驱动

src/Drive:

  • Hiwonde.h/.cpp: 串行总线舵机通信库

  • ServoDrive.h/.cpp: PWM舵机驱动控制库(PCA9685)

  • IOs.h/.cpp: GPIO引脚配置及控制库

  • IMU.h/.cpp: MPU6050加速度传感器通信库

  • DCMotorDrive.h/.cpp: 直流电机驱动控制库

src/Dynamics:

  • FKIK.h/.cpp: 单腿正逆解库

  • MotionControl.h/.cpp: 机器人运动及姿态控制库


7.远程控制App设计

注意:需要开启定位、通知权限

设计特点:

  • 基于Android端开发

  • 采用WIFI作为无线通讯模式

  • 采用TCP作为传输层协议

8.实物样机

0a6da555c4b0bf6aadac9d478872026f.png

c8926e4497884dcbe4590a7250e671fb.png

(摄像头后续再用)

37c983189d6b38f06c6359343a080896.png

彩蛋:

3d36fde99312f426ac3452278d2af641.png

资料下载链接

https://oshwhub.com/PCBguy/2e3UWJAkJbkpLge9zfKt6Q9YRR9SX1Nb

db10d204f18bf2a1e268c9de8e526b54.gif

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

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

相关文章

c#: 任务栏进度显示(TaskbarManager)

Win7及以上系统支持任务栏进度条,为有进度类应用显示进度于任务栏,甚为方便。 以c#之WinForm实现其,大多采用Windows API Code Pack这个方案,加多引用,比较繁琐,而我总也打不开了其页面。 鄙人不喜欢多引用…

今天,过了27年后,IE浏览器停用了

前言随着Windows的官宣,ie浏览器将于6月16日正式退役。https://www.microsoft.com/zh-cn/download/internet-explorer.aspx那个曾几何时的浏览器之王,经历一次又一次操作系统的迭代,直至新兴浏览器的出现后沦为浏览器鄙视链的最后一层&#x…

boost库学习入门篇

学习及使用Boost库已经有一段时间了,Boost为我的日常开发中带来了极大的方便,也使得我越来越依赖于boost库了。但boost功能太多,每次使用还是得翻看以前的 资料,所以为了以后可以更方便的使用,在此对常用的功能作一个…

开源 STM32 USB-CAN项目

照理来说,USB-CAN这种东西应该已经被做的烂大街的工具,国内居然没有一个拿得出手的开源方案。某立功和PCAN动辄2000的价格也是离谱。淘宝上各种虚拟串口方案、替换dll兼容某立功软件的各种方案....价格都倒是便宜,性能和可靠性嘛.......就不多…

Go语言web框架 gin

Go语言web框架 GIN gin是go语言环境下的一个web框架, 它类似于Martini, 官方声称它比Martini有更好的性能, 比Martini快40倍, Ohhhh….看着不错的样子, 所以就想记录一下gin的学习. gin的github代码在这里: gin源码. gin的效率获得如此突飞猛进, 得益于另一个开源项目httproute…

8位ADC是256还是255?

昨天的文章发了之后,有朋友找到我,给我讨论了很多关于ADC细节。晚上给个朋友在51上调ADC0808芯片有一个朋友是做硬件的,他有从事过专业仪器设备,常年有使用ADC的经验,他给我的观点是,8位ADC对应的就是256。…

boost库在ubuntu下的安装

系统是ubuntu虚拟机,安装的是boost_1_60_0。 (1)首先去下载最新的boost代码包,网址www.boost.org。 (2)进入到自己的目录,解压: bzip2 -d boost_1_60_0.tar.bz2 tar xvf boost_1_…

所谓的0拷贝不就是为了让CPU休息吗?深入理解mmap

1.开场白环境:处理器架构:arm64内核源码:linux-5.11ubuntu版本:20.04.1代码阅读工具:vimctagscscope我们知道,linux系统中用户空间和内核空间是隔离的,用户空间程序不能随意的访问内核空间数据&…

boost::function的用法(一)

boost::function的用法 本片文章主要介绍boost::function的用法。 boost::function 就是一个函数的包装器(function wrapper),用来定义函数对象。 1. 介绍 Boost.Function 库包含了一个类族的函数对象的包装。它的概念很像广义上的回调函数。其有着和函数指针相同的…

nhibernate学习之集合组合依赖

1.学习目标还是学习compenent的用法,上节实现了简单字段的组合,这节中将讨论两个问题:1.依赖对象有一个指向容器对象的引用。2。集合依赖2.开发环境和必要准备开发环境为:windows 2003,Visual studio .Net 2005,Sql server 2005 developer ed…

追更这个做嵌入式的大佬

在知乎上看到一个做嵌入式91年小年轻,分享给大家在他看来,嵌入式也是一个很吃香的技术,在周末写这篇文章的时候,也刚收到一个朋友的微信消息,他说自己拿到了70多万的年包offer。大家想追更作者的原文,可以点…

CentOS6.5安装ElasticSearch6.2.3

CentOS6.5安装ElasticSearch6.2.3 1、Elastic 需要 Java 8 环境。(安装步骤:http://www.cnblogs.com/hunttown/p/5450463.html) 2、安装包下载: #官网地址 https://www.elastic.co/downloads/elasticsearch 3、新建用户 Elastic高…

这道字符串反转的题目,你能想到更好的方法吗?

周末有一个朋友问了一个笔试题目,当时还直播写了答案,但是总觉得写得不够好,现在把题目放出来。大家看看有没有什么更好的解法题目有一个字符串,如下,要求对字符串做反转后输出//input the sky is blue//output blue …

流媒体服务器搭建实例——可实现录音,录像功能

由于我也是刚开始接触这个东东,原理什么的不是很清楚,这里我就不说了,免得误人子弟,嘿嘿!第一步,下载FlashMediaServer3.5,网上有很多资源,这里就不提供了,大家google一下…

一个女孩子居然做了十年硬件。​。。

本文转自面包板社区。--正文--2011年,一个三本大学的电子信息专业的大三女学生跟2个通信专业的大二男生组成了一组代表学校参加2011年“瑞萨杯”全国大学生电子设计大赛,很意外的获得了湖北赛区省三等奖,虽然很意外,但还是挺高兴的…

之前字符串反转的题目

之前发的字符串反转的题目这道字符串反转的题目,你能想到更好的方法吗?有很多人评论了,有的人还写了自己的解题思路,还有人写了自己的代码还有其中呼声很高的压栈解法我相信很多人在笔试的时候一定会遇到这类题目,给你…

hdu 3488

可以作为KM 二分图最大权匹配模板 View Code #include <stdio.h>#include <iostream>#include <string.h>using namespace std;const int N210;const int inf0x2fffffff;const int Max20000;int match[N],n,m,lack,w[N][N],lx[N],ly[N];bool vx[N],vy[N];bo…

心情不好,我就这样写代码

在 GitHub 上有一个项目&#xff0c;它描述了「最佳垃圾代码」的十九条关键准则。从变量命名到注释编写&#xff0c;这些准则将指导你写出最亮眼的烂代码。为了保持与原 GitHub 项目一致的风格&#xff0c;下文没有进行转换。读者们可以以相反的角度来理解所有观点&#xff0c;…

递归是会更秀strtok

前几天发的字符串反转题目&#xff0c;后面有一个新同学用了递归的方法来实现&#xff0c;看了下&#xff0c;真的是很秀。之前字符串反转的题目代码如下#include "stdio.h" #include "string.h" char input[] {"the sky is blue cris 1212321 apple…

ios开发网络篇—HTTP协议 - 转

一.URL 1.基本介绍 URL的全称是Uniform Resource Locator(统一资源定位符) &#xff0c;通过1个URL&#xff0c;能找到互联网唯一的1个资源 &#xff0c;URL就是资源的地址&#xff0c;位置&#xff0c;互联网上的每个资源都有一个唯一的URL 2.URL中常见的协议 (1)HTTP&#…