8自由度并联腿机器狗实现行走功能

news2024/11/25 0:48:05

1. 功能说明

 本文示例将实现R309a样机8自由度并联腿机器狗行走的功能。

2. 并联仿生机器人结构设计

      机器狗是一种典型的并联仿生四足机器人,其腿部结构主要模仿了四足哺乳动物的腿部结构,主要由腿部的节段和旋转关节组成。在设计机器狗的腿部结构时,可基于四足哺乳动物的生理结构,使用连杆代替腿部的骨骼来提高机器人的性能,机器狗腿部采用5连杆结构设计。

      五杆结构是平面连杆结构的一种,具有两个自由度的平面闭链五杆机构不仅使运动机构的刚度增加,更突出的优点在于它能够实现变轨迹的运动。

五杆结构

腿部旋转关节单元设计

       腿部的旋转关节是机器人中很重要的一部分,它是整个机器人中的关键运动单元,关节的设计往往决定了机器人的运动特性和精度。关节单元主要是负责连接相邻的两端节段,从而实现腿部的摆动。由于腿部是往复运动,因此关节单元的设计要符合循环负载的载荷规律。

关节结构如图:

旋转关节结构图

侧摆关节设计

      侧摆关节的主要作用是给机器狗提供回转方向的自由度,使机器狗的腿部能够偏离竖直平面运动,从而实现转弯、侧移、抗侧向冲击等步

组合后的机器狗的腿部结构图

       机器狗的腿部关节大体分为两类,第一类是如四足哺乳动物前腿的肘关节一样的腿部关节设计,另一类是类似四足哺乳动物后腿的膝关节的腿部关节制造。基于以上原理,科学家们设计出四类机器狗的腿部结构:全膝式、全肘式、内膝肘式、外膝肘式。

腿部结构有四种形式

腿部的空间运动区域如下图:

 各种布置结构的运动空间如下图:

      内膝式结构条件下,运动中的机器狗内部结构质心曲线最为平滑,因此该结构也是最稳定的,为两侧提供的运动空间也更大。此外,运动时机器狗腿部重合的范围也缩小了。基于以上因素,内膝式结构条件有利于机器人的稳定操作。

3. 并联仿生机器人运动算法

      在日常生活中,狗的品种、体型不尽相同,因此其运动状态也是多种多样,我们将以生活中最常见的一种运动状态进行分析。在研究中,我们可以通过对狗的行走过程进行高速摄影,抓拍到狗行走的运动全过程,如下图所示:

狗行走过程分解图

      然后我们可以对其中一条腿进行分析,将重叠其放在一个相对狗自身静止的坐标系中,如下图所示:

单条腿末端的运动轨迹

       根据图示分析,我们可以将狗的腿部运动简单分为与地面接触的支撑阶段和离开地面的跨越阶段。将足部点相连,可近似得到如上图虚线所示的“馒头”状轨迹,支撑段——足接触地面且相对于地面静止不动,身体相对于地面前移;跨越段——足在空中运动,跨越障碍物。

      要想让机器狗像真正的狗一样走路,我们就需要控制舵机,让机器狗的腿部走出类似上图中的“馒头”状轨迹。这段轨迹不能超出我们设计的机器狗腿部的运动范围,如下图所示(蓝色阴影区域为机器狗腿部结构的运动范围):

机器狗腿部结构的运动范围

       从而得到“馒头”状轨迹曲线的坐标。

坐标系下的腿部末端运动轨迹

       于是我们可以根据这个坐标为“馒头状”轨迹指定一个合适的方程,图中轨迹弧线部分可近似取为一个椭圆。

       取轨迹原点在真实坐标系中的位置\left ( x_{0},y_{0} \right )

       取椭圆两半轴长a=4,b=3

       则该椭圆方程为:y=b\sqrt{1-\frac{\left ( x-x_0 \right )^{2}}{a^2}}+y_0

       或者:\frac{(x-x_0)^2}{a^2}+\frac{(y-y_0)^2}{b^2}=1 (y\geq y_0)

       底部直线方程为:y=y_0(x_0-a\leq x\leq x_0+a)

       通过这个方程,再结合机器狗腿部机构运动公式,即可反推出舵机的一系列运动参数。

机器狗的行进步态

      机器狗是四足行走机构,由于四足动物运动的稳定性,相对于双足行走的人来说,其运动步态比较简单,大多机器狗简单的采用前后脚差90度或180度。

机器狗模型

        机器狗采用前后脚差180度时的脚部运动落地顺序图如下(注:白色为要抬起的脚,灰色不抬起的脚)

        机器狗采用前后脚差90度时的脚部运动落地顺序图如下:

        机器狗四条腿腿同时动的时候的动作效果包括整体下蹲、整体站立、身体前后俯仰、身体侧翻等,效果图如下所示:

4. 电子硬件

      本实验中采用了以下硬件:

主控板

Basra主控板(兼容Arduino Uno)‍

扩展板

Bigfish2.1扩展板‍

SH-SR舵机扩展板
电池7.4V锂电池

       电路连接说明:将8个舵机连接在SH-SR扩展板上,舵机接线顺序为:1、2、3、4、5、6、7、8

5. 功能实现

      上位机:Controller 1.0

      下位机编程环境:Arduino 1.8.19

5.1 调试舵机角度

       机器大狗可以实现站立、下蹲、前趴、后仰的功能。我们可以利用上位机 Controller软件调整大狗的舵机角度,记录下站立、下蹲、前趴、后仰 时舵机的角度;然后利用Arduino IDE进行下位机编程,利用这些角度实现大狗的预期效果。

       对于8自由度的大狗,利用Controller软件进行调试角度界面(如下图所示):

        经过调试,对大狗的下蹲、站立、前趴、后仰四个功能的舵机角度值见下表:

功能舵机角度值
下蹲1069,736,1855,2174,1746,1839,1007,850
站立1365,1163,1522,1837,1657,939,1253,1341
前趴1069,736,1855,2174,1657,939,1253,1341
后仰1365,1163,1522,1780,1746,1839,1007,850

      利用上位机测出的舵机角度,可进行下位机编程。

5.2 示例程序

      下面提供一个8自由度并联腿机器狗行走的参考例程(Dog_Walk.ino),具体实验效果可参考官网演示视频。

/*------------------------------------------------------------------------------------

  版权说明:Copyright 2023 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.

           Distributed under MIT license.See file LICENSE for detail or copy at

           https://opensource.org/licenses/MIT

           by 机器谱 2023-05-17 https://www.robotway.com/

  ------------------------------*/

#include "leg.h"

#include "gait.h"

#include "sensor.h"



enum{DOGBALANCE=1,DOGWALK,DogObstacleAvoidanceWalk};


float Eular[3]; /* 欧拉角 */


void setup() {

  // put your setup code here, to run once:

  Serial.begin(115200);

  Serial.begin(115200);

  sensorSetup();

  delay(3000);

}


void loop() {

  // put your main code here, to run repeatedly:

  Dog_Walk();    //狗前进(行走)

}




void Dog_Walk()

{

   static long t_control = millis();

   static int t0 = millis();

   if(t_control){   t0 = millis();   }

    if ((millis() - t_control) > 50)

    {

      float x[4], y[4];

      long t = millis() - t0;

      gait(t, 0.5, x[0], y[0], forwardGait);

      gait(t, 0, x[1], y[1], forwardGait);

      gait(t, 0, x[2], y[2], forwardGait);

      gait(t, 0.5, x[3], y[3], forwardGait);

      leg0.footPos(x[0], y[0]);

      leg1.footPos(x[1], y[1]);

      leg2.footPos(x[2], y[2]);

      leg3.footPos(x[3], y[3]);

      t_control = millis();

    }     

}

6. 扩展样机

     本样机可以做出一些扩展,如下图所示的在样机上方增加一个平板。

 

程序源代码及样机3D文件资料内容详见 8自由度并联腿机器狗-行走

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

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

相关文章

实用教学Prompt 提示词实战:如何用 ChatGPT 指导高考语文作文写作

又是一年高考季,牵动着广大学生和家长的心。7 日上午,语文科目考试结束。 今年高考语文共7套试卷:全国甲卷、全国乙卷、新课标Ⅰ卷、新课标Ⅱ卷、北京卷、天津卷、上海卷。 以高考语文作文题目来实践检验一下,如何用合适的提问词&…

chatgpt赋能python:Python将首字母变成大写——提升SEO排名的一种简单方法

Python将首字母变成大写——提升SEO排名的一种简单方法 在SEO行业中,优化关键字密度和网站结构是常规且必要的工作。但是,除此之外,我们也应该注意到一些看似微不足道但可能对网站排名产生影响的细节。比如,对于文章标题和正文的…

Mocha AE:Track 模块

当对跟踪踪结果不是很满意的时候,可尝试更改下 Track(跟踪)模块中的选项之后重新跟踪。 Input 输入 Clip 剪辑 选择要跟踪的素材。 --Input 输入 --Layer Below 下方图层 Track Individual Fields 跟踪单个场 针对隔行扫描素材,…

【IMX6ULL驱动开发学习】01.安装交叉编译环境【附下载地址】

第一步(下载工具链): 从官网上下载交叉编译工具链 https://snapshots.linaro.org/gnu-toolchain/ 按照以下步骤选择 可以选择最新的(我也忘记我用的哪个版本了,都可以用问题不大) 第二步(…

【Rust日报】2023-06-06 motus 一个非常方便的命令行密码生成工具

motus 一个非常简单的命令行密码生成工具 Motus是一个命令行应用,帮你轻松生成安全密码。 它的用户界面非常简单、优雅,跟 1Password 的密码生成器一样,让你感觉很舒服。Motus 默认会把生成的密码复制到你的剪贴板,用起来非常方便…

2023智源大会议程公开丨AI生命科学论坛

6月9日,2023北京智源大会,将邀请AI领域的探索者、实践者、以及关心智能科学的每个人,共同拉开未来舞台的帷幕,你准备好了吗?与会知名嘉宾包括,图灵奖得主Yann LeCun、OpenAI创始人Sam Altman、图灵奖得主Ge…

java设计模式之:策略模式

文章目录 什么是策略模式?策略模式结构策略模式适用场景简单示例项目实战场景用一坨坨代码实现策略模式重构代码代码实现优惠券接口优惠券接口实现策略控制类测试类 总结 设计模式是软件设计中常见问题的典型解决方案。 它们就像能根据需求进行调整的预制蓝图&#…

基于BP神经网络对MNIST数据集检测识别(Pytorch,Tensorflow版本)

基于BP神经网络对MNIST数据集检测识别 1.作者介绍2.基于BP神经网络对MNIST数据集检测识别2.1 BP神经网络介绍2.2 神经元模型2.3 激活函数2.4 BP神经网络基础架构2.5 BP神经网络正向传播反向传播 3.基于BP神经网络对MNIST数据集检测识别实验3.…

Playwright系列:第14章 Playwright性能测试实战

下方查看历史精选文章 重磅发布 - 自动化框架基础指南pdfv1.1大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 功能测试可以验证应用程序的功能是否正常,…

Cocos Store打通企业提现,诚邀更多团队和公司入驻!

2023年5月29日 Cocos Store 终于上线,令众多开发者期盼已久的功能——企业对公提现。 在此,真诚地对大家说一声:抱歉,我们来晚了! 但请一定相信 Cocos 引擎、Cocos Store 一直在努力并从未间断为开发者们创造价值&…

chatgpt赋能python:小黑框:Python程序员必备利器

小黑框:Python程序员必备利器 如果您是一名Python程序员,小黑框(Terminal)一定不陌生。小黑框是一种基于文本的用户界面,通常用于执行命令行任务,编写或调试代码等。Python程序员可以通过小黑框完成许多任…

【JUC基础】16. Fork Join

1、前言 “分而治之”一直是一个非常有效的处理大量数据的方法。著名的MapReduce也是采取了分而治之的思想。。简单地说,就是如果你要处理 1000 个数据,但是你并不具备处理 1000个数据的能力,那么你可以只处理其中的 10 个,然后分…

使用JSAPl来做一个倒计时的效果

今天的小案例需要做一个倒计时的效果 我们的时分秒需要一直进行倒计时&#xff0c;然后我们的页面颜色需要根据定时器的操作来进行更换&#xff0c;首先我们还是可以来分析一下我们的HTML步骤 <div class"countdown"><p class"next">今天是22…

HCIE-Cloud Computing LAB备考第二步:实战解题–第五题:论述二--跨数据中心部署问答--缩写法

跨数据中心部署 通常部署在同城或相近城市存在的两个数据中心&#xff0c;其物理距离在300km以内&#xff0c;两个数据中心均处于运行状态&#xff0c;可同时承担相同业务&#xff0c;提高数据中心的整体服务能力和系统资源利用率&#xff0c;当单数据中心故障时&#xff0c;业…

学会使用perf性能分析工具(含移植到arm-linux开发板)

文章目录 一、在ubuntu中使用apt包下载Perf二、使用源码安装Perf&#xff0c;并移植到arm-linux环境下三、使用perf四、Perf的功能介绍 系统&#xff1a;Ubuntu18.04系统 内核版本&#xff1a;5.4.0-150-generic&#xff08;通过uname -r查看&#xff09; 一、在ubuntu中使用ap…

针对大屏设备优化 Android 应用的方式及相关注意事项

作者 / Android 团队 近年来&#xff0c;包括大型可折叠设备、平板电脑以及 Chromebook 等大屏 Android 设备的数量与日俱增。确保应用可以在大屏设备上为用户提供无缝体验比以往任何时候都更加重要。例如&#xff0c;用户希望应用能够更充分利用这些设备的更大屏幕空间。我们发…

数据库信息速递 MONGODB CTO 看数据库发展趋势 与 不使用MONGODB你就要交“创新税”...

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群 3群&#xff…

为了女神,我拼了!

大家注意&#xff1a;因为微信最近又改了推送机制&#xff0c;经常有小伙伴说错过了之前被删的文章&#xff0c;比如前阵子冒着风险写的爬虫&#xff0c;再比如一些限时福利&#xff0c;错过了就是错过了。 所以建议大家加个星标&#xff0c;就能第一时间收到推送。&#x1f44…

第二十八章 开发Productions - ObjectScript Productions - 定义业务操作

文章目录 第二十八章 开发Productions - ObjectScript Productions - 定义业务操作介绍关键原则定义业务操作类 第二十八章 开发Productions - ObjectScript Productions - 定义业务操作 本页介绍如何定义业务操作类。 提示&#xff1a; IRIS 提供使用特定出站适配器的专用业…

解读大模型的微调

在快速发展的人工智能领域中&#xff0c;有效地利用大型语言模型&#xff08;LLM&#xff09;变得越来越重要。然而&#xff0c;有许多不同的方式可以使用大型语言模型&#xff0c;这可能会让我们感到困惑。实际上&#xff0c;可以使用预训练的大型语言模型进行新任务的上下文学…