
UAV
Gkbytes
这个作者很懒,什么都没留下…
展开
-
如何让auto或者guided模式下,无论航点距离多少都按航点设置航向。
// set heading used for spline and waypoint navigationvoid AC_WPNav::set_yaw_cd(float heading_cd){ _yaw = heading_cd; _flags.wp_yaw_set = true; if(_yaw < 0.01f){ _fla...原创 2019-12-30 00:38:48 · 572 阅读 · 1 评论 -
update_boundary_for_sector
总的来讲就是算两个相邻扇区的最小距离,输出一个二维边界点,通过sin /cos × shortdistances 算出 。// update boundary points used for object avoidance based on a single sector's distance changing// the boundary points lie on the l...原创 2018-09-04 00:32:15 · 221 阅读 · 0 评论 -
Arducopter Yaw角分析
Arducopter Yaw现梳理一遍Poshold模式下的yaw的情况:首先从 Copter::fast_loop() –> update_flight_mode()–> Copter::ModePosHold::run()// get_pilot_desired_heading - transform pilot's yaw input into a desir...原创 2018-09-05 02:30:11 · 1481 阅读 · 0 评论 -
APM High Resolution Timer
static uint64_t timer_base = 0;uint64_t hrt_micros(){ static volatile uint64_t last_micros; // 使用typedef为现有类型创建别名,定义易于记忆的类型名 typedef uint32_t syssts_t; /**< System status word....原创 2018-08-26 02:18:11 · 261 阅读 · 0 评论 -
avoidance orientation
time_boot_ms uint32_t Timestamp (time since system boot). min_distance uint16_t Minimum distance the sensor can measure max_distance uint16_t Maximum distance the sensor can meas...原创 2018-09-04 13:35:36 · 284 阅读 · 0 评论 -
APM ecl 如何把 .bin 文件转换为 .mat
Instructions for running the EKF replay1) Ensure the ‘EKF_replay’ directory is in a location you have full read and write access2) Create a ‘TestData’ sub-directory under the ‘EKF_replay’ directory...原创 2018-08-25 15:33:04 · 1815 阅读 · 0 评论 -
Setting up SITL on Linux
SITL Simulator (Software in the Loop)SITL(环路软件)模拟器允许你跑 Plane, Copter or Rover 不用任何硬件。它使用一个普通的c++编译器构建autopilot代码,提供了一个本机可执行文件,允许您在不使用硬件的情况下测试代码的行为。本文概述了SITL的优点和体系结构:SITL允许您在PC上直接运行ArduPilot,无需任何...原创 2018-08-22 01:59:13 · 538 阅读 · 0 评论 -
nra24
global 高度,也称绝对高度或者海拔高度,是飞机位置据海平面的高度;NED坐标系中的高度,也称相对高度,是距离地面的高度,向上为负无人机高度计分为绝对高度测量高度计和相对高度测量高度计两种类型。绝对高度测量的是相对海平面的绝对高度,一般用于高空飞行的无人机平台,主要包括气压高度计和GPS高度计;相对测量的是无人机平台距离地球表面的相对高度,一般用于低空无人机平台,主要包括超声波...转载 2018-08-22 01:06:12 · 1519 阅读 · 0 评论 -
Install GitKraken
下载deb文件:https://www.gitkraken.com/download/linux-deb安装:sudo dpkg -i gitkraken-amd64.deb原创 2018-08-21 20:18:13 · 388 阅读 · 0 评论 -
UAVCAN 配置 - Arudcopter
UAVCAN 配置本文提供指导在Ardupilot上设置UAVCAN协议Tips:首先UAVCAN协议应该被使能,应该参照CAN Bus Setup详细的UAVCAN协议:https://uavcan.org/CAN Bus Setup本文主要教如何设置CAN bus ,并且哪些选项是必须设置的使能CAN接口每个物理端口能用CAN_PX_DRIVER参数关闭或者连接到相应的驱动,这...原创 2018-09-19 01:30:03 · 4750 阅读 · 0 评论 -
Chibios arducopter 学习
Chibios 启动 run 学习Chibios 启动代码在 startup_stm32f7xx.mk中:HAL_ChibiOS的run() 函数void HAL_ChibiOS::run(int argc, char * const argv[], Callbacks* callbacks)const { //前面省略 //接管执行main------------Takeove...原创 2019-03-10 10:02:37 · 889 阅读 · 0 评论 -
EKF Check
从SCHED_TASK(ekf_check, 10, 75) 10hz开始。// ekf_check - detects if ekf variance are out of tolerance and triggers failsafe// should be called at 10hz// 检查ekf协方差是否超过容忍限度并且触发失效保护。void Copter::ekf_check...原创 2019-08-23 01:55:23 · 560 阅读 · 0 评论 -
EKF
Extended Kalman Filter (EKF)EKF2 和 EKF3 的优缺点EKF2被默认最稳定EKF2能接收从Vicon系统或者ROS SLAM 中接受位置估计,EKF3目前是没有的,除非和EKF2一样。EKF2仅仅估计加速度z轴补偿,EKF3估计三轴加速度补偿。EKF3接收更新的传感器源,包括:Beacons、Wheel Encoders 以及Visual Odome...原创 2019-07-19 09:13:06 · 7244 阅读 · 4 评论 -
MISSION_MAVLINK
上传航点的mavlink包MISSION_ITEM ( #39 )Message encoding a mission item. This message is emitted to announce the presence of a mission item and to set a mission item on the system. The mission item can be...原创 2019-07-03 18:37:17 · 693 阅读 · 0 评论 -
arducopter--parachute
先梳理个手动开伞流程:有两种方法:其一,通过mavlink控制,这种方式比较安全,可以在地面站上做保护提示:handleMessage函数中包含解降落伞的case:* 在传过来 MAVLINK_MSG_ID_COMMAND_LONG (76) 包中,识别command,为CMD 208为开伞,自动起飞如下enable parachute后,先传param1 为0 ,在开伞时选择2开伞。...原创 2019-07-02 02:09:35 · 516 阅读 · 0 评论 -
rm: cannot remove 'nuttx-export': Is a directory
问题:rm: cannot remove ‘nuttx-export’: Is a directory解决方法:删除build文件夹即可原创 2019-06-26 02:09:12 · 725 阅读 · 0 评论 -
arm-none-eabi-ld: region 'flash' overflowed by 570 bytes
由 1008k改为 flash (rx) : ORIGIN = 0x08004000, LENGTH = 1010K原创 2019-06-15 01:02:36 · 1893 阅读 · 0 评论 -
mavlink generate
https://mavlink.io/en/getting_started/generate_libraries.html#原创 2019-05-28 14:10:57 · 395 阅读 · 0 评论 -
RTCM3.1/3.2
RTCM3.1消息rtcm1004 扩展L1/L2 GPS RTK观测量输入命令:log com1 rtcm1004 ontime 1输出报文:D3 00 04 48 58 48 44 50 BC 24 D3 00 95 3E C0 01 6D AB 70 80 9B 09 11 38 61 FC E9 23D2 EE 10 E5 C1 46 FC 3D 20 A...原创 2019-05-11 17:48:30 · 9478 阅读 · 0 评论 -
uart-apm
代码定义 PCB电路表述 Serial标号 说明 uartA OTG1 Serial0 接USB,支持MAVLink协议(Micro USB) uartB UART4 Serial 3 接GPS模块(GPS) uartC USART2 Serial 1 接第1数传模块(Telem1) uartD USAR...原创 2018-08-28 23:00:47 · 305 阅读 · 0 评论 -
Adding a New Parameter to Copter
Adding a parameter to the main 第一步:在Parameters.h类的枚举中加入enum { // Misc // k_param_log_bitmask = 20, k_param_log_last_filenumber, // *** Deprecated - remove ...原创 2018-08-20 20:50:15 · 277 阅读 · 0 评论 -
无人机矢量旋转一个角度后的坐标计算(四元数表示)
已知一个无人机旋转的坐标向量,和旋转角度求旋转之后的角度。(三维空间向量旋转)原创 2018-06-10 17:14:45 · 1357 阅读 · 0 评论 -
点乘和差乘的区别(姿态解算中的数学运算基础)
由于在无人机姿态解算中经常会用到点乘和差乘,故在此进行解释。原创 2018-06-10 11:54:42 · 7912 阅读 · 0 评论 -
四旋翼无人机俯仰角、横滚校和航向角和电机输出PWM的关系详解(一种情况)
无人机研发中,记录点滴原创 2018-06-10 00:32:10 · 12332 阅读 · 0 评论 -
无人机加速度计读数的正负判断(MPU6050正常放置情况下)
无人机研发过程中一些小的问题。原创 2018-06-09 23:50:29 · 4611 阅读 · 1 评论 -
无人机右手定则以及角度大小方向粗判断
无人机右手定则:左力右场,知道z轴方向,然后就知道了xy轴方向,其中x轴为大拇指指向的方向。四旋翼无人机欧拉角角度大小与其状态的关系:设大地坐标系为:E(OXYZ),无人机机体坐标系为:B(oxyz),大地坐标系始终静止,机体坐标系相对于大地坐标系是运动的。...原创 2018-06-07 15:26:03 · 4360 阅读 · 0 评论 -
无人机欧拉角万向节锁死详解
万向节的锁死主要由陀螺仪的结构产生,如下图所示为陀螺仪的结构:1.正常情况介绍无人机进行俯仰晃动时陀螺仪变化情况(红色代表俯仰角、绿色代表横滚角、蓝色代表航偏角):无人机进行横滚晃动时:无人机进行航偏晃动时:2. 产生万向节锁死介绍(分别为抬头为正90度或低头为负90度时)红色坐标:控制俯仰。(正常控制俯仰)绿色...原创 2018-06-12 01:27:16 · 9482 阅读 · 8 评论 -
Baseflight(MWC)讲解(GPS部分)
关于GPS部分由UART得到GPS帧数据之后,最后从一个大小为15的数组中解算出来。省略由Baseflight的判断逗号位来确定经纬度。假设输出的经度为:2237.56087、 下一句中,指p从0-->4判断出小数点位置之后,再开始计算小数点后面的分数。此时P=4而q=0,然后随着q++就可得出经度的度和小数点前面的分。最终得到:度deg 小数点前的分 m...原创 2018-07-05 22:28:02 · 1210 阅读 · 0 评论 -
无人机单个气压定高
PID定高: 高度差:offset= Althold-EstAlt由高度环得到速度:SetVel=EXT_P*error(offset) vel_acc=accz_tmp*accscale*accsumT (v=at)vel=vel+vel_accbare_vel=(now_alt-old_Alt)/update_Frequency得到当前速度:vel_tmp=vel*0.9+bare_vel...原创 2018-07-07 00:19:01 · 6444 阅读 · 0 评论 -
biquad
// ledvinap//y[n] = -0.89*x[n] + a1*x[n-1] - b1*y[n-1] void biquadRCFIR2FilterInit(biquadFilter_t *filter, uint16_t f_cut, uint32_t samplingIntervalUs){ // 15 500hz ÈôÊÇ 15 <1000 if (f_cut ...原创 2018-08-15 00:36:34 · 1541 阅读 · 0 评论 -
alt —throttle
// Z轴位置控制器// target altitude should be set with one of these functions: set_alt_target, set_target_to_stopping_point_z, init_takeoff// calculates desired rate in earth-frame z axis and passes to ...原创 2018-08-28 01:38:41 · 279 阅读 · 0 评论 -
set_alt_target_from_climb_rate_ff
// 用前馈的攀爬率调整目标上和下,真实的目标位置将没有速度上和速度下快// 如果电机达到极限或超过限制长度,目标也将停止// 在着陆期间将force_descend设置为true,以允许目标移动到足够低以使电机减速void AC_PosControl_Sub::set_alt_target_from_climb_rate_ff(float climb_rate_cms, float dt...原创 2018-08-28 00:44:14 · 324 阅读 · 0 评论 -
install openssl
安装时出现错误:sudo apt install openssl1.0 libssl1.0-devReading package lists... DoneBuilding dependency tree Reading state information... DoneE: Unable to locate package openssl1.0E: Couldn't f...原创 2018-08-20 19:41:52 · 1562 阅读 · 0 评论 -
ImportError: No module named Xlib
安装 ubuntu deepin-scrot缺少依赖 pthon-xlib Traceback (most recent call last): File "./deepinScrot.py", line 25, in <module> from mainscrot import MainScrot File "/usr/share/deepin-scrot/...原创 2018-08-20 15:47:40 · 2185 阅读 · 0 评论 -
ImportError: No module named future
遇到APM编译错误,没有安装python 的futureTraceback (most recent call last): File "/home/b/MMC_ArduPilot/modules/mavlink/pymavlink/tools/mavgen.py", line 16, in <module> from pymavlink.generator impor...原创 2018-08-20 11:27:34 · 12251 阅读 · 13 评论 -
Adding a new Log Message
添加一个新的日志消息DataFlash日志存储在飞行控制器的DataFlash内存中,可以在飞行后下载。这些日志提供了关于每次飞行的详细信息,这可能非常重要,尤其是在试图诊断出故障原因时这个页面解释了如何编写一个新的dataflash日志消息。 简单的方法用:ardupilot/libraries/DataFlash/DataFlash.h DataFlash_Class:i...原创 2018-08-23 00:50:46 · 418 阅读 · 0 评论 -
无人机姿态解算在欧拉角、旋转矩阵和四元数中为什么选用四元数法。
欧拉角与机体角速度(陀螺仪)的关系:奇异且非线性;旋转矩阵与机体角速度(陀螺仪)的关系:不奇异且维数高;四元数与机体角速度(陀螺仪)的关系:不奇异且维数适中。...原创 2018-06-11 18:03:40 · 2367 阅读 · 0 评论