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
编译成功:
运行仿真
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
评论(0)
您还未登录,请登录后发表或查看评论