PX4固件編譯與Gazebo仿真環境

PX4固件編譯與Gazebo仿真環境

PX4困擾好久,總是在編譯出問題,最後不了了之。
效果如下:
在這裏插入圖片描述先給權限,然後註銷

sudo usermod -a -G dialout $USER

PX4固件編譯

首先第一步,你要明白,PX4固件一直在更新,我在Github直接git的版本的是1.11,而當前編譯一般停留在1.8、1.9版本,所以,固件源碼下載一定要指定版本。
我這裏下載的是1.8版本。

git clone -b v1.8.2 https://github.com/PX4/Firmware.git

完成後,初始化更新依賴庫

cd Firmware/
git submodule update --init --recursive

查看當前PX4固件版本

git describe --always --tags

在這裏插入圖片描述
開始編譯

make px4fmu-v2_default

報錯如下:

ccache: error: Failed to create file /home/myz/.ccache/f/5/a6b6c56e4e3aeb4a16157fdf5088ae-205662.o.tmp.stdout.myz-Inspiron-7559.4025.2A29qU: Permission denied
src/modules/px4iofirmware/CMakeFiles/px4iofirmware.dir/build.make:134: recipe for target 'src/modules/px4iofirmware/CMakeFiles/px4iofirmware.dir/mixer.cpp.obj' failed
make[7]: *** [src/modules/px4iofirmware/CMakeFiles/px4iofirmware.dir/mixer.cpp.obj] Error 1

沒有權限,應該是最開始給管理權限沒成功。
我這裏給的sudo。

sudo make px4fmu-v2_default

中間會提示缺少幾個庫,裝好重新編譯即可

sudo apt-get install python-jinja2
sudo pip install numpy toml

在100%的時候提示Flash溢出

[100%] Linking CXX executable ../../nuttx_px4fmu-v2_default.elf
/opt/gcc-arm-none-eabi-6-2017-q2-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld: ../../nuttx_px4fmu-v2_default.elf section `.data' will not fit in region `flash'
/opt/gcc-arm-none-eabi-6-2017-q2-update/bin/../lib/gcc/arm-none-eabi/6.3.1/../../../../arm-none-eabi/bin/ld: region `flash' overflowed by 604 bytes
collect2: error: ld returned 1 exit status
platforms/nuttx/CMakeFiles/nuttx_px4fmu-v2_default.elf.dir/build.make:216: recipe for target 'nuttx_px4fmu-v2_default.elf' failed
make[3]: *** [nuttx_px4fmu-v2_default.elf] Error 1

解決方法
如下路徑,修改flash的長度由1008改爲2032K
在Firemare
編譯成功:
在這裏插入圖片描述

運行仿真

Jmavsim
這個很簡單,不用安裝額外的東西,直接編譯運行

sudo make posix_sitl_default jmavsim

起飛命令

commander takeoff

在這裏插入圖片描述

Gazebo仿真
Gazebo仿真要安裝gazebo,我這裏裝得是Gazebo9
安裝過程很簡單

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
sudo apt update
sudo apt install gazebo9 libgazebo9-dev

打開一個空世界

gazebo --verbose

運行px4的gazebo仿真

sudo make posix_sitl_default gazebo

起飛命令

commander takeoff

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章