|
发表于 2024-8-30 15:25:37
1693 浏览 1 回复
[新手上路]
利用pos_controller_cascade_PID进行航线控制,无法更改速度
prometheus问答
提问前请先确定以下问题:: |
成功 |
第一步:问题BUG描述: |
利用pos_controller_cascade_PID进行航线控制,更改各种参数,发现无人机的速度最大是1.6,不明白什么地方限制了? |
第二步:PX4版本是否为Prometheus_PX4_V1.11.1分支?: |
是 Prometheus_PX4_V1.11.1 |
第三步:测试prometheus_px4是否正常: |
正常 |
第四步:Prometheus版本是否为最新master?: |
是master版本 |
第五步:测试Prometheus是否正常: |
正常 |
void update_command()
{
if(Command_Now.Mode != prometheus_msgs::ControlCommand::Takeoff){
float pos_x[2] = {100,200};
float pos_y[2] = {100,0};
static int index = 0;
float dx = pos_x[index] - _DroneState.position[0];
float dy = pos_y[index] - _DroneState.position[1];
float distanceSquared = dx * dx + dy * dy;
float delta = 0.25;
if(distanceSquared < delta){
index++;
if(index >1){
index = 1;
}
}
Command_Now.Reference_State.position_ref[0] = pos_x[index];
Command_Now.Reference_State.position_ref[1] = pos_y[index];
Command_Now.Reference_State.position_ref[2] = Takeoff_position[2] + Takeoff_height;
Command_Now.Reference_State.yaw_ref = _DroneState.attitude[2];
}
}
我理解的是pos_controller_cascade_PID最大速度由位置误差和最大速度限幅决定的,但是不明白为什么怎么调整,无人机最大速度只能是1.6
我知道答案
回答被采纳将会获得 4 阿木币 已有1人回答
|
扫一扫浏览分享
|
|
|
|
|
|
|
楼主|
发表于 2024-8-30 15:42:23
我换了航线,最大合速度还是不超过3,但是我设置的最大速度是10,误差产生的速度期望肯定是远超10的,按我的理解它应该会以设置的最大速度10朝着航线飞行一段时间,为什么它会以1.6或者很小的某个速度进行匀速飞行呢? |
|
|
|
|
|
|
|