斯坦福机器狗的设计与实现 四足机器人的机械结构类型和制造

本文主要是介绍斯坦福机器狗的设计与实现 四足机器人的机械结构类型和制造,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

四足机器人的机械结构类型和制造

1、仿制对象

Stanford Doggo由斯坦福学生机器人俱乐部的极限流动团队开发。是一个重量不到5千克的四足机器人,能够动态运动,使其能够达到所有四足机器人的最高跳跃1.07米。还能以0.9米/秒的速度向前移动,其灵活的移动性使机器人还能行走,小跑,跳跃和后空翻。

2、四足机器人机械结构上的重要概念

腿型:并联腿,串联腿(运动范围大)
串联腿分类:外膝肘式,全肘式,全膝式,内膝肘式(稳定性高)。
无刷电机。
四足机器人的足端设计主要有三种形式,即圆柱形足端(含半圆柱型阻断),球型足端(含半球形足端)及仿生足端。
圆形足端是目前四足机器人最常见的足端设计,足端呈球形或半球型,这种设计的优点是机器人足端可以和地面从各个方向接触,具有较强的环境适应性。
这里我们选择圆柱形。
功能特性:

  1. 八自由度
  2. 并联腿
  3. 能够实现TROT小跑步姿

硬件特性:

  1. PyBOARD主控
  2. PCA9685舵机扩展版
  3. 7.4V 800mah锂电池
  4. MG90S舵机
  5. 遥控器
  6. 无需打板

DIY成本:
低DIY成本

制造的基本流程:

  1. Github下载三维图
  2. CURA打开STL
  3. 设置好打印参数
  4. 3D打印(制造)

3、DIY准备

PYBOARD:

  • 采用Python编程
  • 可以直接像U盘那样保存
  • NOTEPAD++和PUTTY就可以完成全部编程步骤
  • 支持多线程固件

PCA9685:

  • I2C通讯
  • 可以直接针插,不做板成为可能

2S(7.4V)800MAH电池:
LM2596稳压模块:

  • 调至6V供电

MG90S舵机  X8

*****************************************************

课后作业

#L1-作业1# 上Github,搜索下stanford doggo的原生开源仓库,认识其机械结构组成,写一篇有关于其机械结构的总结

同轴机构:

  • 驱动每条腿的同轴机构绝对是机器人最复杂的机械部件。这也是最麻烦的。它的工作方式是,有两个TMotorMN
    5212电机安装在碳纤维侧板上。也有一个3D打印轴承块,其中有两个轴承,以容纳外部同轴管。。两台电机通过16T滑轮和48T滑轮之间的6mm宽、3mm节距GT2皮带将功率传递给同轴轴。没有足够的空间用于普通的,现成的滑轮,所以使用X计量SLS服务打印了我们自己的。我们学会了总是向服务部门说明滑轮必须打印出来。如果零件是以一个角度印刷,滑轮齿的几何形状会因为离角层而变形。在滑轮上方,我们有一个喷水铝制支架,以保持皮带张力,从而防止在高扭矩情况下跳过。尽管如此,要为托架找到最佳的中心到中心距离真的很痛苦,因为电机和小滑轮之间的连接处的斜率,以及更大的滑轮和轴之间的连接处的斜率,意味着上托架的中心到中心距离必须比皮带供应商(sdp-si)规定的标称中心到中心距离大0.5mm。这个组件最大的问题是皮带张力越大,我们在装配中的摩擦力就越大。较高的摩擦力意味着电机的跟踪性能较差,对触地事件的敏感性也更差等等。在我们的下一个机器人上,我们希望有更平滑、更精确的机械滑轮,以及更少的同轴装配中的斜率

腿:

  • 狗有四,二自由度腿的SCARA味道。SCARA的味道,意思是,每个腿是一个五杆机构和两个上面的环节是同轴驱动。实际的腿链接是由大蓝锯切割的水射流,这是一个伟大的在线服务(虽然确保上传您的所有部分在一个DXF,以节省费用)。喷水部件实际上是足够精确的,我们不需要对轴承的孔进行修补。

接缝:

  • 对于每个接头,有两个深沟球轴承相互堆叠在一起,并有一个肩部螺栓穿过他们和螺纹进入对立的环节。

脚:

  • 机器人的脚是我们用3D打印的2部分模具制成的硅橡胶制品。

框架:

  • 机器人的框架非常简单。有两个喷水,4mm碳纤维板在每边,连接两个1/32“5052铝板金属零件。这些钣金零件被水射流切割,然后用手折叠起来(由于两个碳纤维面板向内倾斜,铝制零件上的标签不能折叠在制动器上)。

#L1-作业2# 结合上Github的stanford doggo仓库和百度搜索两个信息源,对其原生控制硬件Odrive和无刷电机的控制方式进行了解

Odrive:

  • 环形位置控制 要启用环形位置控制,设置axis.controller.config.setpoints_in_cpr = True 此模式对于连续的增量位置移动很有用。 例如,机器人会无限期滚动,或者挤出机马达或传送带会以受控的增量无限期地移动。
    在常规位置模式下,pos_setpoint将增长到非常大的值,并且由于浮点舍入而失去精度。
    在这种模式下,控制器将尝试仅在电动机旋转一圈之内跟踪位置。
    具体而言,pos_setpoint的范围应为[0,cpr-1],其中cpr是一圈编码器计数值。
    如果pos_setpoint增加到该范围之外(例如通过step /
    dir输入),则会自动将其约束到[0,cpr-1]范围内。注意:在此模式下,将使用encoder.pos_cpr
    作为位置位置反馈,而非encoder.pos_estimate
    如果尝试以超过cpr/2步的大步幅增加位置,则电机将以相反的方向旋转至相同角度。当输入控制量干扰很大时,也会出现这种情况。
    如果您有一个需要处理较大步幅的应用程序,则可以使用虚拟CPR,该虚拟CPR是编码器实际CPR的整数倍。
    设置encoder.config.cpr = N * your_enc_cpr,其中N是一些整数。
    选择合适的N为您的应用提供合适的位置设置范围。
  • 速度控制 设置 axis.controller.config.control_mode = CTRL_MODE_VELOCITY_CONTROL。 现在,您可以使用 axis.controller.vel_setpoint = 5000 [count/s] 控制转速。
  • 速度爬升控制 设置 axis.controller.config.control_mode = CTRL_MODE_VELOCITY_CONTROL 设置速度爬升速率 (绝对加速度):
    axis.controller.config.vel_ramp_rate = 2000 [counts/s^2] 启动速度爬升模式:
    axis.controller.vel_ramp_enable = True 现在,您可以使用
    axis.controller.vel_ramp_target = 5000 [count/s] 控制转速。
  • 电流控制 设置 axis.controller.config.control_mode = CTRL_MODE_CURRENT_CONTROL 现在,您可以使用axis.controller.current_setpoint = 3 [A] 来控制电机电流。 注意: 在电流控制模式下没有速度限制。 确保不要使电机过载或超过编码器的最大速度。

无刷电机的控制方式:

  • 换相的控制 根据定子绕组的换相方式,首先找出三个转子磁钢位置传感器信号H1、H2、H3的状态,与6只功率管之间的关系,以表格形式放在单片机的EEPROM中。8751根据来自H1、H2、H3的状态,可以找到相对应的导通的功率管,并通过P1口送出,即可实现直流无刷电动机的换相。
  • 转速的控制 在直流无刷电动机正常运行的过程中,只要通过控制数模转换器的输出电压U0,就可控制直流无刷电动机的电流,进而控制电动机的电流。即8751单片机通过传感器信号的周期,计算出电动机的转速,并把它同给定转速比较,如高于给定转速,则减小P2口的输出数值,降低电动机电流,达到降低其转速的目的。反之,则增大P2口的输出数值,进而增大电动机的转速。
  • PWM控制 转速控制也可以通过PWM方式来实现。
  • 变结构控制 当直流无刷电动机处于起动状态或在调整过程中,采用直流无刷电动机的运行模式,以实现动态相应的快速性,一旦电动机的转速到了给定值附近,马上把它转入同步电动机运行模式,以保证其稳速精度。这时计算机只需要按一定频率控制电动机的换相,与此同时,计算机在通过位置传感器的信号周期,来测量其转速大小,并判断它是否跌出同步。一旦失布,则马上转到直流无刷电动机运行,并重新将其拉入同步。
  • 方波控制 方波控制使用霍尔传感器或者无感估算算法获得电机转子的位置,然后根据转子的位置在360°的电气周期内,进行6次换向(每60°换向一次)。每个换向位置电机输出特定方向的力,因此可以说方波控制的位置精度是电气60°。由于在这种方式控制下,电机的相电流波形接近方波,所以称为方波控制。
    方波控制方式的优点是控制算法简单、硬件成本较低,使用性能普通的控制器便能获得较高的电机转速;缺点是转矩波动大、存在一定的电流噪声、效率达不到最大值。方波控制适用于对电机转动性能要求不高的场合。
  • 正弦波控制 正弦波控制方式使用的是SVPWM波,输出的是3相正弦波电压,相应的电流也是正弦波电流。这种方式没有方波控制换向的概念,或者认为一个电气周期内进行了无限多次的换向。显然,正弦波控制相比方波控制,其转矩波动较小,电流谐波少,控制起来感觉比较“细腻”,但是对控制器的性能要求稍高于方波控制,而且电机效率不能发挥到最大值。
  • FOC控制 正弦波控制实现了电压矢量的控制,间接实现了电流大小的控制,但是无法控制电流的方向。FOC控制方式可以认为是正弦波控制的升级版本,实现了电流矢量的控制,也即实现了电机定子磁场的矢量控制。

这篇关于斯坦福机器狗的设计与实现 四足机器人的机械结构类型和制造的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/568652

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

C#实战|大乐透选号器[6]:实现实时显示已选择的红蓝球数量

哈喽,你好啊,我是雷工。 关于大乐透选号器在前面已经记录了5篇笔记,这是第6篇; 接下来实现实时显示当前选中红球数量,蓝球数量; 以下为练习笔记。 01 效果演示 当选择和取消选择红球或蓝球时,在对应的位置显示实时已选择的红球、蓝球的数量; 02 标签名称 分别设置Label标签名称为:lblRedCount、lblBlueCount

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss