PX4源码分析5_PX4启动流程

PX4源码分析5_PX4启动流程,第1张

上电之后程序入口为Firmware/NuttX/nuttx/arch/arm/src/stm32/stm32_start.c中的__start函数,负责stm32芯片的底层初始化,包括是时钟,GPIO等。

<br />

__start函数调用Firmware/NuttX/nuttx/sched/os_start.c中的os_start函数,负责os的底层初始化,包括队列和进程结构等。

<br />

os_start函数调用Firmware/NuttX/nuttx/sched/os_bringup.c中的os_bringup函数,负责os基本进程的启动和用户进程的启动。用户启动入口由CONFIG_USER_ENTRYPOINT宏定义进行指定。

<br />

FMU和IO的启动入口不同,分别为:

(1)FMU中CONFIG_USER_ENTRYPOINT宏定义为nsh_main:

[1] 调用nsh_main函数。

[2] nsh_main函数调用Firmware/NuttX/apps/nshlib/竖并nsh_consolemain.c中nsh_consolemain函余乱迹数。

[3] nsh_consolemain函数调用nsh_initscript函数。

[4] nsh_initscript函数所执行的脚本即为FMU的启动脚陪孝本rcS。

[5] rcS脚本中负责挂载Sd卡,启动uorb,加载参数配置文件,启动dataman数据管理,启动各传感器,commander,执行rc.io,执行rc.interface(混控器),执行rc.mc_app(飞控姿态与位置算法)等。

(2)IO中CONFIG_USER_ENTRYPOINT宏定义为user_main:

调用src/modules/px4iofirmware/px4io.c中的user_start函数,负责IO基础环境的初始化,包括PWM,串口,ADC等,最后进入死循环,用于遥控器输入和与FMU通信的内容。

我们来看下Ubuntu各版本对应的gazebo关系,安装时要注意

各版本的对应关系如下:请注意ubuntu18对应melodic,ubuntu16对应kinetic

Ubuntu 14.04 Trusty Tahr - ROS Indigo Igloo - Gazebo 2.X 2014-2019

Ubuntu 16.04 Xenial Xerus - ROS Kinetic Kame - Gazebo 7.X 2016-2021

Ubuntu 18.04 Bionic Beaver - ROS Melodic Morenia - Gazebo 9.X 2018-2023

我采用的是塌颂渗Ubuntu18.04 安装ROS melodic

要先换源,包括source.list和source.list.d文件夹下面的ros-latest.list(没有就创建)

实测发现,Ubuntu的源用清华的,ROS源用中科大的,综合效果最好

换完源以后安装ROS,直接装的是desktop-full,这样自动装了gazebo9

ROS安装完毕,安装mavros,直接用二进制安装,最方便

mavros负责master和px4之间的通信,接下来安装编译px4,这是最慢也是最容易出错的一步,一定要确保网络良好,第一步一般要花一个多小时、后面稍微快一点

这时px4就安装好了,这个文件夹叫Firmware,但实际上编译以后会生成一个可执行文件叫px4,所以都是roslaunch px4 什么什团脊么

接下来,修改环境变量

环樱逗境变量修改好了,source ~/.bashrc以后通过gazebo看看可不可以启动

第一行会d出此时选择的px4的版本,建议用1.8.0,在前一个虚拟机上试过1.9.0但是跑不起来

如果成功出现gazebo,里面看上去是荒芜的一望无垠的世界停着一架小飞机,那么px4的仿真环境就安装完成了,可以关掉,然后roslaunch启动

在rostopic list里看到有个/mavros/state 用echo查看 connect为true 则mavros和px4通信成功

若添加权限以后仍报错,则考虑修改Cmakelist添加include包含库

打开CMakeList文件看看include_directories列表

include_directories(

include

../riki_msgs

${catkin_INCLUDE_DIRS}

)

将riki_base.h中的分号位置做如下修改

这个是别人的报错,他的git网络配置出现问题,显示git拒绝连接

使用git config --global设置用户名和邮件

使用-l查看配置 --edit编辑配置


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12515892.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存