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 athttps://opensource.org/licenses/MITby 机器谱 2023-06-02 https://www.robotway.com/------------------------------*/#include<Servo.h>#define upper_servo_initialangle 90#define lower_servo_initialangle 90Servo 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自由度并联仿生腿-概述