8,493
社区成员
发帖
与我相关
我的任务
分享要做无人船的轨迹跟踪任务,使用PX4做控制。从rover_pos_control的代码往前查,发现最后调用了这段动力分配的代码
void ControlAllocationPseudoInverse::allocate()
{
//Compute new gains if needed
updatePseudoInverse();
_prev_actuator_sp = _actuator_sp;
// Allocate
_actuator_sp = _actuator_trim + _mix * (_control_sp - _control_trim);
}
按照无人船的动力分配公式(f1,f2是对应电机推力,T是偏航力矩,f是油门,B是两个电机的距离):

在sitl仿真时,发现_mix中数据如下:


给我的感觉 _mix中存在默认的参数,负责做动力分配,但是我没找到这个默认参数在哪,我以为是在地面站中进行设置,不知道对不对,在PX4源码中怎么做无人船的动力分配呢。还有就是在1.14.0往后好像下述文件夹mixer就没了,这部分该怎么处理?


你好,我最近也在用px4做无人船,目前px4貌似只支持桨舵和差速类型的船。如果加上艏侧推或者其他类型的推进方式不知道怎么修改,控制分配部分的代码是不是要重写。