基于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

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife