1. 程式人生 > 其它 >搭建無人機模擬環境之PX4安裝中出現的一些問題的解決

搭建無人機模擬環境之PX4安裝中出現的一些問題的解決

技術標籤:無人機-pixhawk-PX4無人機-阿木-普羅米修斯-模擬無人機-阿木實驗室-個人筆記

摘自:https://blog.csdn.net/wangdongjiab/article/details/107230585

搭建無人機模擬環境之PX4安裝

Djarea 2020-07-09 16:02:23 583 收藏 6

分類專欄: Gazebo PX4 文章標籤: linux

版權

搭建無人機模擬環境之PX4安裝

安裝依賴包

sudo apt install python3-pip
pip3 install --user pandas -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip3 install --user jinja2 -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip3 install --user empy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip3 install --user packaging -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip3 install --user toml -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip3 install --user numpy -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip3 install --user pyquaternion -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

如果遇到問題:

安裝包出現Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ConnectTimeoutError

解決辦法如:

pip install pandas -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

下載韌體

git clone https://github.com/PX4/Firmware
mv Firmware PX4_Firmware
cd PX4_Firmware
git checkout -b xtdrone/dev v1.11.0-beta1
git submodule update --init --recursive
make posix_sitl_default gazebo
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

如果遇到git clone 速度非常慢,可以將原本的網站中的http://github.com 進行替換為github.com.cnpmjs.org。例如 git clone https://github.com.cnpmjs.org/PX4/Firmware

git submodule update --init --recursive中遇到的問題

  • 問題1

如果使用映象github.com.cnpmjs.org進行git clone ,在執行git submodule update --init --recursive時出現:

~/PX4_Firmware$ git submodule update --init --recursive
子模組 'Tools/jMAVSim'(https://github.com.cnpmjs.org/PX4/jMAVSim.git)未對路徑 'Tools/jMAVSim' 註冊
子模組 'Tools/sitl_gazebo'(https://github.com.cnpmjs.org/PX4/sitl_gazebo.git)未對路徑 'Tools/sitl_gazebo' 註冊
子模組 'boards/atlflight/cmake_hexagon'(https://github.com.cnpmjs.org/PX4/cmake_hexagon.git)未對路徑 'boards/atlflight/cmake_hexagon' 註冊
子模組 'mavlink/include/mavlink/v2.0'(https://github.com.cnpmjs.org/mavlink/c_library_v2.git)未對路徑 'mavlink/include/mavlink/v2.0' 註冊
子模組 'platforms/nuttx/NuttX/apps'(https://github.com.cnpmjs.org/PX4/NuttX-apps.git)未對路徑 'platforms/nuttx/NuttX/apps' 註冊
子模組 'platforms/nuttx/NuttX/nuttx'(https://github.com.cnpmjs.org/PX4/NuttX.git)未對路徑 'platforms/nuttx/NuttX/nuttx' 註冊
子模組 'platforms/qurt/dspal'(https://github.com.cnpmjs.org/ATLFlight/dspal.git)未對路徑 'platforms/qurt/dspal' 註冊
子模組 'src/drivers/gps/devices'(https://github.com.cnpmjs.org/PX4/GpsDrivers.git)未對路徑 'src/drivers/gps/devices' 註冊
子模組 'src/drivers/uavcan/libuavcan'(https://github.com.cnpmjs.org/PX4/uavcan.git)未對路徑 'src/drivers/uavcan/libuavcan' 註冊
子模組 'src/lib/ecl'(https://github.com.cnpmjs.org/PX4/ecl.git)未對路徑 'src/lib/ecl' 註冊
子模組 'src/lib/matrix'(https://github.com.cnpmjs.org/PX4/Matrix.git)未對路徑 'src/lib/matrix' 註冊
子模組 'src/modules/micrortps_bridge/micro-CDR'(https://github.com.cnpmjs.org/PX4/micro-CDR.git)未對路徑 'src/modules/micrortps_bridge/micro-CDR' 註冊

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

解決方法:
檢查 .gitmodule檔案中的url格式
按照以下方法更換一下即可:

gedit .gitmodules
  • 1

將.gitmodules檔案中所有github.com替換為github.com.cnpmjs.org,例如
[submodule “mavlink/include/mavlink/v2.0”]
path = mavlink/include/mavlink/v2.0
url = https://github.com.cnpmjs.org/mavlink/c_library_v2.git
branch = master

修改完後,再次執行:

git submodule sync
  • 1
  • 問題2
[email protected]:~/PX4_Firmware$ git submodule update --init --recursive
fatal: Needed a single revision
無法在子模組路徑 'Tools/jMAVSim' 中找到當前版本
  • 1
  • 2
  • 3

解決方法:
刪除對應資料夾,如刪除資料夾 jMAVSim

make posix_sitl_default gazebo中遇到的問題

  • 問題1
CMake Error at CMakeLists.txt:32 (find_package):
  By not providing "Findgazebo.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "gazebo", but
  CMake did not find one.

  Could not find a package configuration file provided by "gazebo" with any
  of the following names:

    gazeboConfig.cmake
    gazebo-config.cmake

  Add the installation prefix of "gazebo" to CMAKE_PREFIX_PATH or set
  "gazebo_DIR" to a directory containing one of the above files.  If "gazebo"
  provides a separate development package or SDK, be sure it has been
  installed.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

解決方法:

sudo apt-get install libgazebo9-dev
  • 1
  • 問題2
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
GSTREAMER_LIBRARIES (ADVANCED)
    linked by target "gazebo_vision_plugin" in directory /home/dj/PX4_Firmware/Tools/sitl_gazebo
    linked by target "gazebo_uuv_plugin" in directory /home/dj/PX4_Firmware/Tools/sitl_gazebo
    
... ...
    
-- Configuring incomplete, errors occurred!
See also "/home/dj/PX4_Firmware/build/px4_sitl_default/build_gazebo/CMakeFiles/CMakeOutput.log".
See also "/home/dj/PX4_Firmware/build/px4_sitl_default/build_gazebo/CMakeFiles/CMakeError.log".
[143/573] Building CXX object platform...CMakeFiles/px4_layer.dir/px4_sem.cpp.o
FAILED: external/Stamp/sitl_gazebo/sitl_gazebo-configure 
cd /home/dj/PX4_Firmware/build/px4_sitl_default/build_gazebo && /usr/bin/cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DSEND_VISION_ESTIMATION_DATA=ON -GNinja /home/dj/PX4_Firmware/Tools/sitl_gazebo && /usr/bin/cmake -E touch /home/dj/PX4_Firmware/build/px4_sitl_default/external/Stamp/sitl_gazebo/sitl_gazebo-configure
[151/573] Building CXX object platform...n/CMakeFiles/px4_layer.dir/tasks.cpp.o
ninja: build stopped: subcommand failed.
Makefile:198: recipe for target 'px4_sitl_default' failed
make: *** [px4_sitl_default] Error 1
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

解決方法:

sudo apt-get install libgstreamer-plugins-base1.0-dev
  • 1
  • 問題3

執行Gazebo出現:[Err] [REST.cc:205] Error in REST request

解決方法:
開啟編輯~/.ignition/fuel/config.yaml檔案

sudo gedit ~/.ignition/fuel/config.yaml
  • 1

首先註釋 url : https://api.ignitionfuel.org
然後新增 url: https://api.ignitionrobotics.org

servers:
  -
    name: osrf
    url: https://api.ignitionrobotics.org  
# url: https://api.ignitionfuel.org
  • 1
  • 2
  • 3
  • 4
  • 5

重新啟動即可

執行roslaunch px4 mavros_posix_sitl.launch遇到的問題

  • 問題1
VMware: vmw_ioctl_command error 無效的引數.
Aborted (core dumped)
[gazebo_gui-4] process has died [pid 2104, exit code 134, cmd /opt/ros/melodic/lib/gazebo_ros/gzclient __name:=gazebo_gui __log:=/home/dj/.ros/log/92926e0c-c1e4-11ea-b959-000c2928d800/gazebo_gui-4.log].
log file: /home/dj/.ros/log/92926e0c-c1e4-11ea-b959-000c2928d800/gazebo_gui-4*.log
  • 1
  • 2
  • 3
  • 4

解決方法:

$ export SVGA_VGPU10=0
  • 1
  • 問題2
Resource not found: gazebo_ros
ROS path [0]=/opt/ros/melodic/share/ros
ROS path [1]=/opt/ros/melodic/share
ROS path [2]=/home/dj/PX4_Firmware
ROS path [3]=/home/dj/PX4_Firmware/Tools/sitl_gazebo
The traceback for the exception was written to the log file
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

解決方法:

$ sudo apt-get install ros-melodic-gazebo-ros-pkgs ros-melodic-gazebo-ros-control
  • 1

-問題3

RLException: [indoor1.launch] is neither a launch file in package [px4] nor is [px4] a launch file name
The traceback for the exception was written to the log file
  • 1
  • 2

解決方法:

source ~/PX4_Firmware/Tools/setup_gazebo.bash ~/PX4_Firmware/ ~/PX4_Firmware/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4_Firmware/Tools/sitl_gazebo