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; }
元件放置中的PCB设计和风险收益分析
华为透露首款VR产品7月中旬上市 对开发者第一年免费分成
互联网技术全面布控、实时监测、排除隐患,实现校园安防零死角
oppo find x 潜望摄像头人气爆棚 科技再次被感知
转塔式贴片机
使用XR806联调控制四足马术机器人
MP3播放器自定义音效简介(别亏待耳朵)
CMET上海站开幕,移动医疗将成为本土厂商新机遇
“易航智能”宣布获得广汽资本旗下基金的1亿元人民币B+轮融资
奔驰已证实将推出纯电动版的G级越野车
为什么需要智能电话机器人,它的好处是什么
活体指纹识别方案应用于高端智能门锁
英特尔酷睿i9处理器助力打造极致的游戏和内容创建体验
乐橙TC5S智能摄像机评测 性价比优势非常明显甚至有点欺负对手
RS232接口和RS485接口的对比
中国移动5G+工业互联网 开启数字经济新篇章
小米的供应链服务厂商普路通又将易主
基于物通博联数据采集网关的闸泵站远程监控运维系统
NVIDIA高性能AI计算和高级算法助力解决停车难题
自下而上设计,精细合成硬碳微结构—高效碱金属负极!