极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1877|回复: 0

4自由度并联机器狗实现下蹲功能

[复制链接]
发表于 2023-6-19 13:59:59 | 显示全部楼层 |阅读模式
本帖最后由 机器谱 于 2023-6-19 13:59 编辑

1. 功能说明
        本文示例将实现R328a样机4自由度并联机器狗下蹲的功能。


2. 结构说明
       本样机的并联驱动结构与
【R082】4自由度并联四足【https://www.robotway.com/h-col-209.html】 类似,两款样机可以对比来看。
       本样机腿部的结构如下图所示:驱动核心部分是两个5杆结构的组合。

两个五杆结构图

       驱动核心部分再搭配下图的四杆结构,即可构成单侧的腿。驱动核心部分再搭配下图的四杆结构,即可构成单侧的腿。

四杆结构

单侧腿部图
整机

3. 电子硬件
       在这个示例中,我们采用了以下硬件,请大家参考:

主控板
Basra主控板(兼容Arduino Uno)
扩展板
Bigfish2.1扩展板
电池
7.4V锂电池

       电路连接:为了便于识别控制4自由度并联机器狗,我们先规定好机器狗的前方以及舵机位置编号(如下图所示):


       将舵机(A1、A2 、B1、B2)连接在Bigfish扩展板的D4、D7、D3、D8端口,如下图所示:


4. 功能实现
       上位机:Controller 1.0
       下位机编程环境:Arduino 1.8.19
       实现思路:实现4自由度并联机器狗站立、前蹲、后蹲的动作。

4.1 调试舵机角度
       利用上位机 Controller软件调整4自由度并联机器狗的舵机角度,记录下机器狗站立、前蹲、后蹲时舵机的角度;然后利用Arduino IDE进行下位机编程,利用这些角度实现机器狗下蹲的功能。
       对于如何利用Controller软件进行调试机器狗的舵机角度,可参考【U002】如何驱动模拟舵机-Controller 1.0b软件的使用【https://www.robotway.com/h-col-129.html】 在本次实验中,经过调试,对于4自由度并联机器狗站立、前蹲、后蹲时的舵机角度值如下图所示:

机器狗站立时的舵机值

机器狗前蹲时的舵机值

机器狗后蹲时的舵机值

4.2 示例程序
       下面提供一个4自由度并联机器狗下蹲的参考例程(Dog_squat.ino),实验效果可参考官网演示视频。
  1. /*------------------------------------------------------------------------------------

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

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

  4.            https://opensource.org/licenses/MIT

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

  6.   ------------------------------*/

  7. /*

  8.     本例程实现机器小狗站立、前蹲和后蹲

  9. */


  10. #include<Servo.h>

  11. #define SERVO_SPEED 60      //定义舵机转动快慢的时间

  12. #define ACTION_DELAY 0      //定义所有舵机每个状态时间间隔


  13. Servo myServo[4];


  14. int f = 15;                                         //定义舵机每个状态间转动的次数,以此来确定每个舵机每次转动的角度

  15. int servo_port[4] = {3,4,7,8};                      //定义舵机引脚

  16. int servo_num = sizeof(servo_port) / sizeof(servo_port[0]);   //定义舵机数量

  17. float value_init[4] = {1513,1457,1074,1545};        //定义舵机初始角度


  18. void setup() {

  19.   Serial.begin(9600);

  20.   for(int i=0;i<servo_num;i++){

  21.     ServoGo(i,value_init[i]);

  22.   }

  23.   delay(2000);

  24. }


  25. void loop() {

  26.   Dog_squat();

  27. }


  28. void Dog_squat()

  29. {

  30.   servo_move(value_init[0],value_init[1],value_init[2],value_init[3]);//直立

  31.   servo_move(1243,1703,1278,1299);//向后蹲下

  32.   servo_move(value_init[0],value_init[1],value_init[2],value_init[3]);//直立

  33.   servo_move(1715,1255,1052,1545);//向前蹲下

  34.   servo_move(value_init[0],value_init[1],value_init[2],value_init[3]);//直立

  35. }



  36. void ServoStart(int which)

  37. {

  38.   if(!myServo[which].attached())myServo[which].attach(servo_port[which]);

  39.   pinMode(servo_port[which], OUTPUT);

  40. }


  41. void ServoStop(int which)

  42. {

  43.   myServo[which].detach();

  44.   digitalWrite(servo_port[which],LOW);

  45. }


  46. void ServoGo(int which , int where)

  47. {

  48.   if(where!=200)

  49.   {

  50.     if(where==201) ServoStop(which);

  51.     else

  52.     {

  53.       ServoStart(which);

  54.       myServo[which].write(where);

  55.     }

  56.   }

  57. }


  58. void servo_move(float value0, float value1, float value2, float value3) //舵机转动

  59. {



  60.   float value_arguments[] = {value0, value1, value2, value3};

  61.   float value_delta[servo_num];



  62.   for(int i=0;i<servo_num;i++)

  63.   {

  64.     value_delta[i] = (value_arguments[i] - value_init[i]) / f;

  65.   }



  66.   for(int i=0;i<f;i++)

  67.   {

  68.     for(int k=0;k<servo_num;k++)

  69.     {

  70.       value_init[k] = value_delta[k] == 0 ? value_arguments[k] : value_init[k] + value_delta[k];

  71.     }

  72.     for(int j=0;j<servo_num;j++)

  73.     {

  74.       ServoGo(j,value_init[j]);

  75.     }

  76.     delay(SERVO_SPEED);

  77.   }

  78.   delay(ACTION_DELAY);

  79. }
复制代码

5. 扩展样机
      本样机可以做出一些扩展,如下图所示的在样机上方增加平板,此样机可用探索者零件或探索者兼容零件制作。


6. 资料下载
资料内容:
①下蹲-程序源代码
②下蹲-样机3D文件
资料下载地址:
4自由度并联机器狗-下蹲 https://www.robotway.com/h-col-237.html
想了解更多机器人开源项目资料请关注 机器谱网站 https://www.robotway.com

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-2 01:03 , Processed in 0.052358 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表