小黑仿生轮腿机器人-本体说明及运动控制

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

名称数量规格
大臂输出头46061铝氧化黑
电机壳146061铝氧化黑
电机壳2

4

6061铝氧化黑
舵机输出轴

4

6061铝氧化黑
机械臂86061铝氧化黑
机械臂挡片246061铝氧化黑
轮轴4304不锈钢
皮带轮186061铝氧化黑

皮带轮4

4

6061铝氧化黑

皮带轮5

4

6061铝氧化黑

皮带轮挡片286061铝氧化黑
皮带轮挡片支架8

6061铝氧化黑

皮带轮支架柱4

6061铝氧化黑

25齿轮

4
44齿轮4

车架1

6061铝氧化黑

后支架板1

6061铝氧化黑

前支架板1

6061铝氧化黑

主控侧板1

6061铝氧化黑

主控底板1

6061铝氧化黑

主控顶板1

6061铝氧化黑

主控后板1

6061铝氧化黑

主控前板16061铝氧化黑
乐视双目支架1

亚克力黑色5mm

雷达小板外壳11进口高硬度尼龙_3D打印
雷达小板外壳21进口高硬度尼龙_3D打印
超声波外壳14

进口高硬度尼龙_3D打印

超声波外壳24

进口高硬度尼龙_3D打印

电池仓1

进口高硬度尼龙_3D打印

轮腿扩展版1PCB
轮腿连接板11

PCB

轮腿连接板21

PCB

轮腿连接板31PCB
麦克纳姆轮4型号14144
皮带28橡胶5M,310-5M
六角铜柱154M3*15双通
总线舵机4串行总线舵机,送调试板
大扭力数字高压舵机4
轴承6701zz366701-zz(12*18*4)
轴承MR85zz8MR85zz(5*8*2.5)
舵机输出头8
M204黑色沉头螺丝1

M2*4

扭簧

8
M210黑色沉头螺丝1M2*10
树莓派4B1内存4G
32G内存卡1
树莓派显示屏1带支架
超声波模组4含PCB加工
Arduino Mega2560主控板1
2560主控板数据线1
11.1V动力电池1
杉川激光雷达1

含数据线和转接板

乐视深度摄像头1含底座
弯头Type-c线(双弯头)10.25m

直通HDMI航空头

1HDMI新款直通
D型ZUSB-3.0直通母座1D型ZUSB-3.0直通母座
环形12V自锁开关112V(自锁式)、22mm、环形+电源灯绿色带插座
电源适配器1DC5.5mm接口,12V10A
5V6A稳压模块15V6A
micro-HDMI线1D2-A1    0.15m
双公头USB1
DC电源插座插孔1
双头JTAG排线30P1
双头JTAG排线16P2
动力电池电源线1
蓝牙键鼠套装1
USBhub3.01
探索者4芯输入排线8
M3黑色沉头螺丝6mm100
M3黑色沉头螺丝8mm100
M3黑色沉头螺丝10mm100
六角铜螺柱5010

M3*50(10粒)

六角铜螺柱2010M3*20(10粒)
压簧5041.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



以上是关于小黑仿生轮腿机器人-本体说明及运动控制的主要内容,如果未能解决你的问题,请参考以下文章

仿人机器人(五连杆七连杆)拉格朗日动力学建模

人工智能需要啥基础?

成果发布 | 焊接过程中轨迹在线动态规划与焊道跟踪协同的控制方法

自然语言处理可以这样商业落地

河内机器人

ARM/DSP+FPGA运动控制机器视觉控制器方案定制