PX4学习(1)——PX4固件版本开发环境(ROS+mavros版本)
参考px4官网流程:
https://dev.px4.io/en/setup/dev_env_linux_ubuntu.html
https://dev.px4.io/en/setup/building_px4.html
配置过程中网速一定要好!!!!一定要好!!!!最好翻墙!!!不然会出很多莫名其妙的bug的!!!!!
----------------------------------------------------------------------分割线-----------------------------------------------------------------
如果觉得手动配置比较麻烦的,可以直接在官网下载脚本来运行,并且非常方便,会直接把ROS、mavros等也给直接装上。脚本的使用官网上说的也很清楚,本文主要写手动配置,脚本方面的去官网看一下就OK了。网址:https://dev.px4.io/en/setup/dev_env_linux_ubuntu.html
--------------------------------------------------------------------分割线--------------------------------------------------------------------
手动配置:
1、我是之前实现配好的ROS和mavros的,所以这一点的顺序和官网不太一样。
安装ROS-kinetic版本:http://wiki.ros.org/kinetic/Installation/Ubuntu
这里就直接贴命令了,具体解释之前的博客和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
安装mavros:https://github.com/mavlink/mavros/blob/master/mavros/README.md#installation
(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到本地。这个是我的:
https://github.com/XueKH/Firmware.git
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了,就可以看到整个工程了。
PX4学习(1)——PX4固件版本开发环境(ROS+mavros版本)相关推荐
- Polyworks脚本开发学习笔记(一)-脚本开发环境
Polyworks脚本开发学习笔记(一)-脚本开发环境 背景 Polyworks的扫描尺寸测量分析模块是我工作中经常用到的一个模块,我不是做测量的,但是利用Polyworks对扫描获得的点云来进行尺寸 ...
- C51单片机学习笔记(一)——搭建开发环境及烧写工具
C51单片机学习笔记(一)--搭建开发环境及烧写工具 文章目录 C51单片机学习笔记(一)--搭建开发环境及烧写工具 1.搭建软件开发环境及使用(Keil uVision) 2.将程序下载到单片机(烧 ...
- brew安装指定版本mysql,Mac 系统为 Valet 开发环境安装指定版本 MySQL
Mac 系统为 Valet 开发环境安装指定版本 MySQL 由 学院君 创建于1年前, 最后更新于 5个月前 版本号 #3 1547 views 1 likes 0 collects 在 Mac 系 ...
- 视觉SLAM十四讲学习笔记-第二讲-开发环境搭建
专栏系列文章如下: 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 lin ...
- Python学习笔记:Day1-2 开发环境搭建
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Android开发学习笔记---搭建Android开发环境
今天突发奇想,想看看Android开发是什么样的,于是就在度娘了一下Android开发,便自己动手搭建了起来.中间也碰到了一些问题,自己慢慢度娘,谷哥去解决.现在把搭建步骤记录如下: 第一步:下载Ec ...
- Esp8266学习之旅① 搭建开发环境,开始一个“hellow world”串口打印。
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板.仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 基于C SDK的ESP8266开发技术全系列笔记 一.N ...
- 【python教程入门学习】Python 集成开发环境(IDE): VS Code
"工欲善其事必先利其器"中的"器",对于一个程序员来说就是编辑器.编译器(或解释器).调试器等工具,这些器具(工具)帮助我们快速的写出程序,运行程序和解决其中的 ...
- Java零基础必看学习教程,Java开发环境配置详解
很多Java新手小白在学习Java编程的时候,碰到的第一难题就是不知道如何安装和配置java开发环境. 今天整理了史上最详细的安装及Java开发环境配置教程,通过图文并茂的方式详细讲解每一步骤,手把手 ...
最新文章
- HyperLedger Fabric区块链技术形成(1.2)
- .dat文件写入byte类型数组_深入浅出MATLAB数据处理之文件读写
- 服务器性能/压力测试工具http_load、webbench、ab、Siege使用教程
- boost::callable_traits的remove_member_cv_t的测试程序
- vue 传递 对象 路由_vue 04 -vue路由对象($route)参数简介以及和router的区别
- PCIE2.0/PCIE3.0/PCIE4.0/PCIE5.0接口的带宽、速率计算
- I2C总线之(三)---以C语言理解IIC
- 微信电脑客户端_无聊的话,用微信玩玩电脑
- CF961G Partitions
- 【无线串口模块快速选型指南】通信频点、芯片、通信距离、功率灵敏度、电流 空中速率
- unity底层运行机制_Unity跨平台的机制原理
- ASP.NET_ASP.NET Cookies
- 数据库锁表的分析与解决
- 2021年CSDN年度总结:生活总是焦虑与希望并存,流水要争先,靠的是绵绵不绝。
- uniapp使用IPA苹果支付
- Unity批量刷草工具及优化
- Handler源码分析 - Java层
- 实时视频传输的关键技术 H.264 全解析
- 字节数组与字节流、缓冲字节流、字符流、缓冲字符流、对象流
- LabwindowsCVI 串口编程及事例