Ubuntu16.04下手動配置pixhawk飛控--PX4韌體版本開發環境(ROS+mavros版本,超級完整!)
參考px4官網流程:
配置過程中網速一定要好!!!!一定要好!!!!最好翻牆!!!不然會出很多莫名其妙的bug的!!!!!
----------------------------------------------------------------------分割線-----------------------------------------------------------------
如果覺得手動配置比較麻煩的,可以直接在官網下載指令碼來執行,並且非常方便,會直接把ROS、mavros等也給直接裝上。指令碼的使用官網上說的也很清楚,本文主要寫手動配置,指令碼方面的去官網看一下就OK了。網址:
--------------------------------------------------------------------分割線--------------------------------------------------------------------
手動配置:
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了,就可以看到整個工程了。