RM-2个函数实现全向运动

本文介绍了一种用于底盘电机的全向运动控制算法。该算法通过计算电机角度及速度来实现底盘精确的方位调整与移动。核心部分包括角度补偿、速度矢量分解以及PID控制等关键技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

	chassis_enable();//底盘电机使能	
	chassis_move_remote();//电机全向运动算法
void chassis_move_remote(void)
{
rotor_Angle=(-moto_chassis[4].angle+Bchang)*360/8192;//开机时由于装配导致的补偿角度就可以通过减去Bchang值得到0,所以此时底盘朝前	
Vx=cos(rotor_Angle/180*My_Pi)*(remote_control.ch3*rotor_V/660)+sin(rotor_Angle/180*My_Pi)*(remote_control.ch4*rotor_V/660);
Vy=cos(rotor_Angle/180*My_Pi)*(remote_control.ch4*rotor_V/660)-sin(rotor_Angle/180*My_Pi)*(remote_control.ch3*rotor_V/660); 

}
void  chassis_enable(void)
{
			ch[0]= -Vy+Vx+Vz;
			ch[1]= -Vy-Vx+Vz;//vz小于0, 车子逆时针转动
			ch[2]=  Vy-Vx+Vz;
			ch[3]=  Vy+Vx+Vz;
			ch[4]=(float)(remote_control.ch1)*4096/660;


				//四个电机3506
	   for(int i=0; i<4; i++)
    {
      motor_pid[i].target = ch[i]; 																							
      motor_pid[i].f_cal_pid(&motor_pid[i],moto_chassis[i].speed_rpm);    //3506 moto_chassis[0].speed_rpm
    }
		//201 202 203 204
set_moto_current(&hcan1,motor_pid[0].output,motor_pid[1].output,motor_pid[2].output,motor_pid[3].output);//3506
 set_motor_voltage(&hcan1,0, motor_pid[4].output,motor_pid[5].output,motor_pid[6].output,0);//6020   205
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值