1. 运动功能说明
本文实例将实现2自由度并联仿生腿模组运动起来,模拟实现狗腿行走的动作。
2. 结构说明
2自由度并联仿生腿模组是由两个舵机驱动的,它的所有动作都将在两个舵机的配合运动下实现。
3. 运动原理说明
2自由度并联仿生腿模组运动的点位如下图所示:
4. 电子硬件
在这个示例中,我们采用了以下硬件,请大家参考:
主控板 | Basra主控板(兼容Arduino Uno) |
扩展板 | Bigfish2.1扩展板 |
电池 | 7.4V锂电池 |
电路连接:将2个舵机连接在Bigfish扩展板的D4、D7端口。
5. 运动功能实现
上位机:Controller 1.0
下位机编程环境:Arduino 1.8.19
实现思路:实现2自由度并联仿生腿模组运动起来。
5.1 舵机角度的确定
将2自由度并联仿生腿模组用工具调整至合适的点位后,用量角器测量出相应的舵机角度值。模拟狗腿行走的动作,对每个动作的角度进行测量并记录数据。
操作步骤:① 以固定舵机的两个螺丝为固定量角器位置。
② 拧紧螺丝,防止取下量角器时角度发生变化,导致测量的不够准确。
③ 对量角器进行读数并进行数据记录。
④ 利用Controller动作编辑软件,输入测量到的角度值进行尝试,如果动作和实际有偏差的话可改变角度参数进行调整,直至得到正确的舵机角度组合为止。关于Controller动作编辑软件的使用方法,可参考【U002】如何驱动模拟舵机-Controller 1.0b软件的使用
5.2 示例程序
下面提供一个2自由度并联仿生腿模组运动的参考例程(tuibuyundong.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-06-02 https://www.robotway.com/
------------------------------*/
#include<Servo.h>
#define upper_servo_initialangle 90
#define lower_servo_initialangle 90
Servo upper_servo; //大腿舵机
Servo lower_servo; //小腿舵机
void setup()
{
upper_servo.attach(4);
lower_servo.attach(7);
upper_servo.write(upper_servo_initialangle);
lower_servo.write(lower_servo_initialangle);
delay(1000);
}
void loop()
{
//大腿动一下
for(int i=0;i<30;i++)
{
upper_servo.write(upper_servo_initialangle+i);
delay(100);
}
for(int j=30;j>0;j--)
{
upper_servo.write(upper_servo_initialangle+j);
delay(100);
}
//小腿动一下
for(int i=0;i<30;i++)
{
lower_servo.write(lower_servo_initialangle+i);
delay(100);
}
for(int j=30;j>0;j--)
{
lower_servo.write(lower_servo_initialangle+j);
delay(100);
}
}
程序源代码及模组3D文件资料详见 2自由度并联仿生腿-概述