小黑仿生轮腿机器人-本体说明及运动控制
Posted Robotway
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小黑仿生轮腿机器人-本体说明及运动控制相关的知识,希望对你有一定的参考价值。
一、本体说明
1. 机器人整体描述
小黑仿生轮腿机器人是一款全向仿生轮腿,具备麦克纳姆轮底盘的运动特性的同时,还具备了部分四足仿生机器人的运动特性。通过4个麦克纳姆轮和腿部动作的配合,可以在运动中改变机身的姿态,适应不同的作业环境。
小黑仿生轮腿机器人的肩部安装了8个超声波传感器,还安装了激光雷达、双目摄像头和屏幕,可以用于更复杂的智能控制。
2. 结构说明
轮腿本体结构为模块化结构设计,包含悬挂模块、腿模块、轮模块等。其中悬挂模块可以让机器人的轮子有更好的着地性,防止悬空。
肩膀位置的悬架上下板之间,安装了8个超声波传感器。
结构各部分说明:
零件包含机加工钣金零件、五金零件、3D打印零件,以及弹簧、同步皮带等。BOM及加工文件可在本文末尾下载。
3. 电子硬件
这款轮腿机器人主要的电子硬件包含一个控制机箱(机箱内含Arduino mega2560控制板、专用扩展板、电池等,机箱外部提供各种开关按钮和USB等接口)、树莓派4B、激光雷达、双目摄像头、显示屏、键盘、鼠标及相关的连接线。
我们把装有摄像头的那一端规定为轮腿的前端,下面是关于舵机的接线说明。
4个大标准舵机(模拟舵机)用于腿的摆动,4个总线舵机通过同步皮带带动麦克纳姆轮。
扩展板电路图如下:
大扩展板,直接堆叠在mega2560上
小扩展板1
堆叠在大扩展板上,含2个总线舵机接口、2个舵机接口、4个超声波传感器接口。
小扩展板2
含2个总线舵机接口、2个舵机接口、4个超声波传感器接口
小扩展板3(含6个传感器接口、2个串口、2个总线舵机接口、1个IIC接口、1个舵机接口)
扩展板PCB文件可以在文末下载。
轮腿机箱右侧常用接口:
其中各个接口的含义如下图所示:
4. BOM
名称 | 数量 | 规格 |
大臂输出头 | 4 | 6061铝氧化黑 |
电机壳1 | 4 | 6061铝氧化黑 |
电机壳2 | 4 | 6061铝氧化黑 |
舵机输出轴 | 4 | 6061铝氧化黑 |
机械臂 | 8 | 6061铝氧化黑 |
机械臂挡片 | 24 | 6061铝氧化黑 |
轮轴 | 4 | 304不锈钢 |
皮带轮1 | 8 | 6061铝氧化黑 |
皮带轮4 | 4 | 6061铝氧化黑 |
皮带轮5 | 4 | 6061铝氧化黑 |
皮带轮挡片 | 28 | 6061铝氧化黑 |
皮带轮挡片支架 | 8 | 6061铝氧化黑 |
皮带轮支架柱 | 4 | 6061铝氧化黑 |
25齿轮 | 4 | 铜 |
44齿轮 | 4 | 铜 |
车架 | 1 | 6061铝氧化黑 |
后支架板 | 1 | 6061铝氧化黑 |
前支架板 | 1 | 6061铝氧化黑 |
主控侧板 | 1 | 6061铝氧化黑 |
主控底板 | 1 | 6061铝氧化黑 |
主控顶板 | 1 | 6061铝氧化黑 |
主控后板 | 1 | 6061铝氧化黑 |
主控前板 | 1 | 6061铝氧化黑 |
乐视双目支架 | 1 | 亚克力黑色5mm |
雷达小板外壳1 | 1 | 进口高硬度尼龙_3D打印 |
雷达小板外壳2 | 1 | 进口高硬度尼龙_3D打印 |
超声波外壳1 | 4 | 进口高硬度尼龙_3D打印 |
超声波外壳2 | 4 | 进口高硬度尼龙_3D打印 |
电池仓 | 1 | 进口高硬度尼龙_3D打印 |
轮腿扩展版 | 1 | PCB |
轮腿连接板1 | 1 | PCB |
轮腿连接板2 | 1 | PCB |
轮腿连接板3 | 1 | PCB |
麦克纳姆轮 | 4 | 型号14144 |
皮带2 | 8 | 橡胶5M,310-5M |
六角铜柱15 | 4 | M3*15双通 |
总线舵机 | 4 | 串行总线舵机,送调试板 |
大扭力数字高压舵机 | 4 | |
轴承6701zz | 36 | 6701-zz(12*18*4) |
轴承MR85zz | 8 | MR85zz(5*8*2.5) |
舵机输出头 | 8 | |
M204黑色沉头螺丝 | 1 | M2*4 |
扭簧 | 8 | |
M210黑色沉头螺丝 | 1 | M2*10 |
树莓派4B | 1 | 内存4G |
32G内存卡 | 1 | |
树莓派显示屏 | 1 | 带支架 |
超声波模组 | 4 | 含PCB加工 |
Arduino Mega2560主控板 | 1 | |
2560主控板数据线 | 1 | |
11.1V动力电池 | 1 | |
杉川激光雷达 | 1 | 含数据线和转接板 |
乐视深度摄像头 | 1 | 含底座 |
弯头Type-c线(双弯头) | 1 | 0.25m |
直通HDMI航空头 | 1 | HDMI新款直通 |
D型ZUSB-3.0直通母座 | 1 | D型ZUSB-3.0直通母座 |
环形12V自锁开关 | 1 | 12V(自锁式)、22mm、环形+电源灯绿色带插座 |
电源适配器 | 1 | DC5.5mm接口,12V10A |
5V6A稳压模块 | 1 | 5V6A |
micro-HDMI线 | 1 | D2-A1 0.15m |
双公头USB | 1 | |
DC电源插座插孔 | 1 | |
双头JTAG排线30P | 1 | |
双头JTAG排线16P | 2 | |
动力电池电源线 | 1 | |
蓝牙键鼠套装 | 1 | |
USBhub3.0 | 1 | |
探索者4芯输入排线 | 8 | |
M3黑色沉头螺丝6mm | 100 | |
M3黑色沉头螺丝8mm | 100 | |
M3黑色沉头螺丝10mm | 100 | |
六角铜螺柱50 | 10 | M3*50(10粒) |
六角铜螺柱20 | 10 | M3*20(10粒) |
压簧50 | 4 | 1.0*8*50 |
5. 资料内容
① 轮腿驱动及控制-样机3D文件
② 轮腿-生产加工文件
资料内容详见:小黑仿生轮腿机器人(本体说明)
二、运动控制
1. 运动功能描述
小黑仿生轮腿机器人是一款全向仿生轮腿,具备麦克纳姆轮底盘的运动特性的同时,还具备了部分四足仿生机器人的运动特性。通过4个麦克纳姆轮和腿部动作的配合,可以在运动中改变机身的姿态,适应不同的作业环境。
2. 运动功能的实现
本示例将提供轮腿的基本运动,包括前进、后退、左平移、右平移、左转、右转及轮腿变形运动的参考程序。
编程环境:Arduino 1.8.19
2.1 轮腿基本运动
实现思路:轮腿可以前进、后退、左平移、右平移、左转、右转。
例程(Base_Experiment\\wheelLegDrive\\wheelLegDrive.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-02-28 https://www.robotway.com/
------------------------------*/
/*
* 功能:轮腿驱动
*
* 车身位置及传感器\\电机接线:
*
* Y
* |
* |
* |
* | 【车身左侧】
* | t:22 t:47
* | e:24 e:45
* | 舵机[servoPin:26] t:25 A - - - - - - - - - - - - - - - - - -Y: t:44 舵机[servoPin:43]
* | e:23 | | e:46
* |【车尾】 | | 【车头】
* | t:31 | | t:40
* | 舵机[servoPin:27] e:29 Z - - - - - - - - - - - - - - - - - -X: e:38 舵机[servoPin:42]
* | t:28 t:39
* | e:30 e:41
* | 【车身右侧】
* |
* 0----------------------------------------------------------------------------------------------------------X
* //
*/
//#include <SoftwareSerial.h>
#include<Servo.h>
//#include<ServoTimer2.h>
#define StepTest 20
#define BaudRate 115200
#define StepTestMultiple 1
#define BriefDelayTimes 10
#define ActionDelayTimes 1500
#define CarActionDelayTime 600
#define mySerial Serial1
#define set_pwm_now 2500
#define set_pwm_nows 1500
bool Ultrasonic_flags[8]=;
long GetUltrasonicDatas[8]=;
double ActualSteps = StepTest*StepTestMultiple;
enumFORWARD=1,BACK,LEFTROAD,RIGHTROAD,AUTO_MOVE;
float wheel_Speed[4]=0,0,0,0;
float current_vx = 0,current_vy = 0,current_va = 0;
//SoftwareSerial mySerial(51, 9);
void setup()
delay(1000);
mySerial.begin(115200);
Serial.begin(BaudRate);//set Baud rate
init_Servo();delay(300);
init_Ultrasonic();
XYSetVel(0.0,0.0, 0.0);delay(300);
moveTest();
void loop()
//moveTest();
//Get_ultrasonic_sensor_data();
void control_single_motor(int speed_single,int pwm)
char cmd_return[200];
sprintf(cmd_return, "#%03dP%04dT%04d!",0,pwm,1);
mySerial.print(cmd_return);
void moveTest()
XYSetVel(0.05, 0.0, 0.0);delay(2000); //forward 前进
XYSetVel(0.0,0.0, 0.0);delay(2000);//停止
XYSetVel(-0.05,0.0,0.0);delay(2000); //back 后退
XYSetVel(0.0,0.0, 0.0);delay(2000);
XYSetVel(0.0,0.0,-0.20);delay(2000); //left 左转
XYSetVel(0.0,0.0, 0.0);delay(2000);
XYSetVel(0.0 ,0.0,0.20 );delay(2000); //right 右转
XYSetVel(0.0,0.0, 0.0);delay(2000);
XYSetVel( 0.0, -0.05, 0.0);delay(2000);//Left translation 左平移
XYSetVel( 0.0, 0.05, 0.0);delay(2000);//right translation 右平移
XYSetVel(0.0,0.0, 0.0);delay(2000);
2.2 轮腿变形运动
实现思路:通过控制轮腿的舵机,来实现轮腿变形的效果。
例程(Base_Experiment\\Wheel_leg_deformation\\Wheel_leg_deformation.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-02-28 https://www.robotway.com/
------------------------------*/
/*
* 功能:轮腿变形
*
*
* 车身位置及传感器\\电机接线:
*
* Y
* |
* |
* |
* | 【车身左侧】
* | t:22 t:47
* | e:24 e:45
* | 舵机[servoPin:26] t:25 A - - - - - - - - - - - - - - - - - -Y: t:44 舵机[servoPin:43]
* | e:23 | | e:46
* |【车尾】 | | 【车头】
* | t:31 | | t:40
* | 舵机[servoPin:27] e:29 Z - - - - - - - - - - - - - - - - - -X: e:38 舵机[servoPin:42]
* | t:28 t:39
* | e:30 e:41
* | 【车身右侧】
* |
* 0----------------------------------------------------------------------------------------------------------X
* //
*/
#include<Servo.h>
#define StepTest 20
#define BaudRate 115200
#define StepTestMultiple 1
#define BriefDelayTimes 10
#define ActionDelayTimes 1500
#define CarActionDelayTime 600
#define mySerial Serial1
#define set_pwm_now 2500
#define set_pwm_nows 1500
bool Ultrasonic_flags[8]=;
long GetUltrasonicDatas[8]=;
double ActualSteps = StepTest*StepTestMultiple;
enumFORWARD=1,BACK,LEFTROAD,RIGHTROAD,AUTO_MOVE;
float wheel_Speed[4]=0,0,0,0;
float current_vx = 0,current_vy = 0,current_va = 0;
void setup()
delay(3000);
mySerial.begin(115200);
Serial.begin(BaudRate);//set Baud rate
init_Servo();delay(2300);
init_Ultrasonic();
XYSetVel(0.0,0.0, 0.0);delay(2300);
Dog_Dance();
void loop()
3. 资料内容
轮腿驱动及控制-例程源代码
资料内容详见:小黑仿生轮腿机器人(运动控制)
三、超声避障
1. 功能描述
在轮腿上装8个 超声测距传感器 ,本文示例将实现轮腿避障的效果。
2. 电路连接
轮腿的每个边角上装有2个超声测距传感器,共8个,超声测距传感器的PCB是重新设计的,如下图所示:
超声测距传感器的安装位置如下图所示:
3. 功能实现
编程环境:Arduino 1.8.19
参考例程(Base_Experiment\\Control_IicServo_and_Servo),实现轮腿避障效果。下面是主程序Control_IicServo_and_Servo.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-02-28 https://www.robotway.com/
------------------------------*/
/*
* 轮腿避障
*
* 车身 位置及传感器\\电机接线:
*
* Y
* |
* |
* |
* | 【车身左侧】
* | t:22 t:47
* | e:24 e:45
* | 舵机[servoPin:26] t:25 A - - - - - - - - - - - - - - - - - -Y: t:44 舵机[servoPin:43]
* | e:23 | | e:46
* |【车尾】 | | 【车头】
* | t:31 | | t:40
* | 舵机[servoPin:27] e:29 Z - - - - - - - - - - - - - - - - - -X: e:38 舵机[servoPin:42]
* | t:28 t:39
* | e:30 e:41
* | 【车身右侧】
* |
* 0-----------------------------------------------------------------------------------------
* //
*/
//#include <SoftwareSerial.h>
#include<Servo.h>
//#include<ServoTimer2.h>
#define StepTest 20
#define BaudRate 115200
#define StepTestMultiple 1
#define BriefDelayTimes 10
#define ActionDelayTimes 1500
#define CarActionDelayTime 600
#define mySerial Serial1
#define set_pwm_now 2500
#define set_pwm_nows 1500
bool Ultrasonic_flags[8]=;
long GetUltrasonicDatas[8]=;
double ActualSteps = StepTest*StepTestMultiple;
enumFORWARD=1,BACK,LEFTROAD,RIGHTROAD,AUTO_MOVE;
float wheel_Speed[4]=0,0,0,0;
float current_vx = 0,current_vy = 0,current_va = 0;
//SoftwareSerial mySerial(51, 9);
void setup()
delay(500);
mySerial.begin(115200);
Serial.begin(BaudRate);//set Baud rate
init_Servo();delay(300);
init_Ultrasonic();
XYSetVel(0.0,0.0, 0.0);delay(300);
moveTest();
Dog_Dance();
void loop()
Get_ultrasonic_sensor_data();
void control_single_motor(int speed_single,int pwm)
char cmd_return[200];
sprintf(cmd_return, "#%03dP%04dT%04d!",0,pwm,1);
mySerial.print(cmd_return);
void moveTest()
XYSetVel(0.05, 0.0, 0.0);delay(2000); //forward 前进
XYSetVel(0.0,0.0, 0.0);delay(2000);//停止
4. 资料内容
轮腿避障-例程源代码
资料内容详见:小黑仿生轮腿机器人(超声避障)
成果发布 | 焊接过程中轨迹在线动态规划与焊道跟踪协同的控制方法
焊接过程中轨迹在线动态规划与焊道跟踪协同的控制方法
01.成果简介
在能源装备、重型机械、船舶制造等领域中的大型构件焊接场合,移动焊接机器人因其 大范围运动能力等优势成为解决大尺度、复杂的空间曲线焊缝自动化焊接的有效方法。受安装于移动焊接机器人的机器人本体上机载执行机构装置(例如机械臂、直角坐标系式X-Y 滑架等)的工作行程所限制,需要结合机器人本体实时调整其位置与姿态以保证焊炬对中焊缝中心,即在机器人本体与机载执行机构的协同控制下进行焊接作业。
现有的移动焊接机器人主要采用单一类型的焊缝跟踪传感器,包括电弧传感器、视觉传 感器,采用电弧传感器的移动焊接机器人仅检测熔池区域并从中获取焊接偏差信息,机器人本体根据电弧传感器获取的实时焊接偏差信息或机载执行机构的实际纠偏行为调整位姿,要求机载执行机构具有较大的有效工作行程;而且,机器人本体对焊道的跟随运动易受移动焊接机器人系统的机电惯性影响导致控制滞后,特别是在曲线焊缝轨迹局部大曲率区域与折角区域等需要移动焊接机器人执行大角度转弯运动以跟踪焊缝轨迹的区域,因难以及时调整位姿,极易产生偏焊缺陷,或因焊接速度变化导致焊缝成形不良;采用视觉传感器的移动焊接机器人为了避免强烈弧光干扰,视觉传感器检测区域通常与电弧熔池区域存在一定距离,难以实时补偿因焊接母材受热变形导致焊缝位置与尺寸的变化。
本项成果提出了一种焊接过程中轨迹在线动态规划与焊道跟踪协同的控制方法,以便实现大尺度复杂轨迹焊缝焊接中的焊道精确跟踪,同时保证焊缝成形质量。
02.应用前景
本项成果属于移动(式)焊接机器人技术领域。涉及一种焊接过程中轨迹在线动态规划与焊道跟踪协同的控制方法,可广泛应用于移动机器人自动化焊接等方面。
03.知识产权
本项成果涉及1项授权专利。
04.团队介绍
本项目团队主要研究领域包括:成形制造(材料加工)复杂过程建模与控制,智能化焊接技术及航天制造工程应用,无损检测可视化技术及在钢管制造工程应用等。团队负责人为清华大学长聘教授,机械工程系学术委员会副主任,成形装备及自动化研究所所长,先进成形制造教育部重点实验室副主任,已获得国内外授权发明专利八十余项,在国内外期刊和会议发表学术论文二百余篇。
05.合作方式
商务合作。
06.联系方式
邮箱:zhangyan2017@tsinghua.edu.cn
以上是关于小黑仿生轮腿机器人-本体说明及运动控制的主要内容,如果未能解决你的问题,请参考以下文章