XR806聯調控制
四足馬術機器人
本文為XR806開發板測評文章
作者:木頭
1項目介紹
四足馬術機器人
本項目使用XR806串口協議與大疆A板的stm32通訊,實現并聯四足機器人的單腿運動學逆解與整體步態規劃,本文將講解項目所涉及的算法以及代碼實現步驟。
四足馬術機器人實物
2單腿運動學逆解
相關算法
控制2個無刷電機(紅色箭頭各代表一個電機控制)并聯成單足,經過角度閉環解算出足端軌跡,由足端做擺線軌跡(下圖中綠色部分)形成類似于動物貓狗等單腿的運動
%擺線方程(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整體步態規劃
相關算法
Walk步態是一種靜態步態,即在運動過程中始終有三條腿處于支撐相,至多只有一條腿處于擺動相,四足動物在walk步態中四條腿最常見的輪換順序為1→3→4→2→1。
4無刷電機角度速度
pid閉環
以P比例、I積分、D微分通過增量式PID使無刷電機能穩定的控制速度,角度使用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循環用下列函數發送對應數據:
HAL_UART_Transmit_DMA(UARTID, (uint8_t *)buffer,sizeof(buffer));
串口3接收回調,執行難對應的前進后退:
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; }
審核編輯:湯梓紅
-
機器人
+關注
關注
211文章
28418瀏覽量
207096 -
串口
+關注
關注
14文章
1554瀏覽量
76516 -
開發板
+關注
關注
25文章
5050瀏覽量
97471 -
大疆
+關注
關注
30文章
901瀏覽量
81960 -
xr806
+關注
關注
0文章
14瀏覽量
1323
原文標題:讓XR806控制四足機器人,單腿運動、步態規劃都能行
文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論