ubuntu安装px4

2023-05-16

无人机自动驾驶软件系列 网址
https://gaas.gitbook.io/guide/software-realization-build-your-own-autonomous-drone/wu-ren-ji-zi-dong-jia-shi-xi-lie-offboard-kong-zhi-yi-ji-gazebo-fang-zhen

1、把用户添加到用户组 “dialout”:

$sudo usermod -a -G dialout $USER

然后注销后,重新登录,因为重新登录后所做的改变才会有效。

2、下载相应的软件

$sudo add-apt-repository ppa:george-edison55/cmake-3.x -y
$sudo apt-get update

必备软件

$sudo apt-get install python-argparse git-core wget zip python-empy qtcreator cmake build-essential genromfs -y

仿真工具

$sudo add-apt-repository ppa:openjdk-r/ppa
$sudo apt-get update
$sudo apt-get install openjdk-8-jre
$sudo apt-get install ant protobuf-compiler libeigen3-dev libopencv-dev openjdk-8-jdk openjdk-8-jre clang-3.5 lldb-3.5 -y

3、卸载模式管理器
$sudo apt-get remove modemmanager

4、更新包列表和安装下面的依赖包

$sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded -y
$sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
$sudo apt-get update
$sudo apt-get install python-serial openocd \
flex bison libncurses5-dev autoconf texinfo build-essential \
libftdi-dev libtool zlib1g-dev \
python-empy gcc-arm-none-eabi -y

5、安装git-daemon-sysvinit git-all python-jinja2 lsb-core;

$sudo apt-get install git-daemon-sysvinit
$ sudo apt-get install git-all
$ sudo apt-get install python-jinja2
$ sudo apt-get install lsb-core

6、用pip安装numpy和toml
先把安装pip,安装pip有三种方案
方案一、
$ sudo apt-get install python-pip
方案二、
$sudo apt-get install python-setuptools python-dev build-essential
$sudo easy_install pip
方案三、
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

然后使用pip安装numpy和toml
$sudo pip install numpy toml

7、安装对应版本的编译器

编译器版本的选择取决与您想要编译的源码版本;
如果您想编译1.8.0版本的固件,请使用2017版本;

首先下载编译器,打开如下链接
https://armkeil.blob.core.windows.net/developer/Files/downloads/gnu-rm/7-2017q4/gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2
然后依次执行
pushd .
sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi gcc-arm-embedded -y

sudo add-apt-repository --remove ppa:team-gcc-arm-embedded/ppa -y

tar -jxf gcc-arm-none-eabi-7-2017-q4-major-linux.tar.bz2

sudo mv gcc-arm-none-eabi-7-2017-q4-major /opt

exportline="export PATH=/opt/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

. ~/.profile

popd

arm-none-eabi-gcc --version 查看当前编译器版本
最好重启一下

如果您想编译低于1.8.0版本的固件,建议安装GCC5.4.3版本
使用链接下载
https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q2-update/+download/gcc-arm-none-eabi-5_4-2016q2-20160622-linux.tar.bz2
或使用wget下载
wget https://launchpad.net/gcc-arm-embedded/5.0/5-2016-q2-update/+download/gcc-arm-none-eabi-5_4-2016q2-20160622-linux.tar.bz2

然后依次执行

pushd .

sudo apt-get remove gcc-arm-none-eabi

tar -jxf gcc-arm-none-eabi-5_4-2016q2-20160622-linux.tar.bz2

sudo mv gcc-arm-none-eabi-5_4-2016q2 /opt

exportline="export PATH=/opt/gcc-arm-none-eabi-5_4-2016q2/bin:\$PATH"

if grep -Fxq "$exportline" ~/.profile; then echo nothing to do ; else echo $exportline >> ~/.profile; fi

. ~/.profile

popd

可以检查arm-none-eabi 5.4是否安装成功,输入以下指令:
arm-none-eabi-gcc --version

8、下载代码
重新打开一个终端
$mkdir -p ~/src
$cd ~/src
下载v1.8.0源码,与上面安装的编译器对应,如果下载最新版本可能会编译不通过;
$ git clone -b v1.8.0 https://github.com/PX4/Firmware.git //下载v1.8.0源码(提倡)
$git clone https://github.com/PX4/Firmware.git //下载最新版本(不提倡)

9、代码编译
先进入Firmware文件夹,进而进行初始化、更新子模块操作,耐心的等待……
$cd Firmware
$git submodule update --init --recursive
由于网络原因,期间可能会失败,请重新执行直至完成。
$cd ~/src/Firmware
$git describe --always --tags #查看当前px4固件版本
$make
在这里插入图片描述

若不是第一次使用make,请使用make clean后重试;

本文来自 FantasyJXF 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/oqqenvy12/article/details/52035127?utm_source=copy

10、Gazebo配置

安装protobuf库,它用作Gazebo的接口。

sudo apt-get install libprotobuf-dev libprotoc-dev protobuf-compiler libeigen3-dev

11、切换到构建目录并从中调用CMake

在仿真文件夹目录顶层创建一个 Build 文件夹

cd ~/src/Firmware/Tools/sitl_gazebo
mkdir Build
cd Build
cmake ..
make

在这里插入图片描述

12、添加路径
请注意:下面添加的路径全部是基于Firmware在~/src/Firmware下时的添加方法,如您将Firmware下载在其他路径,请自行更改。

sudo gedit ~/.bashrc

在.bashrc文件中加入如下内容,如图所示。

#设置插件的路径以便 Gazebo 能找到模型文件
export GAZEBO_PLUGIN_PATH=${GAZEBO_PLUGIN_PATH}:$HOME/src/Firmware/Tools/sitl_gazebo/Build
#设置模型路径以便 Gazebo 能找到机型
export GAZEBO_MODEL_PATH=${GAZEBO_MODEL_PATH}:$HOME/src/Firmware/Tools/sitl_gazebo/models
#禁用在线模型查找
export GAZEBO_MODEL_DATABASE_URI=""
#设置 sitl_gazebo 文件夹的路径
export SITL_GAZEBO_PATH=$HOME/src/Firmware/Tools/sitl_gazebo

source ~/src/Firmware/Tools/setup_gazebo.bash ~/src/Firmware/ ~/src/Firmware/build/posix_sitl_default

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/src/Firmware

export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/src/Firmware/Tools/sitl_gazebo
在这里插入图片描述

13、MAVROS仿真
MAVROSROS包允许在运行ROS的计算机、支持MAVLink的飞控板以及支持MAVLink的地面站之间通讯。虽然MAVROS可以用来与任何支持MAVLink的飞控板通讯,但是本文仅就PX4飞行栈与运行ROS的协同计算机之间的通讯予以说明。

sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras ros-kinetic-control-toolbox

切换到固件目录
cd ~/src/Firmware

启动gazebo仿真
make posix_sitl_default gazebo


本文来自 FantasyJXF 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/oqqENvY12/article/details/55263122?utm_source=copy

在这里插入图片描述

14.安装MAVROS

MAVROS是一层MAVLink与ROS通信的封装,旨在方便无人机与机载电脑通信。若要安装,你可以选择通过apt安装,或者从源码编译。请参考如下步骤:

你可以使用下列任何一种方法;

方法 1
sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras
#安装geographic lib :
wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh
sudo chmod a+x install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh #这一步非常慢,也没有进度条提示,要耐心等它走完。

方法 2
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
sudo apt install ros-kinetic-catkin python-catkin-tools
catkin init && wstool init src
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 -j4
rosdep install --from-paths src --ignore-src -y

#安装geographic lib :
sudo ./src/mavros/mavros/scripts/install_geographiclib_datasets.sh
catkin build
若要了解更多关于Mavros信息,请参考如下网址:
https://github.com/mavlink/mavros/blob/master/mavros/README.md#installation
PX4 Firmware

如果通过第一种方式安装了MAVROS,忽略此步。
​在bashrc中,拷贝以下内容到bashrc尾端
sudo gedit ~/.bashrc

尾端添加source ~/catkin_ws/devel/setup.bash

仿真 请使用:

roslaunch px4 posix_sitl.launch
在另一个终端,输入:
roslaunch mavros px4.launch fcu_url:="udp://:14540@127.0.0.1:14557"

或者您可以直接输入:
roslaunch px4 mavros_posix_sitl.launch

真机 请使用:

roslaunch mavros px4.launch fcu_url:=serial:///dev/ttyUSB0:57600
rostopic list
rostopic echo /mavros/state #查看机载电脑是否与pixhawk连通

真机offboard只需要做的只有三个步骤:

1、电脑通过串口连接至Pixhawk上的Telema 2 ;

2、使用QGroundControl 修改 SYS_COMPANION参数改成Companion Link(57600)

3、电脑上运行如下指令
roslaunch mavros px4.launch fcu_url:=serial:///dev/ttyUSB0:57600

4、遥控让无人机切换至offboard模式

5、运行外部控制例程 (自己写的例程)
rosrun offb_ctrl offb_ctrl_node1

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ubuntu安装px4 的相关文章

随机推荐

  • C++ Primer Plus学习(一)—— 基础知识

    基础知识 预备知识头文件名命名约定名称空间 命名空间C 43 43 源代码风格 xff1a 处理数据变量名位与字节数据类型为何float有效位数为7位climits初始化整型浮点数相对整型的优缺点转义运算符算术运算符类型转换 最近开始对C
  • C++ Primer Plus学习(十八)——Linux和C++知识点梳理(黑马程序员)

    知识点梳理 Linux常用指令数据度量单位压缩硬链接和软链接 Linux常用指令 ctrl 43 shift 43 43 xff1a 放大终端窗口和字体 ctrl 43 xff1a 缩小终端窗口和字体ls xff1a list xff0c
  • ipv4到ipv6过渡的三种方案

    ipv4到IPV6过渡有哪几种方案 xff1f IPv4 是互联网协议的第四版 xff0c 属第一个被广泛应用 xff0c 构成现阶段互联网技术的基础的协议 IPv6是下一代互联网协议 xff0c 为了解决 IP地址稀少而生 xff0c 正
  • 8个免费查找文献的学术网站

    今天为大家推荐8个免费查找文献的学术网站 xff0c 希望能帮到大家 文章来源公众号智慧科研 1 Library Genesis Library Genesis号称是帮助全人类知识无版权传播的计划 网站上论文很多 xff0c 下载方便 xf
  • Linux服务器snmp协议v2/v3配置方法

    Snmp V2 配置方法 1 确保本机已经安装了snmp服务 root 64 idc rpm qa grep snmp net snmp libs 5 1 2 11 EL4 7 net snmp 5 1 2 11 EL4 7 如果没有 xf
  • 论文中AP与AR含义详细解释

    AP的含义和AR的本身含义就是查准率和查全率 这里的AP通过和IOU结合定义出两种分别 xff1a 1 当IOU大于0 5认定为真 2 当IOU大于0 75认定为真 3 从IOU大于0 5开始 xff0c 每次增加0 05 xff0c 分别
  • 学习笔记之ubuntu sudo apt-get update失败已经解决

    ubuntu sudo apt get update失败已经解决 运行sudo apt get update出现的错误如下 xff1a etc apt sudo apt get update Err http security ubuntu
  • oracle之index

    索引与表一样 xff0c 也属于段 xff08 segment xff09 的一种 里面存放了用户的数据 xff0c 跟表一样需要占用磁盘空间 索引是一种允许直接访问数据表中某一数据行的树型结构 xff0c 为了提高查询效率而引入 xff0
  • 通过jad/mc/redefine命令,在docker容器中实现动态更新代码的功能:

    通过jad mc redefine命令 xff0c 在docker容器中实现动态更新代码的功能 xff1a demos dockerfile from openjdk 8u232 jdk maintainer czm lt chengzhi
  • 对抗攻击与防御(2022年顶会顶刊AAAI、ACM、 ECCV、NIPS、ICLR、CVPR)adversarial attack and defense汇总

    文章目录 AAAI 39 2022 论文汇总CVPR 2022论文汇总ACM 39 2022论文汇总ECCV 39 2022论文汇总ICLR 39 2022论文汇总NIPS 39 2022论文汇总后续 AAAI 2022 论文汇总 AAAI
  • 时间序列(time serie)分析系列之时间序列特征(feature)7

    文章目录 1 问题描述 2 特征构建 2 1时间特征 2 2平移特征 2 3窗口特征 3 总结 1 问题描述 时间序列数据作为一种典型的数据 常存在于各行各业 比如客流 车流 销量 KPI指标等等 如何对时序数据加以利用 比如做未来预测 交
  • 数论

    质数的定义 对于大于1的自然数 如果它的因子中只有1和它本身 则是一个质数也称素数 从定义可以看出质数的取值范围是从2开始的 小于2的数肯定不是质数 质数的判定 试除法 假设 d是n的一个因子 那么n d 也是n的一个因子 因此我们只需要枚
  • Linux yolov4配置运行

    1 下载yolov4 git clone https github com AlexeyAB darknet git 如果没有git sudo apt get install git 2 编译 进入darknet的目录下 执行下面的语句进行
  • 吐血分类整理 Windows 11的170个快捷键

    1 Windows 11 中新增的键盘快捷键 xff1a 作用快捷键打开小部件窗格 xff0c 提供天气预报 当地交通 新闻 xff0c 日历Win 43 W切换快速设置 控制音量 Wi Fi 蓝牙 亮度滑块 对焦辅助和其他设置Win 43
  • SLAM算法解析

    ref xff1a https www jianshu com p eb25bd481475 嵌牛导读 xff1a SLAM Simultaneous Localization and Mapping 是业界公认视觉领域空间定位技术的前沿方
  • mininet基本使用与操作方法

    启动Wireshark 要使用OpenFlow Wireshark解剖器查看控制流量 xff0c 请先在后台打开wireshark xff1a sudo wireshark amp do wireshark amp rk amp 每个主机进
  • ArUco Marker检测原理

    标记检测过程包括两个主要步骤 xff1a 检测候选marker 在该步骤中 xff0c 分析图像以找到作为标记的候选的正方形形状 它首先进行自适应阈值处理以对标记进行分割 xff0c 然后从阈值图像中提取轮廓 xff0c 并丢弃那些非凸起或
  • 深度学习中epoch、batch、batch size和iterations详解

    1 epoch 在训练一个模型时所用到的全部数据 xff1b 备注 xff1a 一般在训练时都要使用多于一个的epoch xff0c 因为在神经网络中传递完整的数据集仅仅一次是不够的 xff0c 只有将完整的数据集在同样的神经网络中传递多次
  • matlab如何将帮助变成简体中文

    仅作为尝试记录 xff0c 大佬请跳过
  • ubuntu安装px4

    无人机自动驾驶软件系列 网址 https gaas gitbook io guide software realization build your own autonomous drone wu ren ji zi dong jia sh