0

阿木币

0

精华

0 小时

在线时间

应届白菜

Rank: 1

发表于 2024-8-30 15:25:37 277 浏览 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人回答

扫一扫浏览分享
回复

使用道具 举报

0

阿木币

0

精华

0 小时

在线时间

应届白菜

Rank: 1

 楼主| 发表于 2024-8-30 15:42:23
我换了航线,最大合速度还是不超过3,但是我设置的最大速度是10,误差产生的速度期望肯定是远超10的,按我的理解它应该会以设置的最大速度10朝着航线飞行一段时间,为什么它会以1.6或者很小的某个速度进行匀速飞行呢?
回复 点赞

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表