<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Linux系統ubuntu20.04 無人機PX4 開發環境搭建

      安裝Ubuntu對應版本的Ros

      此處省略

      PX4固件下載

      PX4的源碼處于GitHub,因為眾所周知的原因git clone經常失敗,此處從Gitee獲取PX4源碼和依賴模塊。

      git clone https://gitee.com/voima/PX4-Autopilot.git
      

      使用cd命令切換到 px4項目文件目錄:

      cd ~/PX4-Autopilot
      #切換到1.14.0分支,當然也可以嘗試其他版本
      # 使用以下命令切換版本,以V1.14.0為例:
      git checkout v1.14.0
      

      因為PX4的完整項目是嵌套子模塊存儲的,以上命令只下載了px4的基本代碼,所以我們要進行子模塊的下載,運行下列命令:

      # 此部分不執行,解釋作用:
      #在~/PX4-Autopilot目錄下執行
      #git submodule update --init --recursive 
      #以上命令中,submodule是子模塊的意思, —init 選項會初始化,并注冊子模塊的地址,—recursive選項會遞歸克隆子模塊。
      #此更新的鏈接來源于:~/PX4-Autopilot/.gitmodules(注意是隱藏文件)
      
      # 執行此部分:
      #需要先進入~/PX4-Autopilot/.gitmodules文件
      
      vi ~/PX4-Autopilot/.gitmodules
      
      #將文件打開,可以看到里面都github的地址,直接用上面的命令,會很難成功
      #所以:將其更新為 gitee 的地址,已經整理測試好了,直接替換掉文件的內容即可
      
      
      [submodule "src/modules/mavlink/mavlink"]
          path = src/modules/mavlink/mavlink
          url = https://gitee.com/wtp95/mavlink.git
          branch = master
      [submodule "Tools/flightgear_bridge"]
          path = Tools/simulation/flightgear/flightgear_bridge
          url = https://gitee.com/seokhb/PX4-FlightGear-Bridge.git
      [submodule "Tools/simulation/gazebo-classic/sitl_gazebo-classic"]
          path = Tools/simulation/gazebo-classic/sitl_gazebo-classic
          url = https://gitee.com/seokhb/PX4-SITL_gazebo-classic.git
          branch = main
      [submodule "Tools/simulation/jmavsim/jMAVSim"]
          path = Tools/simulation/jmavsim/jMAVSim
          url = https://gitee.com/seokhb/jMAVSim.git
          branch = main
      [submodule "Tools/simulation/jsbsim/jsbsim_bridge"]
          path = Tools/simulation/jsbsim/jsbsim_bridge
          url = https://gitee.com/seokhb/px4-jsbsim-bridge.git
      [submodule "platforms/nuttx/NuttX/apps"]
          path = platforms/nuttx/NuttX/apps
          url = https://gitee.com/seokhb/NuttX-apps.git
          branch = px4_firmware_nuttx-10.3.0+
      [submodule "platforms/nuttx/NuttX/nuttx"]
          path = platforms/nuttx/NuttX/nuttx
          url = https://gitee.com/seokhb/NuttX.git
          branch = px4_firmware_nuttx-10.3.0+-v1.14
      [submodule "src/drivers/cyphal/public_regulated_data_types"]
          path = src/drivers/cyphal/public_regulated_data_types
          url = https://gitee.com/seokhb/public_regulated_data_types.git
      [submodule "src/drivers/cyphal/legacy_data_types"]
          path = src/drivers/cyphal/legacy_data_types
          url = https://gitee.com/jiyuanwangxs/legacy_data_types.git
          branch = legacy
      [submodule "src/drivers/cyphal/libcanard"]
          path = src/drivers/cyphal/libcanard
          url = https://gitee.com/seokhb/libcanard.git
      [submodule "src/drivers/gps/devices"]
          path = src/drivers/gps/devices
          url = https://gitee.com/seokhb/PX4-GPSDrivers.git
          branch = main
      [submodule "src/drivers/uavcan/libuavcan"]
          path = src/drivers/uavcan/libuavcan
          url = https://gitee.com/seokhb/libuavcan.git
      [submodule "src/lib/crypto/libtomcrypt"]
          path = src/lib/crypto/libtomcrypt
          url = https://gitee.com/seokhb/libtomcrypt.git
          branch = px4
      [submodule "src/lib/crypto/libtommath"]
          path = src/lib/crypto/libtommath
          url = https://gitee.com/seokhb/libtommath.git
          branch = px4
      [submodule "src/lib/crypto/monocypher"]
          path = src/lib/crypto/monocypher
          url = https://gitee.com/seokhb/Monocypher.git
          branch = px4
      [submodule "src/lib/events/libevents"]
          path = src/lib/events/libevents
          url = https://gitee.com/seokhb/libevents.git
          branch = main
      [submodule "src/modules/uxrce_dds_client/Micro-XRCE-DDS-Client"]
          path = src/modules/uxrce_dds_client/Micro-XRCE-DDS-Client
          url = https://gitee.com/seokhb/Micro-XRCE-DDS-Client.git
          branch = px4
      
      # 然后執行下面的命令,就可以了
      git submodule update --init --recursive
      
      有的子模塊還是走的github,失敗了就多執行幾次,直到用上面命令不再下載東西了就可以了
      

      開發環境搭建

      PX4的完整代碼已經下載完了,接下來就是配置開發環境。PX4源碼中已經提供了開發環境配置的腳本,在/PX4-Autopilot/Tools/setup目錄中,該目錄下的文件如下:

      # 在執行腳本之前,需要手動安裝一些模塊,配置環境變量
      sudo apt install python3-pip
      pip3 install kconfiglib
      pip3 install --user jinja2
      pip3 install --user jsonschema
      sudo apt-get update
      sudo apt-get install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
      
      # 然后需配置~/.bashrc文件,打開該文件,在底部添加如下內容,保存:
      vi ~/.bashrc
      寫入:
      # >>> PX4 initialize >>>
      source ~/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash ~/PX4-Autopilot ~/PX4-Autopilot/build/px4_sitl_default
      export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot
      export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic
      # <<< PX4 initialize <<<
      
      然后執行腳本:
      cd /PX4-Autopilot/Tools/setup
      
      # 可以看到里面有Arch/Macos和ubuntu系統的配置腳本。
      # 因為是ubuntu系統,所以運行ubuntu.sh文件
      # 這是一個腳本文件,里面是一些bash命令,可以理解為一系列下載px4開發環境的代碼。在上圖界面右鍵選擇在終端打開,使用下列命令運行:
      
      bash ubuntu.sh
      
      # 然后進行編譯:
      
      cd ~/PX4-Autopilot  # 也可以 roscd px4
      make px4_sitl_default gazebo
      
      **  如果出現下面的錯誤,一直在等待master  **
      
      > [Msg] Waiting for master.
      [Err] [ConnectionManager.cc:121] Failed to connect to master in 30 seconds.
      [Err] [gazebo_shared.cc:78] Unable to initialize transport.
      [Err] [gazebo_client.cc:56] Unable to setup Gazebo
      則需要在.bashrc文件的最后一行加入
      source /opt/ros/noetic/setup.bash
      
      **  如果執行make px4_sitl_default gazebo顯示:  **
      
      ninja: error: unknown target 'gazebo'
      make: *** [Makefile:227:px4_sitl] 錯誤 1
      # 則需要先安裝gazebo:
      sudo apt install gazebo libgazebo-dev
      
      # 然后手動檢查仿真目標配置文件:
      打開 PX4-Autopilot/boards/px4/sitl 目錄。
      檢查是否存在 default.cmake 或 gazebo.cmake 文件。
      
      # 如果文件缺失或配置錯誤,可以從官方倉庫重新下載:
      git checkout origin/main -- boards/px4/sitl
      

      然后再啟動
      終端出現如下,gazebo啟動,中間有個小飛機,則代表開發環境搭建成功


      MAVROS安裝

      安裝geographiclib數據庫(GeographicLib是一個用于解決地理坐標轉換、大地測量(geodesy)和地圖投影等問題的庫,廣泛用于航空航天和GIS(地理信息系統)領域)

      安裝MAVROS

      sudo apt install ros-noetic-mavros ros-noetic-mavros-extras
      
      wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh
      sudo chmod a+x ./install_geographiclib_datasets.sh
      sudo ./install_geographiclib_datasets.sh
      
      # 檢查MAVROS是否安裝成功可輸入如下命令:
      roslaunch px4 mavros_posix_sitl.launch
      
      # 新打開一個終端,輸入:
      rostopic echo mavros/state
      

      看到connected為True 則 MAVROS安裝成功

      安裝地面站QGC

      首先執行下面指令

      sudo usermod -a -G dialout $USER
      sudo apt-get remove modemmanager -y
      
      # 安裝一些依賴庫
      sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
      sudo apt install libfuse2 -y
      sudo apt install libxcb-xinerama0 libxkbcommon-x11-0 libxcb-cursor0 -y
      

      然后系統登出再登入,確定改變了用戶權限

      下面開始安裝QGC:
      下載QGroundControl.AppImage

      下載鏈接(https://d176tv9ibo4jno.cloudfront.net/latest/QGroundControl.AppImage)
      將該文件移動到主目錄下面
      通過指令更改權限,和運行

      chmod +x ./QGroundControl.AppImage
      ./QGroundControl.AppImage
      

      然后會運行QGC的軟件

      之后雙擊 QGroundControl.AppImage 圖標也可以運行該軟件

      posted @ 2025-03-30 18:08  鄭琰  閱讀(2768)  評論(0)    收藏  舉報
      #

      # #
      主站蜘蛛池模板: 国产在线无码不卡播放| 综合在线 亚洲 成人 欧美| 九九热在线免费精品视频| 国产免费高清69式视频在线观看| 日韩av在线不卡一区二区三区| 中文字幕人妻中出制服诱惑 | 中文国产不卡一区二区| 亚洲日韩国产精品第一页一区| 国产精品久久精品国产| 色综合久久精品中文字幕| 亚洲国产美国产综合一区| 国产一区二区三区内射高清| 国产AV影片麻豆精品传媒| 国产精品午夜福利免费看| 精品夜恋影院亚洲欧洲| 欧美国产日产一区二区| 色偷偷久久一区二区三区| 久久毛片少妇高潮| 无码人妻一区二区三区av| 亚洲精品国产精品不乱码| 九九热免费在线观看视频| 无码熟妇人妻av在线电影| 欧美成人h亚洲综合在线观看| 亚洲精品综合一区二区三区| 综合色在线| 亚洲婷婷综合色高清在线 | 国产免费高清69式视频在线观看| 成人免费av在线观看| 精品少妇av蜜臀av| 人人人澡人人肉久久精品| 国产盗摄xxxx视频xxxx| 精品视频不卡免费观看| 亚洲精品国产自在现线最新| 人妻丰满熟妇AV无码区乱 | 久久精品视频一二三四区| 国产首页一区二区不卡| 国产一区二区高清不卡| 亚洲午夜av一区二区| 亚洲精品亚洲人成在线| 国产成人高清在线重口视频| 亚洲国产超清无码专区|