APM 路径规划笔记

2023-05-16

20180711:
类名:AC_WPNav
功能:完成Auto、Loiter、Abmode模式中的路径规划


为计算方便设置默认值,实际值有可能又变化
_wp_accel_cms = 100
_wp_accel_z_cms = 100
_jerk_cmsss = 1700(AC_PosControl)


_wp_speed_cms = 500
_wp_speed_up_cms = 250
_wp_speed_down_cms = 150


_wp_radius_cm = 200


类名:AC_PosControl
功能:位置控制器


通过AC_WPNav给出的数值的计算值
_leash = 100/(2*1*1) + 500*500/(2*100) = 1300
_speed_down_cms = -150
_leash_down_z = 100/(2*1*1) + 150*150/(2*100) = 162.5
_speed_up_cms = 250
_leash_up_z = 100/(2*1*1) + 250*250/(2*100) = 362.5


现假设,P1(300,400,300)点为源点,P2(1200,1600,300)为目的点,P(400,500,300)为飞机当前所在点
_pos_delta_unit = (P2-P1)/|P2-P1| = (0.6,0.8,0)
pos_delta_unit_xy = norm(_pos_delta_unit.x, _pos_delta_unit.y);
pos_delta_unit_z = fabsf(_pos_delta_unit.z);


根据上述数据,算得(AC_WPNav::calculate_wp_leash_length):
_track_accel = _wp_accel_cms/pos_delta_unit_xy = 100
_track_speed = _wp_speed_cms/pos_delta_unit_xy = 500
_track_leash_length = _leash/pos_delta_unit_xy = 1300


_slow_down_dist = _track_speed * _track_speed / (4.0f*_track_accel) = 625


以update_wpnav()、advance_wp_target_along_track(dt)为例:
curr_delta = P-P1 = (100,100,0)
track_covered = curr_delta · _pos_delta_unit = 140
track_covered_pos = _pos_delta_unit * track_covered = (84,112,0)
track_error = curr_delta - track_covered_pos = (16,-12,0)
track_error_xy = norm(track_error.x, track_error.y) = 20
track_error_z = fabsf(track_error.z) = 0
leash_z = _leash_up_z = 362.5


track_leash_length_abs = fabsf(_track_leash_length) = 1300
track_error_max_abs = MAX(_track_leash_length*track_error_z/leash_z, _track_leash_length*track_error_xy/_pos_control.get_leash_xy()) = 20
track_leash_slack = (track_leash_length_abs > track_error_max_abs) ? safe_sqrt(sq(_track_leash_length) - sq(track_error_max_abs)) : 0 = 1299.84
track_desired_max = track_covered + track_leash_slack = 140+1299.84 = 1439.84




注:
  // get_leash_xy - returns horizontal leash length in cm
  float AC_PosControl :: get_leash_xy() const { return _leash; }


  设置目标点时,设置_limited_speed_xy_cms = constrain_float(speed_along_track,0,_wp_speed_cms);
其中,float speed_along_track = curr_vel.x * _pos_delta_unit.x + curr_vel.y * _pos_delta_unit.y + curr_vel.z * _pos_delta_unit.z;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

APM 路径规划笔记 的相关文章

  • 从APM源码分析GPS、气压计惯导融合

    最近事多 xff0c 忙着开源自研飞控 xff0c 现主要工作基本已经完成 xff0c 代码最迟下月中旬开放 xff0c 博客来不及更新 xff0c 还请各位见谅 xff0c 后面会抽空多更的咯 xff01 xff01 xff01 自研飞控
  • 【飞控学习】APM和PX4飞控源码下载及安装

    对于无人机开发的专业人员来说 xff0c APM和PX4是现今市面上最强大的2个开源无人机飞控 学习和查看他们2者的源码 xff0c 将会提高我们对整个无人机的姿态解算和控制的深入理解 现在我们就来下载2者的源码和安装查看2者源码的软件 1
  • APM_ArduCopter源码解析学习(四)——IMU

    APM ArduCopter源码解析学习 xff08 四 xff09 IMU 前言一 system cpp 1 1 无人机内部初始化1 2 Copter init ardupilot 1 3 Copter startup INS groun
  • PX4和ardupilot(APM)的对比

    经常看见有人在群里问这个 1 APM历史要远长于PX4 xff0c 因此功能更丰富 xff0c 经历的坑也更多 xff0c 填的坑也更多 xff0c 因此有 功能完善 运行稳定 的优势 xff08 这里的稳定指的是由于程序问题莫名其妙炸机的
  • pixhawk(APM)与树莓派的接线

    当然我之前也专门写过TX2 树莓派和pixhawk的接线 xff0c 但那时默认用的PX4固件 xff0c 这回是APM固件 见https blog csdn net sinat 16643223 article details 10776
  • PX4 APM ROS MAVROS Gazebo之间关系

    https www cnblogs com yilangUAV p 14476923 html 1 PX4与APM 参考 https bbs amovlab com forum php mod 61 viewthread amp tid 6
  • 富斯FS-T6 APM飞控四种飞行模式设置方法_MIX混控设置

    来源于5iMX论坛的这篇帖子 富斯FS T6 APM飞控两种飞行模式设置方法点击打开链接 但是我按照作者的设置MIX的方法 xff0c 怎么都只有三种通道 先上图吧 xff1a 1 我的混控设置 xff1a OFFSET是偏移量 xff0c
  • 【Ardupilot (APM)】 Benewake(北醒) TFmini-i CAN 基于PixHawk的运用说明

    目录 一 前言二 TFmini i CAN 配置三 接线四 飞控参数设定4 1 避障的常用设置4 2 避障测试4 3 定高的常用设置4 4 定高测试 五 常见问题 一 前言 TFmini i CAN PixHawk1 CAN 端口或任何已刷
  • 使用VSCode打造APM飞控的编译+烧录+调试一体的终极开发环境

    日期 xff1a 2019 05 08 前言 APM xff08 Ardupilot xff09 和PX4是当今世界上最为流行和活跃的两大开源飞控软件项目 xff0c 它们均在Linux下基于gcc编译工具链开发 xff0c 对于那些习惯与
  • APM-MP日志分析参数索引

    MP日志分析参数索引 通过 ctrl 43 F 查找获取需要对应参数信息 AP Logger 64 LoggerMessage ADSB ADSB 64 Description Automatic Dependent Serveillanc
  • 烧写APM板的bootloader

    所需工具材料 xff1a 1 一个AVRusbasp编程器以及相应的烧写软件 xff0c 推荐progisp1 72下载链接https download csdn net download sky7723 12477620 2 AVR的US
  • PX4/APM/飞控的学习笔记前言-Cxm

    开始了 开始了 终于有时间可以学习飞控了 此文章是用来当目录 我会持续更新我的学习之旅 希望能对各位有所帮助 如果有错误的地方还请各位前辈指点 此帖持续更新后续内容 其实从21年的一月就开始学习飞控一开始是从PX4开始学习 但是因为对liu
  • STM32控制APM飞控(三)MAVLINK整合并适配stm32串口的收发

    目录 stm32底层串口代码更改能收发MAVLINK协议包 一 在上一次移植好的工程基础上进行如下改动
  • APM飞控修改数传模块方法

    APM飞控修改数传模块方法 硬件 ARDUCOPTER第二代数传模块 USB接口 数传模块 telem接口 usb ttl模块 修改方法 注意 xff1a APM固件版本和数传模块估计版本是分开的 xff0c 但有一定的对应关系 xff0c
  • 关于apm飞控烧bootloader

    最近一直由于学校大创申请的的四轴 xff0c 一直在做这玩意 xff0c 哎 xff0c 无奈这货实在不像想象的那样简单 xff0c 自己写了N久飞控 xff0c 也没把飞机飞起来 xff0c 只能先用开源的apm飞控练练手呗 xff0c
  • 感受一下SPL06气压计+APM三阶互补的高度融合

    不得不说 xff0c spl06气压计很强 xff0c 原始数据也比较干净 xff0c 短时间可以保持在30cm内浮动 xff0c 滤波后在10cm内浮动 就是这么夸张 使用APM的三阶互补滤波融合出 高度 xff0c 速度 xff0c 效
  • 浅谈APM系列-----update_flight_mode(ModeAltHold)

    update flight mode xff08 ModeAltHold xff09 这里只看ModeAltHold 位置 xff1a X ardupilot ArduCopter mode cpp update flight mode c
  • APM飞控学习之路:4 源码裁剪与下载

    月盈则亏 xff0c 水满则溢 当博主编译完成 xff0c 以为离成功更近一步准备下载的时候 xff0c 殊不知陷阱也早已准备好 xff0c 等待我的踏入 连上USB线 xff0c 下载 xff0c timeout xff0c timeou
  • Omnibus F4V3 Pro飞控,APM飞控显示电池电压电流

    默认时 xff0c Omnibus F4 Pro烧写APM飞控后 xff0c 电池检测器没有设置的 想要屏幕上显示电池电压和电流信息 xff0c 就需要设置一下 设置信息如下 xff1a BATT MONITOR 61 4 然后重启 xff
  • APM添加参数

    APM添加参数 参考 https ardupilot org dev docs code overview adding a new parameter html 添加应用参数模块 例如 battery Parameters h k par

随机推荐

  • Docker ROS环境相关开发常用指令

    Docker ROS相关功能记录 1 主机网络代理配置1 1 Docker daemon Docker 守护进程 xff09 Http代理配置1 2 Container xff08 容器 xff09 Http代理配置1 3 Docker B
  • windows安装maven3.6.1教程

    目录 一 下载安装包 xff08 推荐第三种 xff09 二 安装maven 三 更改本地仓库地址 四 配置淘宝镜像 一 下载安装包 xff08 推荐第三种 xff09 1 官网下载 xff1a Maven Download Apache
  • 连载|决策树(下)

    决策树 xff08 下 xff09 在决策树 xff08 上 xff09 中我们了解了ID3和C4 5算法 xff0c 这两种算法都使用了较为复杂的熵来度量 xff0c 使用了复杂的多叉树 xff0c 并且只能处理分类问题 xff0c 针对
  • MAVEN添加SQL SERVER依赖

    maven添加SQL SERVER依赖 lt dependency gt lt groupId gt com microsoft sqlserver lt groupId gt lt artifactId gt mssql jdbc lt
  • 如何从0到1搭建一个个人网站

    前言 如何从0到1搭建一个可以外网访问的项目 xff1f 我就用自己的服务器给大家举例 xff0c 怎么从0到1搭建一个学生和新手可以用来面试的项目 xff0c 老手也可以回忆一下自己逝去的青春 服务器在激活的时候会让你选系统 xff0c
  • 如果再来一次,你还会选择互联网么?

    现在互联网的就业环境 xff0c 大家都在感受着一股寒意 也不知道从什么时候开始 xff0c 身边悲观的声音越来越多了 如果再给你一次机会 xff0c 你还会选择互联网吗 xff1f 回答这个问题之前 xff0c 我想跟大家聊聊一个我朋友的
  • 机器学习一决策树

    决策树 一 基本流程 xff1a 决策树 xff08 decision tree xff09 是一种常见的机器学习方法 xff0c 以二分类任务为例 xff0c 我们希望从给定的训练数据集学得一个模型用于对未知样本进行分类 xff0c xf
  • Jetson AGX xavier 搭建ORB_SLAM3(ubuntu18)

    Jetson AGX xavier 搭建ORB SLAM3 ubuntu18 ORB SLAM3 Github https github com UZ SLAMLab ORB SLAM3 1 安装依赖 sudo apt get instal
  • PX4 GPS笔记

    20180509 xff1a orb publish auto ORB ID vehicle gps position amp report gps pos pub amp report gps pos amp gps orb instan
  • 使用github构建自己的博客

    背景 xff1a 某天偶然下看到同事的博客 xff0c 顿时被吸引了 xff0c 突然很想有一个自己的酷炫的博客 xff0c 就是那种光是背景就能玩一天的博客 xff08 好吧 xff0c 就是觉得好看 xff09 刚好昨天项目上线了 xf
  • 学习笔记(1):自己动手从0到1写嵌入式操作系统-C2.02 任务切换的实现

    立即学习 https edu csdn net course play 4605 82626 utm source 61 blogtoedu 解决了栈冲突的问题 为每个任务独立分配栈 在发生异常的时候 xff1a CPU会自动保存 xPSR
  • CLion 控制台输出中文乱码的解决方法

    照着这篇中的做即可 xff0c 亲测有效 xff1a CLion 控制台输出中文乱码 简书
  • Apollo 自动驾驶工程 x86迁移到ARM ORIN

    概述 最近工作主要关于自动驾驶工程跨平台迁移 xff0c 从原来的X86架构工控机形式迁移到英伟达Orin Soc xff0c 由于Orin是ARM以及这个嵌入式平台的内核是定制的 xff0c 所以遇到了很多问题 xff0c 这里分享出来
  • 在CentOS上安装 Docker

    官方网站安装教程 https docs docker com engine install centos sudo docker 是以管理员模式运行 卸载旧版本 sudo yum remove docker docker client do
  • 多线程的优点和缺点?什么场景适合使用多线程?

    由于多线程应用程序将程序划分成多个独立的任务 xff0c 因此可以在以下方面显著提高性能 xff1a 1 多线程技术使程序的响应速度更快 xff0c 因为用户界面可以在进行其它工作的同时一直处于活动状态 2 当前空闲的任务可以将处理器时间让
  • 相机内参和畸变参数进行校正程序

    当相机校正完成后 xff0c 会得到相机的外参 内参 畸变参数 通过内参和畸变参数可以得到相机校正后的图像 两种方法 xff0c 程序如下 xff1a include lt opencv2 opencv hpp gt include lt
  • (根据关键词)查找论文的一些途径

    以下方式都是在查找机器学习 深度学习相关的论文而发现的 目录 一 https arxiv org search cs 二 semanticscholar xff1a https www semanticscholar org search
  • Detected problems with api compatibility

    今天遇到了这个问题 xff0c 看来还是不要升到Android9 0了 xff01 待测试 xff1a https www cnblogs com qinxiaofei p 10075320 html
  • 在 Win10 系统下安装 JDK 及配置环境变量的方法

    首先 xff0c 在官网下载 JDK xff1a Oracle 官网 如上图所示 xff0c 在 Oracle 官网下载 JDK xff0c 有一点需要注意 xff0c 那就是在我们下载合适的 JDK 之前 xff0c 需要先点击 标记 1
  • APM 路径规划笔记

    20180711 xff1a 类名 xff1a AC WPNav 功能 xff1a 完成Auto Loiter Abmode模式中的路径规划 为计算方便设置默认值 xff0c 实际值有可能又变化 wp accel cms 61 100 wp