XR806聯(lián)調控制
四足馬術機器人
本文為XR806開發(fā)板測評文章
作者:木頭
1項目介紹
四足馬術機器人
本項目使用XR806串口協(xié)議與大疆A板的stm32通訊,實現并聯(lián)四足機器人的單腿運動學逆解與整體步態(tài)規(guī)劃,本文將講解項目所涉及的算法以及代碼實現步驟。

四足馬術機器人實物

2單腿運動學逆解
相關算法
控制2個無刷電機(紅色箭頭各代表一個電機控制)并聯(lián)成單足,經過角度閉環(huán)解算出足端軌跡,由足端做擺線軌跡(下圖中綠色部分)形成類似于動物貓狗等單腿的運動
%擺線方程(matlab) sigma=2*pi*t/(Ts); xep=(xf-xs)*((sigma-sin(sigma))/(2*pi))+xs; zep=h*(1-cos(sigma))/2+zs; x=[x,xep]; z=[z,zep];


3整體步態(tài)規(guī)劃
相關算法
Walk步態(tài)是一種靜態(tài)步態(tài),即在運動過程中始終有三條腿處于支撐相,至多只有一條腿處于擺動相,四足動物在walk步態(tài)中四條腿最常見的輪換順序為1→3→4→2→1。


4無刷電機角度速度
pid閉環(huán)
以P比例、I積分、D微分通過增量式PID使無刷電機能穩(wěn)定的控制速度,角度使用pd控制函數如下
int Balance(float Angle,float Gyro,int Middle,float Balance_Kp,float Balance_Kd)
{
float Angle_bias,Gyro_bias;
int balance;
Angle_bias=Middle-Angle;
Gyro_bias=0-Gyro;
balance=Balance_Kp*Angle_bias+Gyro_bias*Balance_Kd;
return balance;
}
5關鍵功能實現
代碼展示
XR806初始化串口配置:
if(HAL_UART_Init(UARTID, ¶m) != HAL_OK) return -1; /*使能DMA*/ if (HAL_UART_EnableTxDMA(UARTID) != HAL_OK) return -2; if (HAL_UART_EnableRxDMA(UARTID) != HAL_OK) return -3;
在main函數中while循環(huán)用下列函數發(fā)送對應數據:
HAL_UART_Transmit_DMA(UARTID, (uint8_t *)buffer,sizeof(buffer));
串口3接收回調,執(zhí)行難對應的前進后退:
switch(RxBuffer_control)
{
case 'W': Motor_Control( 1, 1, 1, 1); break;
case 'S': Motor_Control(-1, -1, -1, -1); break;
case 'A': Motor_Control(-1, -1, 1, 1); break;
case 'D': Motor_Control( 1, 1, -1, -1); break;
case 'P': Motor_Control( 0, 0, 0, 0); break;
}
審核編輯:湯梓紅
-
機器人
+關注
關注
213文章
31073瀏覽量
222162 -
串口
+關注
關注
15文章
1618瀏覽量
82806 -
開發(fā)板
+關注
關注
26文章
6289瀏覽量
118042 -
大疆
+關注
關注
30文章
921瀏覽量
84837 -
xr806
+關注
關注
0文章
14瀏覽量
1587
原文標題:讓XR806控制四足機器人,單腿運動、步態(tài)規(guī)劃都能行
文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
使用XR806聯(lián)調控制四足馬術機器人
評論