日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Ubuntu >内容正文

Ubuntu

Ubuntu18.04基于ROS和PX4的仿真平台配置

發布時間:2024/1/8 Ubuntu 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ubuntu18.04基于ROS和PX4的仿真平台配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.前言

作者只是一名雙非本科院校飛控專業的大二學生,想以此記錄一下自學飛控的經歷,也希望能給剛剛入門的同學一些微薄的幫助。

這個環境的安裝可以說是西天取經一般,但安裝完后發現如果有領路的人,其實花費不了太長的時間,所以我希望我這篇文章能給剛剛入門的小白提供一些幫助,有問題也可留言進行討論,在下才疏學淺,以下內容大多為引用,我只是幫大家整理一些資料,并分享我走過的一些坑。

因為網上的文章太多,而一些方法因為官網資料的迭代已經不適用了,故筆者這篇文章就是在筆者嘗試了至少十篇文章中選出的可行的方法。

2.安裝虛擬機VMware

鏈接:https://pan.baidu.com/s/1-d_OcKH41HhtPn6l83AXrg

提取碼:f183

--來自百度網盤超級會員V1的分享

此鏈接提供VMware的安裝包

按照操作提示進行安裝即可。安裝完成后點擊許可證,請百度自行搜索獲取激活碼。

  • Ubuntu 18.04的鏡像文件下載及其中文設置

  • 1.1 iso鏡像安裝

    虛擬機文件:

    鏈接:https://pan.baidu.com/s/1UJVoeTcLG9hBq9Y099Ye1w

    提取碼:0b6g

    --來自百度網盤超級會員V1的分享

    以下圖片均引用于(39條消息) win10/Ubuntu vmware使用Ubuntu18.04虛擬機_win10安裝ubuntu18.04虛擬機_超維空間科技的博客-CSDN博客

    第一步:創建新的虛擬機

    第二步:

    第三步:選擇剛剛從百度網盤中下載的.iso文件

    第四步:設置虛擬機用戶名和密碼

    第五步:

    第六步:設置磁盤大小,看個人需求(我設置的是50GB,因為如果后期出現磁盤空間不足的情況會很麻煩,你會不知道該刪哪些文件)

    第七步:操作完等待安裝即可

    大神的文章里還有教其他設置,再此我不在過多講解。

    1.2Ubuntu18.04中文設置

    如果想換成中文的同學可以參考這篇文章(39條消息) VMware安裝Ubuntu18.04圖文教程_虛擬機ubuntu18.04安裝教程_以夢為馬&不負韶華的博客-CSDN博客

    換源部分不用參考,筆者發現了更為便捷的方式,在后文會進行講解。

  • ROS安裝

  • Ros官方步驟及其復雜,在此向大家推薦一位頂級大神 魚香ROS 直接百度即可。

    小魚的一鍵安裝系列 | 魚香ROS (fishros.org.cn) 鏈接放在此處。

    即在終端輸入:(終端打開方式CTRL + ALT+T)

    wget http://fishros.com/install -O fishros && . fishros

    此圖片引用于:(39條消息) ros安裝(一鍵最簡安裝,吹爆魚香ROS,請叫我魚吹)-CSDN博客 按照其步驟操作即可(注意在安裝的時候不可科學上網)

    其中18.04的Ubuntu版本安裝的是melodic的ROS

    在rosdep還是ROS環境的安裝中,記得選桌面版,不要選小的那個

    以下大部分內容引用于(39條消息) Ubuntu18.04下基于ROS和PX4的無人機仿真平臺的基礎配置搭建_Lqcx-spec的博客-CSDN博客 感興趣可以去參考此原文,但一些步驟筆者有更為簡便的方式,故如果只是環境安裝請繼續往下看。

  • 依賴安裝(必須執行)

  • 觀前提示:在終端執行指令時建議執行完這里的一個大項就開一個新的窗口,不然可能后期路徑上可能會發生一些不可預知的錯誤。

    在終端下執行:

    1
    sudo apt install ninja-build exiftool ninja-build protobuf-compiler libeigen3-dev genromfs xmlstarlet libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev 2 pip2 install pandas jinja2 pyserial cerberus pyulog==0.7.0 numpy toml pyquaternion empy pyyaml 3 pip3 install packaging numpy empy toml pyyaml jinja2 pyargparse

    如果出現以下報錯:

    Collecting pandas
    Using cached https://files.pythonhosted.org/packages/64/f1/8fdbd74edfc31625d597717be8c155c6226fc72a7c954c52583ab81a8614/pandas-1.1.2.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/tmp/pip-build-qtvsjq8t/pandas/setup.py", line 349
    f"{extension}-source file '{sourcefile}' not found.\n"
    ^
    SyntaxError: invalid syntax

    ----------------------------------------
    Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-qtvsjq8t/pandas/

    即輸入以下指令:

    pip install --upgrade setuptools
    #若未報錯不需要輸入這兩行命令
    python -m pip install --upgrade pip

    如果還出現一些問題,直接復制系統提示去百度即可,不用擔心,都是一個命令便可以解決的,再次便不再過多的贅述了。

  • Gazebo安裝

  • 其實在魚香ROS大神的一鍵安裝中,我們便已經完成了Gazebo的安裝,但所有事情都不是完美的,大神上安裝的Gazebo或許和PX4不太適配,故后續會出現不少的坑,所以在這里我們把之前安裝的Gazebo卸載,重新安裝。

    官網方案:

    建議gazebo版本在9.13以上

    Gazebo安裝見官網:

    http://gazebosim.org/tutorials?tut=install_ubuntu&cat=install

    注意幾點:

    1.選用Alternative installation: step-by-step的安裝方式

    2.安裝Gazebo9.13或者以上

    為了執行方便,以下把執行的步驟一一列出:

    1.依次執行

    sudo apt-get remove gazebo*
    sudo apt-get remove libgazebo*
    sudo apt-get remove ros-melodic-gazebo* #kinetic noetic對應修改

    2.設置計算機以接受來自package.osrfoundation.org的軟件

    sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stablesudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'

    cat /etc/apt/sources.list.d/gazebo-stable.list

    #如果出現deb http://packages.osrfoundation.org/gazebo/ubuntu-stable#如果出現deb http://packages.osrfoundation.org/gazebo/ubuntu-stable xenial main表示沒問題

    3.設置密鑰

    wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
    sudo apt-get update

    4.安裝gazebo9.1指令

    sudo apt-get install gazebo9=9.1*

    安裝之后終端輸入 gazebo 若打開Gazebo說明安裝成功

    此處筆者剛開始打開gazebo時系統報錯:VMware: vmw_ioctl_command error Invalid argument,大概應該是虛擬機參數不合法,在翻閱一些網絡資料時也找到了線索:已知報錯的原因大概是不合法的變量導致的,故合理推測應該是啟動gazebo的時候加載系統的某個環境變量的時候虛擬機無法完美識別導致的,所以追根溯源,我們找到了修復方案:設置環境變量

    依次執行:

    export SVGA_VGPU10=0 echo "export SVGA_VGPU10=0" >> ~/.bashrc

    執行完在輸入 gazebo 測試即可

    5.Gazebo本身是獨立于ROS的,因此還需要安裝ROS的Gazebo插件

    sudo apt install ros-melodic-gazebo9-*
    sudo apt install ros-melodic-gazebo-*

    測試

    roscore
    rosrun gazebo_ros gazebo

    若能打開Gazebo說明Gazebo和ROS間的插件也安裝成功。

  • MAVROS安裝

  • 依次執行:

    sudo apt install ros-kinetic-mavros ros-kinetic-mavros-extras # for ros-kinetic

    sudo apt install ros-melodic-mavros ros-melodic-mavros-extras # for ros-melodic

    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 #這步需要裝一段時間,請耐心等待PX4配置

    最后的sudo ./install_geographiclib_datasets.sh 這步需要裝一段時間,請耐心等待

  • PX4配置

  • 此處的方法采用的是(39條消息) 不必通宵掛機,飛速克隆PX4源碼的方法_px4克隆不了_Bingobinlw的博客-CSDN博客鏈接中的方法,極為便捷,筆者此處只對其需要注意之處進行一些講解。

    6.1git安裝

    沒安裝git的先安裝git:

    sudo apt-get install git

    6.2PX4配置

  • 直接clone如下倉庫

  • git clone https://gitee.com/bingobinlw/Firmware.git
  • 然后更新子模塊

  • 這里非常重要,因為是國外的網站,所以很多連接會失敗,一定要多試幾次!筆者也大概試了十幾次才成功。

    一定要在正確的路徑下執行,一般在安裝的PX4文件夾進入終端。

    git submodule update --init --recursive

    反復執行!!!

  • 如果出錯的話,需要刪除空白文件夾,再次更新子模塊

  • make distcleangit
    submodule update --init --recursive
  • 去下載的PX4文件夾右上角選擇“顯示所有文件”,找到***.gitmodules***文件,直接復制粘貼以下內容。(替換掉原本的內容)

  • [submodule "mavlink/include/mavlink/v2.0"]
    path = mavlink/include/mavlink/v2.0
    url = https://gitee.com/bingobinlw/c_library_v2.git
    branch = master
    [submodule "src/drivers/uavcan/libuavcan"]
    path = src/drivers/uavcan/libuavcan
    url = https://gitee.com/bingobinlw/uavcan.git
    branch = px4
    [submodule "Tools/jMAVSim"]
    path = Tools/jMAVSim
    url = https://gitee.com/bingobinlw/jMAVSim.git
    branch = master
    [submodule "Tools/sitl_gazebo"]
    path = Tools/sitl_gazebo
    url = https://gitee.com/bingobinlw/sitl_gazebo.git
    branch = master
    [submodule "src/lib/matrix"]
    path = src/lib/matrix
    url = https://gitee.com/bingobinlw/Matrix.git
    branch = master
    [submodule "src/lib/ecl"]
    path = src/lib/ecl
    url = https://gitee.com/bingobinlw/ecl.git
    branch = master
    [submodule "boards/atlflight/cmake_hexagon"]
    path = boards/atlflight/cmake_hexagon
    url = https://gitee.com/bingobinlw/cmake_hexagon.git
    branch = px4
    [submodule "src/drivers/gps/devices"]
    path = src/drivers/gps/devices
    url = https://gitee.com/bingobinlw/GpsDrivers.git
    branch = master
    [submodule "src/modules/micrortps_bridge/micro-CDR"]
    path = src/modules/micrortps_bridge/micro-CDR
    url = https://gitee.com/bingobinlw/micro-CDR.git
    branch = px4
    [submodule "platforms/nuttx/NuttX/nuttx"]
    path = platforms/nuttx/NuttX/nuttx
    url = https://gitee.com/bingobinlw/NuttX.git
    branch = px4_firmware_nuttx-8.2
    [submodule "platforms/nuttx/NuttX/apps"]
    path = platforms/nuttx/NuttX/apps
    url = https://gitee.com/bingobinlw/NuttX-apps.git
    branch = px4_firmware_nuttx-8.2
    [submodule "cmake/configs/uavcan_board_ident"]
    path = cmake/configs/uavcan_board_ident
    url = https://gitee.com/bingobinlw/uavcan_board_ident.git
    branch = master
    [submodule "platforms/qurt/dspal"]
    path = platforms/qurt/dspal
    url = https://gitee.com/bingobinlw/dspal.git

    5.打開新的終端,安裝必要的python依賴:

    cd ~/PX4_Firmware
    bash ./Tools/setup/ubuntu.sh --no-nuttx --no-sim-tools

    編譯

    make px4_sitl_default gazebo

    6.打開修改 ~/.bashrc

    gedit ~/.bashrc

    在其中最下方復制粘貼:

    source ~/catkin_ws/devel/setup.bash
    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

    PS:其中PX4_Firmware注意改成你自己的文件路徑,比如我的:

    如圖改成了Firmware

    然后執行:

    source ~/.bashrc

    接下來在PX4_Firmware文件夾下打開終端,執行:

    roslaunch px4 mavros_posix_sitl.launch
    #連接px4與mavros

    再運行

    rostopic echo /mavros/state

    connected: True,則說明MAVROS與SITL通信成功。如果是false,一般是因為.bashrc里的路徑寫的不對,請仔細檢查。

  • QGC安裝

  • 用虛擬機中的瀏覽器打開:https://docs.qgroundcontrol.com/en/getting_started/download_and_install.html

    找到Ubuntu Linux 版本,按照指示進行安裝。

  • 在首次安裝 QGroundControl 之前,逐一輸入:

  • 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 libqt5gui5 -y
    sudo apt install libfuse2 -y
  • 重啟虛擬機

  • 點擊官網的鏈接進行安裝https://d176tv9ibo4jno.cloudfront.net/latest/QGroundControl.AppImage

  • 賦予下載的程序權限,不然無法打開

  • chmod +x ./QGroundControl.AppImage

    此時QGC即可雙擊打開,大功告成~

    筆者在安裝完后有一些感悟,大家如果感興趣便當廢話看看吧。當我們在面對一個完全陌生的東西時,網上有非常多的大神和非常多有用的帖子,但大家一定不要喪失了獨立思考的能力,比如說在執行時遇到了問題只想著去復制粘貼別人的解決方法,而不愿意多看幾眼自己錯誤的原因,我的建議是如果遇到不如多花點時間去想想這里會什么會報這樣的錯誤,我相信這樣一番思索下來,你會收益匪淺的~

    在此感謝我的舍友和我的指導老師,在我前進路上給了我極大的幫助。

    總結

    以上是生活随笔為你收集整理的Ubuntu18.04基于ROS和PX4的仿真平台配置的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。