基于pix硬件的apm开发环境搭建

2024-08-31 08:18
文章标签 开发 搭建 环境 硬件 apm pix

本文主要是介绍基于pix硬件的apm开发环境搭建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

准备工作

下载sublimetext

推荐使用Sublime text编辑器进行代码的查询、搜索与改写。它的搜索功能十分强大,可以在某个文件夹中搜索所包含的所有文件里的关键字,便于搜索,理清脉络。

学习git

最终编译固件需要在Git的本地仓库下进行,学习git分布式管理库的相关知识很有必要。

http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/看到bug分支这一章节就基本够用了。

最有用的信息源

http://copter.ardupilot.org/ardupilot/index.html一部分代码的解释及编译固件及上传固件的教程他们的官网都有。

代码概览

http://ardupilot.org/dev/docs/apmcopter-code-overview.html

主要介绍了主目录下(Ardupilot/Arducopter)几个cpp文件的关系,虽然新版的把pde文件都改成cpp文件了,不过里面的内容没怎么变。

 

http://ardupilot.org/dev/docs/apmcopter-programming-libraries.html

Ardupilot/ libraries目录下各个文件都是干嘛的,可以了解一下。

 

http://ardupilot.org/dev/docs/apmcopter-programming-attitude-control-2.html

姿态控制部分代码详细介绍

 

http://ardupilot.org/dev/docs/code-overview-adding-a-new-parameter.html

如何添加参数,MISSION PLANNER地面站上用户可以更改的那种参数以及libraries下的参数

 

http://ardupilot.org/dev/docs/apmcopter-adding-a-new-flight-mode.html

如何添加新的飞行模式,讲的不是太详细。如果把某个现有模式挪用为自己的新模式可能更简单。固定翼下我就是把STABILIZE模式给改造成自己的新模式了。

 

 

 

http://ardupilot.org/dev/docs/code-overview-scheduling-your-new-code-to-run-intermittently.html

定义自己的某个函数多长时间被调用一次

改写代码

Apm代码用的就是cc++混编,所以用sublimetext编辑是没问题的。

关于存放代码的文件夹:

第一种方式,简单:从ardupilot的官方库直接git clone下来,然后在本地库上改写,不过有一个缺点,一个本地库只能连接一个远程库,但是我们是没有往官方远程库上传文件的权限的,也就是说,只能在本地修改。最好编译前commit一下,我不太确定不commit进行编译的是否是当前修改但没提交的东西。

第二种方式,自己创建git账户,把官方代码fork下来,再在本地git clone自己的远程库,这样就可以把自己的代码上传到远程库了~(好像也没什么用。。)

调试代码

一种是编译固件的时候哪没写对自然就会报错。

还有一种是代码级仿真,即SITL,选择SITL on Windows那个应该就可以

http://ardupilot.org/dev/docs/sitl-simulator-software-in-the-loop.html

对于编写控制部分的代码会很管用,但是如果需要传感器用的图像接口这种好像SITL没法弄。。。

编译固件

这些cpp文件需要被编译成.px4后缀的固件,可以参考下面的做法

http://ardupilot.org/dev/docs/building-px4-with-make.html

参照上面的做法后,应该编译会出错,可参照下面的做法,应该就能编译了

http://blog.csdn.NET/freeape/article/details/49024053

编译后可能还会报个错,说是找不到nuttXhash值,找不到就找不到吧,反正固件确实出来了,亲测可用,不影响。

上传固件

Mission Planner下加载自定义固件,选择自己弄好的固件进行上传就ok

这篇关于基于pix硬件的apm开发环境搭建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123365

相关文章

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Linux如何快速检查服务器的硬件配置和性能指标

《Linux如何快速检查服务器的硬件配置和性能指标》在运维和开发工作中,我们经常需要快速检查Linux服务器的硬件配置和性能指标,本文将以CentOS为例,介绍如何通过命令行快速获取这些关键信息,... 目录引言一、查询CPU核心数编程(几C?)1. 使用 nproc(最简单)2. 使用 lscpu(详细信

如何使用Haporxy搭建Web群集

《如何使用Haporxy搭建Web群集》Haproxy是目前比较流行的一种群集调度工具,同类群集调度工具有很多如LVS和Nginx,本案例介绍使用Haproxy及Nginx搭建一套Web群集,感兴趣的... 目录一、案例分析1.案例概述2.案例前置知识点2.1 HTTP请求2.2 负载均衡常用调度算法 2.

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可