运行PX4仿真命令如下
cd /home/xx/PX4_Firmware_13/
make px4_sitl_default
遇到如下报错:
[72/86] Generating /home/zj/PX4_Firmware_13/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf FAILED: /home/zj/PX4_Firmware_13/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf cd /home/zj/PX4_Firmware_13/build/px4_sitl_default/build_gazebo && /usr/bin/python3 /home/zj/PX4_Firmware_13/Tools/sitl_gazebo/scripts/jinja_gen.py /home/zj/PX4_Firmware_13/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf.jinja /home/zj/PX4_Firmware_13/Tools/sitl_gazebo --generate_ros_models true Traceback (most recent call last): File "/home/zj/PX4_Firmware_13/Tools/sitl_gazebo/scripts/jinja_gen.py", line 96, in <module> raise Exception("ERROR: generation would overwrite changes to `{}`. ".format(filename_out) + \ Exception: ERROR: generation would overwrite changes to `/home/zj/PX4_Firmware_13/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf`. Changes should only be made to the template file `/home/zj/PX4_Firmware_13/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf.jinja`. Remove `typhoon_h480.sdf` (after extracting your changes) to disable this overwrite protection. [79/86] Building CXX object CMakeFiles/gazebo_camera_manager_plugin.dir/src/gazebo_camera_manager_plugin.cpp.o ninja: build stopped: subcommand failed. [4/8] ROMFS: copying extras FAILED: external/Stamp/sitl_gazebo/sitl_gazebo-build cd /home/zj/PX4_Firmware_13/build/px4_sitl_default/build_gazebo && /usr/bin/cmake --build /home/zj/PX4_Firmware_13/build/px4_sitl_default/build_gazebo -- -j 8 ninja: build stopped: subcommand failed. make: *** [Makefile:230:px4_sitl_default] 错误 1
这个错误是由于在生成SDF文件时检测到模板文件和生成的文件之间的冲突
所以我们直接删除生成好的sdf文件、如果确实有必要保留的话就备份
备份:
cp /home/xx/PX4_Firmware_13/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf.jinja /home/zj/PX4_Firmware_13/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf.jinja.bak
删除生成的SDF文件:
rm /home/xx/PX4_Firmware_13/Tools/sitl_gazebo/models/typhoon_h480/typhoon_h480.sdf
重新构建:
cd /home/xx/PX4_Firmware_13/
make px4_sitl_default