1. 程式人生 > >Ubuntu16.04下手動配置pixhawk飛控--PX4韌體版本開發環境(ROS+mavros版本,超級完整!)

Ubuntu16.04下手動配置pixhawk飛控--PX4韌體版本開發環境(ROS+mavros版本,超級完整!)

參考px4官網流程:

配置過程中網速一定要好!!!!一定要好!!!!最好翻牆!!!不然會出很多莫名其妙的bug的!!!!!

----------------------------------------------------------------------分割線-----------------------------------------------------------------

   如果覺得手動配置比較麻煩的,可以直接在官網下載指令碼來執行,並且非常方便,會直接把ROS、mavros等也給直接裝上。指令碼的使用官網上說的也很清楚,本文主要寫手動配置,指令碼方面的去官網看一下就OK了。網址:

https://dev.px4.io/en/setup/dev_env_linux_ubuntu.html

--------------------------------------------------------------------分割線--------------------------------------------------------------------

手動配置:

1、我是之前實現配好的ROS和mavros的,所以這一點的順序和官網不太一樣。

這裡就直接貼命令了,具體解釋之前的部落格和ROS官網解釋的都很好

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
sudo apt-get update
sudo apt-get install ros-kinetic-desktop-full
apt-cache search ros-kinetic
sudo rosdep init
rosdep update
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

(1)二進位制安裝,比較簡單(不想麻煩的話推薦)

sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
./install_geographiclib_datasets.sh

(2)原始碼編譯

    安裝編譯工具:

sudo apt-get install python-catkin-tools python-rosinstall-generator -y

   建立存放mavros的工作空間,這裡推薦放在一個新建的單獨的工作空間,因為按照這個教程走下去後,該工作空間只能用catkin build指令編譯而不能用catkin_make了。
 

mkdir -p ~/mavros_ws/src
cd ~/mavros_ws
catkin init
wstool init src

  更新保證獲取到最新的穩定版mavlink和mavros:
 

rosinstall_generator --rosdistro kinetic mavlink | tee /tmp/mavros.rosinstall
rosinstall_generator --upstream mavros | tee -a /tmp/mavros.rosinstall

   歸併工作鏈,準備開始安裝: 

wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src -j12
rosdep install --from-paths src --ignore-src -y

  其中第二行命令的-j多少,後面的數字最好是你cpu的執行緒數

  這個過程中網速一定要好,不然clone原始碼這一步會卡住,會一直出現mavros | mavlink active啥啥的。

   安裝GeographicLib datasets: 

 ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh

   編譯原始碼(在工作空間下):

catkin build

 如果你想每個終端都常用的話,"source ~/mavros_ws/devel/setup.bash"`這句話新增到~/.bashrc檔案中,否則就只在這個終端裡source一下就行了。

2、解決使用者許可權問題和刪掉linux下的那個串列埠管理器

官方說法:永遠不要用sudo去解決這裡的許可權問題!否則會越來越亂

sudo usermod -a -G dialout $USER
sudo apt-get remove modemmanager

3、安裝通用依賴:
所需的Python包、其他東西等等

sudo apt-get update -y
sudo apt-get install git zip cmake  build-essential genromfs ninja-build -y
# Required python packages
sudo apt-get install python-argparse   python-empy python-toml python-numpy   python-dev python-pip -y
sudo -H pip install --upgrade pip
sudo -H pip install pandas jinja2 pyserial
# optional python tools
sudo -H pip install pyulog

4、安裝Ninja編譯工具:

sudo apt-get install ninja-build -y

5、安裝FastRTPS開發環境:

wget http://www.eprosima.com/index.php/component/ars/repository/eprosima-fast-rtps/eprosima-fast-rtps-1-5-0/eprosima_fastrtps-1-5-0-linux-tar-gz -O eprosima_fastrtps-1-5-0-linux.tar.gz
tar -xzf eprosima_fastrtps-1-5-0-linux.tar.gz eProsima_FastRTPS-1.5.0-Linux/
tar -xzf eprosima_fastrtps-1-5-0-linux.tar.gz requiredcomponents
tar -xzf requiredcomponents/eProsima_FastCDR-1.0.7-Linux.tar.gz

cd eProsima_FastCDR-1.0.7-Linux
./configure --libdir=/usr/lib
make -j12
sudo make install
cd ..
cd eProsima_FastRTPS-1.5.0-Linux
./configure --libdir=/usr/lib
make -j12
sudo make install
cd ..
rm -rf requiredcomponents eprosima_fastrtps-1-5-0-linux.tar.gz

 make後面的j後的數字改為你cpu的執行緒數

6、安裝jMAVSim模擬依賴:

sudo apt-get install ant openjdk-8-jdk openjdk-8-jre -y

7、配置Nuttx開發環境:

sudo apt-get install python-serial openocd flex bison libncurses5-dev autoconf texinfo  libftdi-dev libtool zlib1g-dev -y

配置arm gcc編譯器:

sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi gcc-arm-embedded
sudo add-apt-repository --remove ppa:team-gcc-arm-embedded/ppa

執行下面這個指令碼:(寫成指令碼或者你看分號一行一行在bash輸命令都可以)

pushd .
cd ~
wget https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/7-2017q4/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
tar -jxf gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
exportline="export PATH=$HOME/gcc-arm-none-eabi-7-2017-q4-major/bin:\$PATH"
if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi
popd

然後重啟電腦

檢查是否安裝成功:

arm-none-eabi-gcc --version

如果輸出了像下面這樣的:

arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 7.2.1 20170904 (release) [ARM/embedded-7-branch revision 255204]
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

你成功了!

8、安裝QGC(QGroundControl)地面站:

直接去官網下下來,直接給許可權就可以運行了。

--------------編譯原始碼分割線-------------

9、編譯原始碼:

官方推薦:如果你想給px4做貢獻的話,就去github把它fork下來,然後再clone到本地。這個是我的:

gitclone https://github.com/XueKH/Firmware.git  ~/Firmware

然後cd到Firmware下面:

第一次編譯,用jMAVSim模擬器:

make posix jmavsim

過程中會再clone一些東西,不要急,等一會兒就OK了,成功後會出現一個小飛機,可以通過命令來控制它,

commander takeoff  #起飛
commander land   #降落

玩一下就關掉吧,下面生成可以燒在pixhawk板子上的:

在Firware資料夾下面:

make px4fmu-v4_default

過程中也會下載很多東西,等一會兒就OK

最終沒有報錯,輸出:

-- Build files have been written to: /home/youruser/src/Firmware/build/nuttx_px4fmu-v4_default
[954/954] Creating /home/youruser/src/Firmware/build/nuttx_px4fmu-v4_default/px4fmu-v4_default.px4

就OK了!恭喜你配完了!

(過程中的報錯基本全是網速的鍋,一定要找個網速好的地方!或者翻牆!)

###關於build的韌體版本:

    Pixhawk 4: make px4fmu-v5_default
    Pixracer: make px4fmu-v4_default
    Pixhawk 3 Pro: make px4fmu-v4pro_default
    Pixhawk Mini: make px4fmu-v3_default
    Pixhawk 2: make px4fmu-v3_default
    mRo Pixhawk: make px4fmu-v3_default (supports 2MB Flash)
    HKPilot32: make px4fmu-v2_default
    Pixfalcon: make px4fmu-v2_default
    Dropix: make px4fmu-v2_default
    MindPX/MindRacer: make mindpx-v2_default
    mRo X-2.1: make auav-x21_default
    Crazyflie 2.0: make crazyflie_default
    Intel® Aero Ready to Fly Drone: make aerofc-v1_default
    Pixhawk 1: make px4fmu-v2_default

###

10、燒錄在板子上:

make px4fmu-v4_default upload

  成功的話會顯示:

  Erase  : [====================] 100.0%
  Program: [====================] 100.0%
  Verify : [====================] 100.0%
  Rebooting.

  [100%] Built target upload

11、搭建Qt開發環境:

在與Firmware平級的目錄下,

mkdir Firmware-build
cd Firmware-build
cmake ../Firmware -G "CodeBlocks - Unix Makefiles"

然後在Qt中open a project,選擇這個Firmware的CMakeLists.txt,開啟就OK了,就可以看到整個工程了。