px4 uavcan linux,PX4开发指南-12.2.2.UAVCAN固件升级
PX4開發(fā)指南-12.2.2.UAVCAN固件升級(jí)
電子調(diào)速器(ESC)矢量控制代碼庫 (Pixhawk ESC 1.6 and S2740VC)
下載ESC代碼:
git clone https://github.com/thiemar/vectorcontrol
cd vectorcontrol
刷新UAVCAN啟動(dòng)引導(dǎo)程序
PIxhawk ESC 1.6在通過UAVCAN設(shè)備更新固件之前, 首先要求刷新UAVCAN的啟動(dòng)引導(dǎo)程序。為了生成啟動(dòng)引導(dǎo)程序,運(yùn)行:
make clean && BOARD=px4esc_1_6 make -j8
啟動(dòng)引導(dǎo)程序生成之后,其image文件存放路徑為 firmware/px4esc_1_6-bootloader.bin, OpenOCD的配置文檔為 openocd_px4esc_1_6.cfg。可以通過 如下教程初始化ESC的啟動(dòng)程序。
編譯主要的二進(jìn)制(.bin)文件Compiling the Main Binary
BOARD=s2740vc_1_0 make && BOARD=px4esc_1_6 make
這將會(huì)生成兩個(gè)UAVCAN的節(jié)點(diǎn)固件,它們都支持ESCs。它們固件image文件存放路徑為com.thiemar.s2740vc-v1-1.0-1.0..bin 和org.pixhawk.px4esc-v1-1.6-1.0..binn。
Sapog 代碼庫 (Pixhawk ESC 1.4和 Zubax Orel 20)
下載Sapog代碼庫:
git clone https://github.com/PX4/sapog
cd sapog
git submodule update --init --recursive
燒寫UAVCAN啟動(dòng)引導(dǎo)程序
在通過UAVCAN更新固件之前,ESC需要燒寫UAVCAN引導(dǎo)加載程序。引導(dǎo)程序可以使用如下指令構(gòu)建:
cd bootloader
make clean && make -j8
cd ..
啟動(dòng)引導(dǎo)程序的image文件存放路徑為 bootloader/firmware/bootloader.bin, OpenOCD的配置文檔為openocd.cfg。可以通過 此處教程初始化ESC的起始引導(dǎo)程序。
編譯主要的二進(jìn)制(.bin)文件
cd firmware
make RELEASE=1 # RELEASE is optional; omit to build the debug version
注意:一些較新版本的GCC導(dǎo)致鏈接期間的segfaults報(bào)錯(cuò),4.9版本目前測(cè)試可用。該固件映像將位于路徑firmware/build/io.px4.sapog-1.1-1.7..application.bin,其中是任意數(shù)字和字母序列。有兩個(gè)版本的Zubax Orel20硬件(1.0和1.1版本)。確保將執(zhí)行程序復(fù)制到后續(xù)描述中的正確文件夾。ESC固件將檢查硬件版本并在兩個(gè)產(chǎn)品(Pixhawk ESC
1.4和Zubax Orel 20)上工作。
Zubax GNSS
請(qǐng)參考 項(xiàng)目網(wǎng)頁 去學(xué)習(xí)如何生成和刷新固件。Zubax GNSS 出廠時(shí)就帶有支持UAVCAN的啟動(dòng)引導(dǎo)程序,因此其固件可以通過UAVCAN使用統(tǒng)一方式進(jìn)行更新,具體更新方式如下所述。
Autopilot的固件安裝
UAVCAN節(jié)點(diǎn)的文檔命名遵循約定的命名方式,這種命名方式允許Pixhawk更新網(wǎng)絡(luò)內(nèi)所有的UAVCAN設(shè)備,無需考慮是哪個(gè)制造商生產(chǎn)的。上述步驟產(chǎn)生的固件文件必須要復(fù)制到SD卡或PX4 ROMFS的正確的位置,以確保設(shè)備能夠很好的更新。
固件image名稱通常是:
-.-...bin
例如:
com.thiemar.s2740vc-v1-1.0-1.0.68e34de6.bin
然而,由于空間和性能的限制(命名不能夠超過28個(gè)字符),UAVCAN固件升級(jí)需要將這些文件名分割存儲(chǔ)在下面的目錄結(jié)構(gòu)里:
/fs/microsd/fw//./-...bin
例如
s2740vc-v1-1.0.68e34de6.bin
/fs/microsd/fw/io.px4.sapog/1.1/sapog-1.7.87c7bc0.bin
基于ROMFS的更新遵循以下的模型,但是文件名中包含_前綴,因此我們添加的固件在:
/etc/uavcan/fw//./_-...bin
將二進(jìn)制文件放入PX4 ROMFS
最終生成的文件的位置為:
S2740VC ESC: ROMFS/px4fmu_common/uavcan/fw/com.thiemar.s2740vc- v1/1.0/_s2740vc-v1-1.0..bin
Pixhawk ESC 1.6: ROMFS/px4fmu_common/uavcan/fw/org.pixhawk.px4esc-v1/1.6/_px4esc-v1-1.6..bin
Pixhawk ESC 1.4: ROMFS/px4fmu_common/uavcan/fw/org.pixhawk.sapog-v1/1.4/_sapog-v1-1.4..bin
Zubax GNSS v1: ROMFS/px4fmu_common/uavcan/fw/com.zubax.gnss/1.0/gnss-1.0..bin
Zubax GNSS v2: ROMFS/px4fmu_common/uavcan/fw/com.zubax.gnss/2.0/gnss-2.0..bin
注意ROMFS/px4fmu_common目錄將會(huì)掛載在Pixhawk的/etc目錄下。
開始固件升級(jí)過程
當(dāng)使用的是 PX4飛行控制棧時(shí), 在電源配置(Power Config)部分中啟用UAVCAN,并在嘗試升級(jí)UAVCAN固件之前要重啟系統(tǒng)。
或者可以通過以下方式在NSH上手動(dòng)啟動(dòng)UAVCAN固件升級(jí)進(jìn)程:
uavcan start
uavcan start fw
總結(jié)
以上是生活随笔為你收集整理的px4 uavcan linux,PX4开发指南-12.2.2.UAVCAN固件升级的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 autossh 建立反向 SSH
- 下一篇: Mathematica常用命令