PX4阅读开发小技巧

2023-05-16

1 基操

本文件搜索
全局搜索
后退
前进
ctrl+p,搜索文件名
右键,书签功能
(ctrl+单击) / F12,转到定义
大纲视图
在这里插入图片描述
vscode的Open Folder插件搜索文件夹名

2 利用测试代码帮助理解

测试代码是为了测试本模块代码是否正确,会给定一些输入,并判断其输出与预期输出是否一致。
例如:
src/modules/mc_att_control/AttitudeControl/AttitudeControlTest.cpp
就测试了多旋翼姿态控制算法是否正确。

测试代码书写简单明了,能够帮助理解主干代码。
例如多旋翼的混控过程非常冗长
(见src/lib/mixer/MultirotorMixer/MultirotorMixer.cpp)
在这里插入图片描述

但看src/lib/mixer/MultirotorMixer/test_mixer_multirotor.cpp就非常简单明了,能让人快速提取主干内容。

	MultirotorMixer mixer(mixer_callback, 0, rotors, rotor_count);
	mixer.set_airmode((Mixer::Airmode)airmode);

	int test_counter = 0;
	int num_failed = 0;

	while (!feof(file_in)) {

		// read actuator controls
		unsigned count = 0;

		while (count < 4 && fscanf(file_in, "%f", &actuator_controls[count]) == 1) {
			++count;
		}

		if (count < 4) {
			break;
		}

		// do the mixing
		if (mixer.mix(actuator_outputs, output_max) != rotor_count) {
			return -1;
		}

		// Account for MultirotorMixer outputing [-1,1] and python script [0,1]
		for (unsigned i = 0; i < rotor_count; i++) {
			actuator_outputs[i] = (actuator_outputs[i] + 1.f) * .5f;
		}

不失为阅读代码的一个技巧。

3 使用source insight查看调用关系

3.1 Source Insight破解汉化版

链接: link
本人安装测试成功
导入项目后显示为空白,此时点击 文件 -> 打开
就会出现项目文件框,导引到自己的项目文件路径即可。

3.2 Source Insight完美破解

Source Insight 4.0 完美破解 - 简书
https://www.jianshu.com/p/a4735cf9f334
这个方法也很好,没有测试。

3.3 Source Insight查看引用、调用关系图

(46条消息) source insight查看函数调用关系(总结全网资料)_小熊coder的博客-CSDN博客_查看函数调用关系
link
例如对void FlightTaskAutoLineSmoothVel::_prepareSetpoints()函数查看3级调用,可自动生成如下图片:
在这里插入图片描述
极大提高了看代码的效率,很棒!

4 使用mavlink_log输出消息

会记录在日志中,也会显示在地面站提示消息中。

// 使用MavLink_log的方法
#include <systemlib/mavlink_log.h>

// 定义orb_advert_t
	orb_advert_t _mavlink_log_pub{nullptr};

mavlink_log_info(&_mavlink_log_pub, "[IO] mixer upload fail");
mavlink_log_warning(&_mavlink_log_pub, "Arming denied! Already armed");
mavlink_log_critical(&_mavlink_log_pub, "IO RC config upload fail");
            

4 待补充

4 待补充

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

PX4阅读开发小技巧 的相关文章

  • ardupilot & px4 书写自己的app & drivers (二)

    新建任务列表任务 打印时间 任务列表 const AP Scheduler span class hljs tag Task span Copter span class hljs tag scheduler tasks span span
  • PX4二次开发中查无资料的踩坑总结

    写在前 xff1a 2021年9月下旬开始摸索px4飞控的二次开发 xff0c 从C 43 43 零基础到第一个修改算法后的版本稳定运行 xff0c 大概用了2个月 xff0c 从12月初改用新版本px4源码到现在又过去了约1个月 xff0
  • PX4使用I2C方式添加自定义传感器(1)

    PX4使用I2C方式添加自定义传感器 xff08 1 xff09 前言 毕业设计就是要在PX4上添加一个传感器 xff08 角度传感器 xff09 xff0c 由于板子上的接口数量很少 xff0c 很是宝贵 最后只能选择通过I2C通信方式
  • px4: v2的主板刷写v2的固件

    v2的主板刷写v2的固件 fengxuewei 64 fengxuewei Legion Y7000 2019 PG0 src Firmware changwei rc span class token function make span
  • PX4 SITL Gazebo 仿真时 libgazebo_multirotor_base_plugin 插件运行时出错

    PX4 SITL Gazebo 仿真时 libgazebo multirotor base plugin 插件运行时出错 问题描述原因分析解决办法总结 问题描述 在 Gazebo 中进行 PX4 的软件在环仿真时 xff0c 执 make
  • Ubuntu20.04+MAVROS+PX4+Gazebo保姆级安装教程

    Ubuntu20 04 43 MAVROS 43 PX4 43 Gazebo 安装PX4步骤安装MAVROS安装QGCPX4仿真 安装PX4步骤 从github上clone源码 span class token function git s
  • PX4飞控之PWM输出控制

    PX4飞控之PWM输出控制 多旋翼电调如好盈XRotor xff0c DJI通用电调等都支持PWM信号来传输控制信号 常用的400Hz电调信号对应周期2500us xff0c 一般使用高电平时间1000us 2000us为有效信号区间 xf
  • 从Simulink到PX4——Simulink-PX4插件安装与环境搭建

    从Simulink到PX4 Simulink PX4插件安装与环境搭建 前言0 准备工作1 安装WSL2 Setting up the PX4 Toolchain on Windows3 Setting up the PX4 Tool Ch
  • PX4模块设计之九:PX4飞行模式简介

    PX4模块设计之九 xff1a PX4飞行模式简介 关于模式的探讨1 需求角度1 1 多旋翼 MC multi copter 1 1 1 RC控制模式1 1 1 1 Position Mode1 1 1 2 Altitude Mode1 1
  • PX4模块设计之十一:Built-In框架

    PX4模块设计之十一 xff1a Built In框架 1 Nuttx Built In框架2 PX4 Built In框架2 1 NSH Built In关联文件2 2 NSH Built In关联文件生成2 3 NSH Built In
  • PX4模块设计之十七:ModuleBase模块

    PX4模块设计之十七 xff1a ModuleBase模块 1 ModuleBase模块介绍2 ModuleBase类介绍3 ModuleBase类功能介绍3 1 模块入口3 2 模块启动3 3 模块停止3 4 状态查询3 5 任务回调3
  • PX4模块设计之二十一:uORB消息管理模块

    PX4模块设计之二十一 xff1a uORB消息管理模块 1 uORB模块构建模式2 uORB消息管理函数2 1 状态查询2 2 资源利用2 3 模块启动2 4 模块停止3 uORB消息接口3 1 消息主题注册3 2 消息主题去注册3 3
  • PX4模块设计之三十一:ManualControl模块

    PX4模块设计之三十一 xff1a ManualControl模块 1 ManualControl模块简介2 模块入口函数2 1 主入口manual control main2 2 自定义子命令custom command 3 Manual
  • PX4模块设计之三十九:Commander模块

    PX4模块设计之三十九 xff1a Commander模块 1 Commander模块简介2 模块入口函数2 1 主入口commander main2 2 自定义子命令custom command 3 Commander模块重要函数3 1
  • PX4模块设计之四十六:dataman模块

    PX4模块设计之四十六 xff1a dataman模块 1 dataman模块简介2 模块入口函数dataman main3 dataman模块重要函数3 1 start3 2 stop3 3 status3 4 task main 4 A
  • PX4模块设计之四十七:mavlink模块

    PX4模块设计之四十七 xff1a mavlink模块 1 mavlink模块简介2 模块入口函数mavlink main3 mavlink模块重要函数3 1 Mavlink start3 2 Mavlink task main3 3 Ma
  • mavros连接px4失败的usb-ttl原因

    问题描述 xff1a 最近在搞mavros xff0c 以方便协处理器和pixhawk通讯 xff0c 在按照官网教程安装mavros xff0c 设置px4 xff0c 连接硬件之后发现mavros卡在中间下不去 xff1a MAVROS
  • 【px4】运行mavsdk中的offboard example

    运行MAVSDK中的offboard例子时无人机不执行 想控制无人机前后左右移动 xff0c 在按照官方教程实现offboard 插件的时候 发现用action插件能正常起飞和降落 但是一旦执行到offboard的插件代码的时候就会自动降落
  • PX4 OffBoard Control

    终于还是走上了这一步 xff0c 对飞控下手 xff0c 可以说是一张白纸了 记录一下学习的过程方便以后的查阅 目录 一 ubuntu18 04配置px4编译环境及mavros环境 二 PX4的OffBoard控制 1 搭建功能包 2 编写
  • 四、无人机知识笔记(初级:基本运动原理)

    笔记来源于 沈阳无距科技 工业级无人机的中国名片 编程外星人 目录 一 多旋翼直升机 二 基本飞行姿态 三 多旋翼飞行原理 四 反扭力与偏航运动 五 螺旋桨 六 有刷电机和无刷电机 七 电调与PWM信号 八 动力电池 九 遥控器 十 机架设

随机推荐

  • git add .和git add *有什么区别

    git add 和 git add 区别 git add 会把本地所有untrack的文件都加入暂存区 xff0c 并且会根据 gitignore做过滤 xff0c 但是git add 会忽略 gitignore把任何文件都加入
  • app后台开发入门

    2017 5 1第二次更新 前言 xff1a 在我写下这篇文章之前 xff0c 我头脑中的app后台开发 xff0c 有且只有一个流程 客户端Cilent向服务器Server请求数据 xff0c 服务器Server响应客户端请求并返回jso
  • 论文写作踩坑-Wiley杂志投稿-Latex模板使用Windows-Stix-fontinstaller安装Wiley stix-fonts字体出错

    投稿Wiley相关的杂志 xff0c 其LaTeX模板和elsevier及IEEE旗下杂志LaTeX模板不相同 xff0c 其中比较明显的区别是需要安装 特殊字体 xff0c 如果不安装要求的字体会报如下错 xff1a 在百度上可以查到的资
  • LaTex修改参考文献的颜色-BiBTeX-包括参考文献的序号颜色

    1 正文添加 xff1a 复制粘贴即可 xff0c 只需修改 文献1 xff0c 文献2 变成你自己的 usepackage xcolor usepackage xpatch makeatletter def changeBibColor
  • 自动化领域(控制领域)主要期刊汇总整理(SCI和EI)

    目录 IEEE旗下 Elsevier旗下 Springer旗下 Taylor amp Francis Online Wiley Online Library 国内期刊 IEEE旗下 IEEE Transactions on Automati
  • PCL点云分割算法及其测试代码-分割平面

    目录 nbsp 1 平台 2 PCD文件读取 3 算法 4 测试代码及注释 5 测试结果 1 平台 PCL1 8 0 VS2015 Win10 具体配置可以参照链接
  • 点云PCL入门基础

    目录 点云对象的声明 转换关系 示例 输入输出保存点云数据 点云对象的声明 pcl PointCloud lt pcl PointXYZ gt cloud 点云对象 pcl PointCloud lt pcl PointXYZ gt Ptr
  • 源自中国顶级开源软件再下一城!向量数据库公司Zilliz完成6000万美元B+轮融资

    中国开源届再次迎来一个好消息 xff01 北京时间 8 月 25 日 xff0c 向量数据库公司 Zilliz 宣布完成 6000 万美元的新 笔融资 xff0c 成功将其 B 轮融资规模进 步扩 1 03 亿美元 该笔融资由沙特阿美 xf
  • 耗散性、无源性、正实性

    耗散性和作为其特例的无源性概念广泛存在于物理学 应用数学以及力学等领域 研究耗散性和无源性理论的主要出发点在于他们运用基于能量多输入输出描述给出了控制系统分析和设计的新框架 xff0c 对系统控制的诸多方面都起到了很大的推动作用 不仅在控制
  • python学习笔记之tkinter中的label

    from tkinter import longtext 61 39 39 39 多行 文本 39 39 39 master 61 Tk master title 34 label学习 34 w0 61 Label master text
  • python做数据拟合

    项目中有涉及趋势预测的工作 xff0c 整理一下这3种拟合方法 xff1a 1 线性拟合 使用math import math def linefit x y N 61 float len x sx sy sxx syy sxy 61 0
  • 关于VS编译的程序内存分配只能用1.5~2G上限的优化方案

    关于VS编译的程序 内存分配只能用1 5 2G上限的优化方案 遇到的问题是这样的 xff1a 电脑内存32G xff0c VS2012编译的一个程序 xff0c 在程序运行过程中 xff0c 一旦程序的内存使用达到1 5G xff0c 就会
  • 对称矩阵及正定性

    对称阵是非常重要的矩阵 xff0c 对于实对称矩阵 xff0c 其特征值也为实数 xff0c 且特征向量是垂直的 注意这里的垂直是指 xff1a 如果特征值互不相同 xff0c 那么每个特征值对应的特征向量是在一条线上 xff0c 那些线之
  • C++变量前面加下划线的含义

    参考C 43 43 变量前面加下划线的含义 云 43 社区 腾讯云 C 43 43 变量前面加下划线和不加下划线都不会影响对变量的定义 xff0c 只是风格问题 xff0c 更喜欢将成员变量或者私有成员变量的前面加上下划线 以表示该变量是某
  • 对PX4参数THR_MDL_FAC的理解

    对参数THR MDL FAC的理解 home wp src PX Firmware src lib mixer module mixer module hpp 这里引入了参数THR MDL FAC的使用 DEFINE PARAMETERS
  • TX2安装ubuntu18,ROS

    设备 TX2 8G版本 ubuntu18 04笔记本一台 重要提示 请看完全文再安装 xff01 本文不是手把手教你安装类型教程 给TX2刷系统 看看我的参考博客1吧 最好参考最新的博客 xff0c 现在官网的新版本都不是这样 JetPac
  • px4的PWM是如何输出的

    如果有io芯片 xff0c 且使用了io作为输出PWM的设备 则fmu将mixer传输给io xff0c io进行混控计算并输出PWM xff0c 将pwm结果传递回fmu xff0c 此时无app订阅acuator outpus xff0
  • PX4的mix文件是怎么被使用的呢?

    启动 怎么到启动这里的就不说了 2 作为MIXER FILE被mixer load的 src systemcmds mixer mixer cpp实现mixer load Mixer load调用函数 xff1a load const ch
  • 诚迈科技发布OpenHarmony发行版鸿诚志远HongZOS

    2022年11月3日 xff0c 诚迈科技在东莞松山湖举办 鸿雁于飞 至诚志远 开源鸿蒙 诚迈科技HongZOS发布会 xff0c 发布基于OpenHarmony的商业发行版鸿诚志远 xff08 HongZOS xff09 xff0c 并推
  • PX4阅读开发小技巧

    1 基操 本文件搜索 全局搜索 后退 前进 ctrl 43 p xff0c 搜索文件名 右键 xff0c 书签功能 ctrl 43 单击 F12 xff0c 转到定义 大纲视图 vscode的Open Folder插件搜索文件夹名 2 利用