机器谱 发表于 2023-6-19 13:59:59

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

本帖最后由 机器谱 于 2023-6-19 13:59 编辑

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

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

https://28846868.s21i.faiusr.com/4/ABUIABAEGAAgoezfowYoxJvh1gYwmgM4qAE.png.webp两个五杆结构图
       驱动核心部分再搭配下图的四杆结构,即可构成单侧的腿。驱动核心部分再搭配下图的四杆结构,即可构成单侧的腿。

https://28846868.s21i.faiusr.com/4/ABUIABAEGAAgtO3fowYogfe34AUwzwE4_gI!300x300.png.webp四杆结构
https://28846868.s21i.faiusr.com/4/ABUIABAEGAAg9u3fowYowNOH3wEwxQU4_gM!400x400.png.webp单侧腿部图https://28846868.s21i.faiusr.com/4/ABUIABAEGAAgwuPfowYo_KDD-AIw5TQ4zy0!400x400.png.webp整机
3. 电子硬件
       在这个示例中,我们采用了以下硬件,请大家参考:


主控板Basra主控板(兼容Arduino Uno)‍

扩展板Bigfish2.1扩展板‍

电池7.4V锂电池

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

https://28846868.s21i.faiusr.com/4/ABUIABAEGAAg-e-fowYopLCC3gYwkQM4rgI.png.webp
       将舵机(A1、A2 、B1、B2)连接在Bigfish扩展板的D4、D7、D3、D8端口,如下图所示:

https://28846868.s21i.faiusr.com/2/ABUIABACGAAgtvTfowYo4JzAuQcwgCQ4gBs!600x600.jpg.webp
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自由度并联机器狗站立、前蹲、后蹲时的舵机角度值如下图所示:

https://28846868.s21i.faiusr.com/4/ABUIABAEGAAgwIDgowYo7NTZsQcw_gQ4UQ.png.webp机器狗站立时的舵机值
https://28846868.s21i.faiusr.com/4/ABUIABAEGAAgp4fgowYospWagwEw8wQ4Tg.png.webp机器狗前蹲时的舵机值
https://28846868.s21i.faiusr.com/4/ABUIABAEGAAg8ofgowYo5e_X7gQw9wQ4Tg.png.webp机器狗后蹲时的舵机值
4.2 示例程序
       下面提供一个4自由度并联机器狗下蹲的参考例程(Dog_squat.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-26 https://www.robotway.com/

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

/*

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

*/


#include<Servo.h>

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

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


Servo myServo;


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

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

int servo_num = sizeof(servo_port) / sizeof(servo_port);   //定义舵机数量

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


void setup() {

Serial.begin(9600);

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

    ServoGo(i,value_init);

}

delay(2000);

}


void loop() {

Dog_squat();

}


void Dog_squat()

{

servo_move(value_init,value_init,value_init,value_init);//直立

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

servo_move(value_init,value_init,value_init,value_init);//直立

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

servo_move(value_init,value_init,value_init,value_init);//直立

}



void ServoStart(int which)

{

if(!myServo.attached())myServo.attach(servo_port);

pinMode(servo_port, OUTPUT);

}


void ServoStop(int which)

{

myServo.detach();

digitalWrite(servo_port,LOW);

}


void ServoGo(int which , int where)

{

if(where!=200)

{

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

    else

    {

      ServoStart(which);

      myServo.write(where);

    }

}

}


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

{



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

float value_delta;



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

{

    value_delta = (value_arguments - value_init) / f;

}



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

{

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

    {

      value_init = value_delta == 0 ? value_arguments : value_init + value_delta;

    }

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

    {

      ServoGo(j,value_init);

    }

    delay(SERVO_SPEED);

}

delay(ACTION_DELAY);

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

https://28846868.s21i.faiusr.com/2/ABUIABACGAAg4IngowYoivj0HTCAJDiAGw!600x600.jpg.webp
6. 资料下载
资料内容:
①下蹲-程序源代码
②下蹲-样机3D文件
资料下载地址:4自由度并联机器狗-下蹲 https://www.robotway.com/h-col-237.html
想了解更多机器人开源项目资料请关注 机器谱网站 https://www.robotway.com
页: [1]
查看完整版本: 4自由度并联机器狗实现下蹲功能