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

四足馬術(shù)機(jī)器人實物

2單腿運動學(xué)逆解
相關(guān)算法
控制2個無刷電機(jī)(紅色箭頭各代表一個電機(jī)控制)并聯(lián)成單足,經(jīng)過角度閉環(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ī)劃
相關(guān)算法
Walk步態(tài)是一種靜態(tài)步態(tài),即在運動過程中始終有三條腿處于支撐相,至多只有一條腿處于擺動相,四足動物在walk步態(tài)中四條腿最常見的輪換順序為1→3→4→2→1。


4無刷電機(jī)角度速度
pid閉環(huán)
以P比例、I積分、D微分通過增量式PID使無刷電機(jī)能穩(wěn)定的控制速度,角度使用pd控制函數(shù)如下
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關(guān)鍵功能實現(xiàn)
代碼展示
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函數(shù)中while循環(huán)用下列函數(shù)發(fā)送對應(yīng)數(shù)據(jù):
HAL_UART_Transmit_DMA(UARTID, (uint8_t *)buffer,sizeof(buffer));
串口3接收回調(diào),執(zhí)行難對應(yīng)的前進(jìn)后退:
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;
}
審核編輯:湯梓紅
-
機(jī)器人
+關(guān)注
關(guān)注
213文章
31092瀏覽量
222352 -
串口
+關(guān)注
關(guān)注
15文章
1619瀏覽量
82867 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6293瀏覽量
118241 -
大疆
+關(guān)注
關(guān)注
30文章
922瀏覽量
84845 -
xr806
+關(guān)注
關(guān)注
0文章
14瀏覽量
1591
原文標(biāo)題:讓XR806控制四足機(jī)器人,單腿運動、步態(tài)規(guī)劃都能行
文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
使用XR806聯(lián)調(diào)控制四足馬術(shù)機(jī)器人
評論