PX4飞控学习与开发(三)-PX4+ROS开发环境搭建

2023-05-16

PX4开发环境搭建

主要步骤如下:

  1. 第一步,设置用户组。在终端输入命令: sudo usermod -a -G dialout $USER,然后登出,重启;
  2. 第二步,Pixhawk固件1.8.2下载:参考网页PX4飞控,工具链下载安装:ubuntu_sim_nuttx.sh参考网页PX4工具链下载网址,或者从我的CSDN资源中下载,分了三个脚本文件,为:
  • ubuntu_sim_nuttx.sh
  • ubuntu_sim.sh
  • ubuntu_deps.sh
  1. 第三步,打开终端,通过cd指令进入配置文件 ubuntu_sim_nuttx.sh所在的文件夹,如果是在官网下载的脚本,可在终端运行指令: source ubuntu_sim_nuttx.sh;官网下载或可能失败,可在第二步中提供的资源中下载需要三个文件,则需输入三次脚本运行指令,依次为source ubuntu_deps.shsource ubuntu_sim.shsource ubuntu_sim_nuttx.sh安装好了之后重启电脑;
  2. 第三步,安装jinja2(编译时需要),新开一个终端,运行: sudo pip install jinja2;
  3. 第四步,安装串口驱动(下载固件时需要),在新终端里,运行: sudo pip install pyserial,如果安装了Python3,也可以是 sudo pip3 install pyserial;
  4. 第五步,cd进入Firmware文件夹,运行: make px4fmu-v2_default;,即编译固件;
  5. 第六步,连接飞控板和电脑,运行 make px4fmu-v2_default upload.视情况中间可能需要插拔下USB线。

下载成功界面如下:
下载成功界面
PS:编译可能遇到以下问题在这里插入图片描述
这是因为tools里有些文件没有添加权限,在目录~/Firmware/platforms/nuttx/Nuttx/nuttx/下打开终端,输入以下指令:

chmod -R 777 tools/

如下图所示:
在这里插入图片描述
然后再编译,就能成功:
在这里插入图片描述

ROS开发环境搭建

按上述搭建的PX4开发环境可能无法运行QGC地面站,需要将系统ubuntu升级到18.0版本(在设置里找到详细信息-系统检查更新)。升级之后装ROS时,注意要安装ROS Melodic版本不是ROS kinetic,可参考 这篇博客。
成功安装后,通过source ubuntu_sim_ros_gazebo.sh脚本文件安装mavros,脚本文件内容为:

#!/bin/bash


cd ~/catkin_ws

## Build MAVROS
### Get source (upstream - released)
rosinstall_generator --upstream mavros | tee /tmp/mavros.rosinstall
### Get latest released mavlink package
rosinstall_generator mavlink | tee -a /tmp/mavros.rosinstall
### Setup workspace & install deps
wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src
if ! rosdep install --from-paths src --ignore-src --rosdistro melodic -y; then
    # (Use echo to trim leading/trailing whitespaces from the unsupported OS name
    unsupported_os=$(echo $(rosdep db 2>&1| grep Unsupported | awk -F: '{print $2}'))
    rosdep install --from-paths src --ignore-src --rosdistro melodic -y --os ubuntu:xenial
fi
## Build!
catkin build
## Re-source environment to reflect new packages/build environment
catkin_ws_source="source ~/catkin_ws/devel/setup.bash"
if grep -Fxq "$catkin_ws_source" ~/.bashrc; then echo ROS catkin_ws setup.bash already in .bashrc; 
else echo "$catkin_ws_source" >> ~/.bashrc; fi
eval $catkin_ws_source

echo "Downloading dependent script 'install_geographiclib_datasets.sh'"
# Source the install_geographiclib_datasets.sh script directly from github
install_geo=$(wget https://raw.githubusercontent.com/mavlink/mavros/master/mavros/scripts/install_geographiclib_datasets.sh -O -)
wget_return_code=$?
# If there was an error downloading the dependent script, we must warn the user and exit at this point.
if [[ $wget_return_code -ne 0 ]]; then echo "Error downloading 'install_geographiclib_datasets.sh'. Sorry but I cannot proceed further :("; exit 1; fi
# Otherwise source the downloaded script.
sudo bash -c "$install_geo"

# Go to the firmware directory
cd $clone_dir/Firmware

if [[ ! -z $unsupported_os ]]; then
    >&2 echo -e "\033[31mYour OS ($unsupported_os) is unsupported. Assumed an Ubuntu 18.04 installation,"
    >&2 echo -e "and continued with the installation, but if things are not working as"
    >&2 echo -e "expected you have been warned."
fi

~/catkin_ws内运行catkin build检查mavros是否正确编译,可能会出现以下错误:
在这里插入图片描述此时运行指令:

sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras

即可将缺少的包安装上。再次运行catkin build,出现以下结果即编译成功:
在这里插入图片描述

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

PX4飞控学习与开发(三)-PX4+ROS开发环境搭建 的相关文章

  • C++ vector数组实现多级排序—使用sort()函数

    之前有记录过 python 使用 numpy 的多级排序方法 xff1a numpy 多级排序 xff1a lexsort 函数详解 地球被支点撬走啦的博客 CSDN博客 lexsort C 43 43 多级排序可以借用 sort 函数 x
  • 数学符号及读法大全(超经典)

    数学符号及读法大全 附 xff1a 各大高校专业课资料整理可以看一下我的博客主页上传的资源哦 xff01 感谢关注 xff0c 点赞 xff0c 评论 数学符号及读法大全 常用数学输入符号 xff1a xff1d xff1c xff1e x
  • 【计算机】数据结构-严蔚敏/清华大学(完)

    计算机 数据结构 严蔚敏 清华大学 xff08 完 xff09 需要其他资源的可以在我博客主页找找 xff0c 太多了 xff0c 我懒得整理 数据结构 43 43 C语言版 43 43 第2版严蔚敏 清华大学 pdf 链接 https p
  • 2021 王道考研 数据结构+习题讲解

    2021 王道考研 数据结构 2021王道数据结构高清PDF 链接 https pan baidu com s 1czh6EiRxnTj9uJgc5i12 w 提取码 frnh 复制这段内容后打开百度网盘手机App xff0c 操作更方便哦
  • 2015考研数学复习全书【数一】

    2015考研数学复习全书 数一 链接 https pan baidu com s 1nuXM0fINXRKCYbyy o kSg 提取码 vr45 复制这段内容后打开百度网盘手机App xff0c 操作更方便哦
  • 教你如何零基础备考公务员

    教你如何零基础备考公务员 零基础复习一个月国考上岸 xff0c 笔试120 43 岗位第一 近年题目简单 xff0c 这个分数可能看着不高 xff0c 我考试那年是除了极少数部委进不了面试 xff0c 绝大部分岗位都能进面试的 xff0c
  • 零基础考公务员,备考多长时间最合适?

    零基础考公务员 xff0c 备考多长时间最合适 xff1f 说到考公务员 xff0c 小伙伴们最关心的问题就是 xff0c 到底多长时间才能考上 xff1f 小伙伴们都知道 xff0c 上岸要趁早 xff01 毒姐经常在网上看到一些提问 x
  • stm32上基于FreeRTOS多任务程序运行

    一 FreeRTOS简介二 在stm32开发板上实现多任务程序运行1 任务要求2 编写程序3 编译生成hex文件4 将程序下载到stm32开发板上 一 FreeRTOS简介 FreeRTOS是一个迷你操作系统内核的小型嵌入式系统 作为一个轻
  • C#---winform基础

    一 winform 1 winform应用程序是一种智能客户端技术 xff0c 我们可以使用winform应用程序帮助我们获得信息或者传输信息等 2 属性 Name 在后台要获得前台的控件对象 xff0c 需要使用Name属性 visibl
  • ubuntu20.04安装编译kalibr与出现的问题

    1 安装依赖 ubuntu20与18依赖的内容差别很大 xff0c 在逐个更改和参考 25条消息 Ubuntu20 04安装kalibr 可即的博客 CSDN博客 ubuntu安装kalibr和官网 后终于安装依赖成功了hhh sudo a
  • 100道最新Java面试题,常见面试题及答案汇总

    除了掌握扎实的专业技能之外 xff0c 你还需要一份 Java程序员面试宝典 才能在万千面试者中杀出重围 xff0c 成功拿下offer 小编特意整理了100道Java面试题 xff0c 送给大家 xff0c 希望大家都能顺利通过面试 xf
  • SSH远程连接实例

    目录 0 实例场景 1 Windows10中的SSH环境配置 2 Ubuntu端的SSH配置 3 SSH使用 3 1 在终端命令行中连接 3 2 使用VSCode连接 0 实例场景 本实例是在校园网的环境中 xff0c 使用SSH在个人电脑
  • Windows环境下安装tensorflow(操作简单)

    写在最前 xff1a 本人之前也安装过tensorflow xff0c 但因为好长时间没用 xff0c 最近需要用到 xff0c 结果一打开发现版本太低 xff0c 运行代码时出现了很多语法错误 想要直接更新tensorflow xff0c
  • STM32串口基础通讯函数配置

    外设篇 串口 标准库 在串口屏 xff0c WiFi模块时候经常会用到串口 xff0c 所以串口还是需要了解一下原理 xff0c 才能更好的借鉴别人代码 xff08 doge xff09 初窥门径 当数据发送时候 xff0c 单片机向发送数
  • unable prepare context:unable to evaluate symlinks in Dockerfile path:lstat /XXXXXX

    问题描述 今天在构建镜像文件时 报错 unable prepare context unable to evaluate symlinks in Dockerfile path lstat 根据提示是说 找不到当前我们要构建的 文件 spa
  • STM32基于FreeRTOS的多任务程序

    目录 任务要求FreeRTOS移植介绍应用 任务要求 在STM32下完成一个基于FreeRTOS的多任务程序 xff0c 执行3个周期性task task1 xff0c 每间隔500ms闪烁 xff08 变化 xff09 一次LED xff
  • 如何判断两个ip是否属于同一子网;如何确定子网掩码,让300台服务器处于同一网段

    一 什么是子网掩码 xff1f 在了解ip地址的网段之前 xff0c 我们先来了解子网掩码 xff0c 很多对网络了解不深的朋友都对子网掩码有些迷惑 xff0c 不了解它是用来干什么的 xff1f 子网掩码不能单独存在 xff0c 它必须结
  • 刷leetcode常用的一些库函数

    1 比较两个数大小 xff0c 求出更大的数或者更小的数 Math max a b Math min a b 2 批量化初始数组 当然 xff0c 你遍历一遍一个一个赋值也可以 Arrays fill nums 1 如果是二维数组 xff0
  • k8s中configmap挂载配置nginx.conf

    ConfigMap ConfigMap作用是存储不加密的数据到etcd中 xff0c 让Pod以变量或数据卷Volume挂载到容器中 应用场景 xff1a 配置文件 创建配置文件 首先我们需要创建一个配置文件 nginx conf user
  • k8s监控prometheus+Grafana

    Kubernetes集群资源监控 概述 监控指标 一个好的系统 xff0c 主要监控以下内容 集群监控 节点资源利用率节点数运行PodsPod监控 容器指标应用程序 程序占用多少CPU 内存 监控平台 使用普罗米修斯 prometheus

随机推荐

  • python学习(猜数字游戏)

    import random x 61 int random randint 0 10 i 61 1 print 39 39 39 欢迎进入猜数字小游戏 xff01 本次游戏机会只有三次 xff01 小伙伴拼手气的机会到了哟 xff01 39
  • python脚本批量创建job并自动添加视图

    由于我们项目jenkinsfile和deployment yaml都是单独分开放在git仓库上管理的 xff0c 脚本实现的是通过批量创建对应的文件和job任务自动提交git仓库 xff0c 并把job加入到视图里 xff01 话不多说贴脚
  • 远程登陆Ubuntu服务器anaconda的使用问题(多用户)

    远程登录Ubuntu的新用户在使用 conda 命令时 xff0c 可能会遇到找不到 conda 命令的情况 xff0c 因此在多用户使用 anaconda 的情况下 xff0c 需要提前在 Ubuntu 服务器上做一下 anaconda
  • telnet批量检查端口是否正常

    一 本机测试目标端口是否正常 xff1a python调用的socket模块来实现 xff1a usr bin python3 import socket ip 43 port 描述 ip prot 61 39 39 39 0 0 0 0
  • mongo副本集一主两从读写分离部署

    mongodb 副本集部署 mongodb 0 gt 3717 mongodb 1 gt 3718 mongodb 2 gt 3719 wget https fastdl mongodb org linux mongodb linux x8
  • 二进制部署mongodb_exporter

    一 先安装部署好prometheus和grafana 二 部署exporter客户端 1 下载软件mongodb下载地址 xff08 grafana模板选择2583 xff09 版本选择0 11 2的 xff0c 不然和模板的语句prome
  • rocketmq二进制2m-2s异步集群部署

    一 机器规划 第一台机器 192 168 20 101 端口规划 xff1a 9876 NameServer1 10910 BrokerA master 10921 BrokerB slave 第二台机器 192 168 20 102 端口
  • Linux(Ubuntu系统)安装unzip

    最近在阿里云服务器上下载了zip形式的数据集压缩包 xff0c 解压时却发现并没有unzip解压命令 xff0c 于是习惯性地pip install unzip xff0c 并不能成功 xff0c 网上很多方法都说运行 sudo apt g
  • Python问题&解决

    python pycharm小技巧 1 要学会使用Debug pycharm Debug使用 Debug记得打断点 xff01 Pycharm debug技巧 在debug的时候python console可以直接敲变量显示 在安装Pych
  • Linux系统安装ClamAV的详细步骤

    ClamAV是一款开源免费的杀毒软件 xff0c 它可以在Linux系统上运行 以下是在Linux系统上安装ClamAV的步骤 xff1a 打开终端并更新软件包列表 xff1a sudo apt update 安装ClamAV xff1a
  • 为什么 0.1 + 0.2 不等于0.3?如何解决这个问题?

    一 开头 我们都知道0 1 43 0 2 61 61 0 3 xff0c 而是0 30000000000000004 xff0c 那么是为什么 xff1f 我们都知道计算机在内部实现中使用的是二进制 xff0c 0 1也是不例外的 xff0
  • 前端手写(十八)——Promise并行限制

    一 写在前面 一般我们做多个异步请求 xff0c 此时我们常常采用的是Promise all来进行处理 xff0c Promise all会全部的一起执行 xff0c 但是如果存在一些并行的限制 xff0c 也就是说一次最多只能执行固定的数
  • 深度学习环境安装(VMware)-Miniconda-pytorch

    提示 xff1a 最近要要跑一些算法 xff0c 用的linux系统一直是在服务器上进行开发 xff08 无GUI界面 xff09 xff0c 双系统又懒得开关机 xff0c 虚拟机还不能调用gpu xff0c 真无了个大语 对于文章中出现
  • novnc安装

    ubuntu22 04 span class token comment 安装软件 span span class token function sudo span span class token function apt span sp
  • python扫描端口

    什么是端口扫描 定义 xff1a 对一段端口或指定的端口进行扫描 目的 xff1a 通过扫描结果可以知道一台计算机上都提供了哪些服务 xff0c 然后就可以通过所提供的这些服务的己知漏洞就可进行攻击 原理 xff1a 当一个主机向远端一个服
  • HTML_移动端界面

    homework8 移动端界面 注 点击图标放大 点击图片旋转180度 ydd html span class token doctype lt DOCTYPE html gt span span class token tag span
  • Windows11安装与使用初体验

    Windows11安装 因为下载的是美国镜像 xff0c 所以系统语言是英文的 xff0c 但是这么多年的使用 xff0c 还是能够看懂一二的 xff0c 一步步操作就好了呗 xff0c 随缘点击 xff0c 无脑下一步 不知是我没有选择对
  • 基于51单片机的智能窗帘仿真方案原理图设计

    系统总体方案 xff08 附文件 xff09 通过上述对各个模块介绍 xff0c 我们最终选择了采用STC89C52作为的主控芯片 xff0c 采用光敏电阻采集环境光强通过ADC0832转换成数字信息然后由单片机处理得出环境光强的情况 xf
  • 基于RNN-LSTM模型的诗词生成/TensorFlow

    1 研究任务一介绍 1 1 研究任务 给定诗词数据集poems xff0c 采用基于循环神经网络 xff08 RNN xff09 的LSTM模型实现古诗词自动生成 xff0c 调整参数实现五言诗 七言诗 五言藏头诗 七言藏头诗和词的自动生成
  • PX4飞控学习与开发(三)-PX4+ROS开发环境搭建

    PX4开发环境搭建 主要步骤如下 xff1a 第一步 xff0c 设置用户组 在终端输入命令 xff1a sudo usermod a G dialout USER xff0c 然后登出 xff0c 重启 xff1b 第二步 xff0c P