机载处理器(树莓派、Jetson TX2及个人pc等均适用)配置ROS+mavros开发环境 (Pixhawk飞控测试)

2023-05-16

需要事先准备的:

树莓派:

(1)一块装了Ubuntu16.04 mate系统的树莓派(我的是3代,别的平台没有测试过),

(2)键盘、显示器等需要操作树莓派终端的工具(或者已经配置好远程终端或者远程桌面),

(3)网络环境,

(4)USB转串口转换器(解决树莓派串口使用问题,配置串口的话较麻烦),

(ps.要加强散热,树莓派cpu比较菜,配置环境过程中若芯片温度过高系统很容易崩掉的2333,我当时多搬了一台风扇专门来吹)

Jetson TX2:

(1)刷好系统的Jetson tx2,(Ubuntu16.04)

(2)可操作tx2终端的工具,

(3)网络环境,

个人PC:

(1)usb转串口或者数传,

(2)网络环境,


一、安装ROS(kinetic版本)

这一步按照ROS官网教程即可,

原网网址:http://wiki.ros.org/kinetic/Installation/Ubuntu

1、允许"restricted"、"universe" 和 "multiverse"三种安装方式,直接在图形化界面的设置里软件源那里打勾即可。或者看这里Ubuntu官方教程:follow the Ubuntu guide

2、设置电脑使其可以接受来自packages.ros.org的软件包:

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

3、添加密钥:

sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

4、更新:

sudo apt-get update

5、安装全套的ros-kinetic-desktop-full:

sudo apt-get install ros-kinetic-desktop-full

(也可以按部分安装,具体见官网,这里为了方便也就直接装了全部的)

6、初始化rosdep:

sudo rosdep init
rosdep update

7、配置ROS工作环境:

echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
source ~/.bashrc

(这里是配置终端环境的、若要设置成开机即自启可把source这句话添加到/etc下面的profile里)

8、安装构建包的依赖关系:

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

ROS安装到这里就结束了,如果中间遇到什么错误了去官网看看有解决办法


二、安装mavros:

1、修改用户权限

把用户添加到用户组"dialout":

sudo usermod -a -G dialout $USER

至关重要!!!之前我忘记了这一步,然后在启动mavros时遇到错误:

error: Cannot open /dev/ttyUSB0: Permission denied

原因:权限不够,开始安装时忘记修改把用户添加进组内,权限问题。

解决办法:执行上面命令。

2、安装mavros

MAVROS可以通过源文件或者二进制文件安装,官网推荐使用源文件安装,但是我推荐用二进制文件安装。

方法一:二进制文件安装:
sudo apt-get install ros-kinetic-mavros ros-kinetic-mavros-extras ros-kinetic-control-toolbox

(下面这两步不做可能会报错,所以尽量执行下)

cd /opt/ros/kinetic/lib/mavros
sudo ./install_geographiclib_datasets.sh
方法二:源文件安装:

1、建立一个mavros工作空间。

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

2、安装MAVROS需要用到ROS python工具

安装MAVROS需要用到ROS python工具wstool,rosinstall和catkin_tools,尽管在安装ROS时可能已经安装过这些工具,但是再运行这些命令也没啥影响:

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

注意:尽管可以使用catkin_make也可以构建这些包,但是推荐使用catkin_tools,因为它更加友好,功能更加全面,反正就是厉害。

如果这是第一次使用wstool,那么需要初始化你的源空间:

wstool init ~/mavros_ws/src

3、好现在准备构建:

(1)首先获取源码:

rosinstall_generator –upstream mavros | tee /tmp/mavros.rosinstall

要想获取最新的就执行下面这个,两个选一个就行了。

rosinstall_generator –upstream-development mavros | tee /tmp/mavros.rosinstall

 (2)然后获取最新发布的mavlink软件包:

获得mavlink包:

rosinstall_generator mavlink | tee -a /tmp/mavros.rosinstall

 (3)设置工作区并安装:

wstool merge -t src /tmp/mavros.rosinstall
wstool update -t src
rosdep install --from-paths src --ignore-src --rosdistro kinetic -y
cd  ~/mavros_ws/src/mavros/mavros/scripts/
sudo  ./install_geographiclib_datasets.sh

 (4)最后构建一下就好了:

catkin build

(如果说中途说缺什么依赖按照提示装就行了,以后在这个工作空间里构建的话用catkin build工具而不是catkin make)


三、机载处理器修改launch文件(更方便)

修改默认值,这样的话就直接启动launch文件($  roslaunch mavrospx4.launch)即可。

sudo vim /opt/ros/kinetic/share/mavros/launch/px4.launch

看到文件后,找到默认波特率配置一行,修改串口波特率为/dev/ttyUSB0:921600

921600是官方建议的波特率。之所以采取机载树莓派串口直连的方式连接是解决回传数据丢包的问题的。用数传的话由于现有的垃圾数传波特率(57600)的限制丢包率达到98%……而树莓派通过串口直连的话可以做到起码在20Hz的发布频率下不丢包。

(ps.因为树莓派本身的串口有问题,貌似是默认的连接树莓派内的蓝牙模块的。配置一波的话比较麻烦2333,然后就直接用了usb转串口。不同人的情况可能不同,具体修改的时候ls一下/dev,找到要找的具体设备然后在配置里修改即可)

树莓派与pixhawk飞控连接时,树莓派外侧第四根引脚TXD与飞控板串口2(飞控波特率在地面站改,貌似只能修改串口2的,串口1貌似默认57600)中从左到右数第三个RXD连接,树莓派外侧第四根引脚RXD与飞控板串口2中从左到右数第三个TXD连接。(我就因为连错了然后坑了好多次……)


四、测试mavros:

在树莓派上插上usb转串口,然后执行

roslaunch mavros px4.launch

观察输出,一般没报错、进程停止就ok了。

 

后面的博客将介绍建立一个简易的外部控制offboard包。







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

机载处理器(树莓派、Jetson TX2及个人pc等均适用)配置ROS+mavros开发环境 (Pixhawk飞控测试) 的相关文章

  • Java学习路线总结(思维导图篇)

    x1f3c6 作者简介 xff1a 哪吒 xff0c CSDN2022博客之星Top1 CSDN2021博客之星Top2 多届新星计划导师 博客专家 x1f4aa xff0c 专注Java硬核干货分享 xff0c 立志做到Java赛道全网T
  • 刚毕业的表弟年薪40w......程序员薪资天花板?

    前不久 xff0c 腾讯2022校招 应届毕业生年薪 40 万 刷屏了 尽管互联网大厂的薪资高不算什么新鲜事儿 xff0c 但这个热搜仍然让我大受震撼 腾讯校招官网显示 xff0c 2022届腾讯校招开放技术 产品 设计等岗位共计 78 个
  • 运维面试题--Linux系统 启动过程

    简述 xff1a 1 开机BIOS自检 2 MBR引导 3 grub引导菜单 4 加载内核kernel 5 启动init进程 6 读取inittab文件 xff0c 执行rc sysinit rc等脚本 7 启动mingetty xff0c
  • Dockerfile中echo命令不能加 -e 选项

    以换源举例 xff1a span class token builtin class name export span span class token assign left variable CDN span span class to
  • jdbc环境配置及操作步骤

    文章目录 jdbc环境配置jdbc 操作步骤 jdbc 环境配置 jdbc开发 xff0c 需要提前先准备驱动包 下载一个mysql驱动包 xff09 及配置 xff08 项目配置引入这个驱动包 下载链接 xff1a mysql驱动包 注意
  • 在柱状图中找最大矩形——O(n)时间复杂度java实现

    最近在刷leetcode xff0c 又碰到了这道题 xff0c 想起来当时算法有些瑕疵 xff0c 所以将最新的AC代码更新在最上面做个对比 xff0c 具体思路见注释 public class Solution 思路 主要是使用一个栈来
  • 记一次Hive平台清洗数据

    场景 xff08 简化 xff09 现有文章表Article和评论表Comment xff1b 一篇文章可以有多个评论 xff1b 文章表Article主要字段 xff08 articleId xff09 xff1b 评论表Comment主
  • UART协议及串口回环

    UART协议及串口回环 一 异步通信的分类1 UART xff08 通用异步收发器 xff09 2 RS4223 RS4854 Modbus5 接口标准 二 UART协议要求1 空闲状态2 起始位3 数据位4 校验位5 停止位6 波特率7
  • 使用MapReduce实现遗传算法

    摘要 xff1a 遗传算法在大规模问题的求解中得到越来越多的应用 传统的基于MPI的并行遗传算法需要知道机器架构的细节 另一方面 xff0c 由Google提出的MapReduce可用于开发具有扩展性和容错能力的应用 xff0c 是一个强大
  • 2021-03-08

    解决大疆无人机电池电压不平衡出现电池错误提示无法起飞 一个简单的笨办法 xff0c 处理某块电芯偏低 xff0c 而另一块明显偏高 xff0c 经平衡和数据修正后 xff0c 在使用中反复 xff0c 说明各电芯之间容量发生物理不可逆的容量
  • 如何学习编程语言-API学习

    作为一个本科非计算机科班出身编程水平又很菜的我来说 xff0c 很多学习方法都需要我自己去总结摸索 xff0c 我的老师朋友可以帮我解决具体的问题 xff0c 给我提供足够的资源 xff0c 但是最关键的细节把握和吸收消化还是需要我自己去完
  • 49天精通Java,第9天,java final关键字

    nbsp 目录 一 final nbsp 1 修饰引用 nbsp 2 修饰方法 3 修饰类 二 Java中的对象析构与finalize方法
  • 正点原子----Linux设备树详解

    linux设备树 1 什么是设备树2 DTS DTB DTC的关系3 如何编译设备树4 DTS基本结构4 1 语法4 2 设备树在系统中的体现4 3 尝试自己添加节点4 4 尝试对根节点追加信息 5 设备树特殊节点5 1 chosen子节点
  • 《嵌入式实时操作系统µC/OS-II》学习笔记(二)

    第三章 xff1a 内核结构 临界段 xff1a 也就是需要保证原子操作的代码段 由这里的说法 xff0c 绝大多数或者说所有的 xff08 xff09 内核都是都是使用开关中断的方式来处理 在 uC OS II 中 xff0c 使用 OS
  • SHELL-----脚本执行 、定义变量、特殊变量、read的用法、命令结果赋值给变量

    一 三种脚本执行方法 1 sh script sh bash script sh 没有执行权限时 2 path script sh script sh 绝对路径 xff0c 当前目录下 3 source script sh script s
  • Mybatis-查询数据传入传出和CRUD

    Mybatis 查询语句的入参类型 基本类型 javabean类型 xff1a 使用时要与 属性名对应 根据对象的属性名获取属性值 map类型 xff1a 匹配參數集合map中key的名字 数组 list类型 xff1a foreach遍历
  • Ubuntu18.04上编译并跑通VINS-Fusion

    VINS Fusion github 地址 xff1a GitHub HKUST Aerial Robotics VINS Fusion An optimization based multi sensor state estimator
  • 北邮人论坛求职版面:各种经验总结

    http bbs byr cn article WorkLife 886969 p 61 2 我觉得技术工作优先级是 0 xff09 业务前途 xff0c 决定你的上升空间 1 xff09 技术方向 xff0c 决定你在人力市场上的价格 2
  • Centos7防火墙常用命令

    一 系统防火墙 1 启动防火墙 systemctl start firewalld 2 关闭防火墙 systemctl stop firewalld 3 查看状态 systemctl status firewalld 4 开机启用防火墙 s
  • java操作hbase

    java 对 Hbase 的操作 一 引入pom span class token comment lt https mvnrepository com artifact org apache hbase hbase client gt s

随机推荐

  • 怎么用vnc访问自己电脑,并且同时又是同一个会话?

    1 运行 vncserver alwaysshared 网友也用这样的 xff1a vncserver alwaysshared 1 geometry 1440 900 2 在ubuntu的系统工具中有个 xff1a 桌面共享 最上面的两个
  • VMware Workstation+Ubuntu20.04LTS虚拟机+VMware Tools安装的那些事(有手就会)

    VMware Workstation 16 43 Ubuntu20 04虚拟机 43 VMware Tools安装的那些事 安装系统的选项 xff1a 1 实体机 xff1a 可能会出现硬件不支持 所以说不推荐 2 双系统 每次开机登录需要
  • 一篇文章带你彻底吃透Java NIO

    目录 一 I O模型 二 BIO NIO AIO应用场景 三 BIO编程简单流程 四 NIO核心 五 BIO与NIO比较 六 NIO 三大核心原理示意图 七 缓冲区 buffer 1 常用Buffer子类一览 2 buffer四大属性 3
  • 图像物体分类与检测算法综述

    图像物体分类与检测算法综述 转自 计算机学报 目录 图像物体分类与检测算法综述 目录图像物体分类与检测概述物体分类与检测的难点与挑战物体分类与检测数据库物体分类与检测发展历程 图像物体分类与检测是计算机视觉研究中的两个重要的基本问题 xff
  • 海康威视网络摄像头SDK二次开发(QT版本)

    暂时使用到的主要功能有四个 xff1a 1 连接相机 xff0c 2 实时显示 xff0c 3 取图 xff08 bmp格式 xff09 xff0c 4 关闭相机 在官网下载对应的win64的SDK xff0c 在库文件中运行demo ex
  • Android7.0成长之路---新特性Jack server

    准备 今天正式担任Android7 0 N 项目模块的开发和维护工作 xff0c 借此机会git和make了一套系统代码用来研究 在编译的过程中 xff0c 与以往系统不同的是Android7 0系统编译工具链使用了全新的Jack serv
  • A-Softmax(SphereFace)

    论文 xff1a SphereFace xff1a https arxiv org abs 1704 08063 SphereFace在MegaFace数据集上识别率在2017年排名第一 xff0c 用的A Softmax Loss有着清晰
  • Java 面试题宝典 (每天更新)

    目录 一 Java 基础部分 第一天 1 一个 34 java 34 源文件中是否可以包括多个类 xff08 不是内部类 xff09 xff1f 有什么限制 2 Java 有没有 goto 3 说说 amp 和 amp amp 的区别 4
  • skyfans之每天一个Liunx命令系列之三十三:chomd

    今天我们继续来学习每天一个命令 xff0c 今天我们继续学习此章节内容 xff1a 文件权限管理类命令 xff08 FILE PERMISSIONS xff09 xff0c 今天学习的是什么命令呢 xff0c 那就是chmod xff08
  • 部署node_exporter

    部署node exporter 1 下载node exporter安装包 xff0c 解压安装 span class token punctuation span root 64 bogon ljy span class token pun
  • 阿里 datax工具 impala 数据导入到mongo

    datax下载地址 1 解压datax包 2 具体安装测试datax工具可以在网上进行查询 其对jdk python maven 都有版本的要求 需确认当前系统中的版本 datax安装以及测试方式 3 确认安装无误后 xff0c 在安装目录
  • android开发Installed Build Tools revision 33.0.2 is corrupted. 问题解决方法

    方案一 xff1a 在你的 android sdk安卓目录中找到build tools目录中的d8 bat xff0c 将文件名修改为dx bat 找到build tools目录中的lib d8 jar xff0c 将文件名修改为dx ja
  • [ROS]三、建立工作空间

    系列文章目录 ROS 一 ROS的基本概念 ROS 二 命令与工具的使用 文章目录 系列文章目录前言一 工作空间二 创建步骤1 命令2 创建功能包 总结 前言 在前两个章节中我们已经学习了ros相关基本概念和基本工具的使用 xff0c 今天
  • ubuntu20.04配置vnc文件xorg.conf后重启输入开机密码后一直循环在登入界面的问题

    1 在配置vncserver的时候 xff0c 可能导致该用户不能正常登录桌面 2 问题现象 xff1a 正确输入密码 xff0c 系统无法进入桌面 xff0c 闪回到登录界面 3 在登录界面按ctrl 43 Alt 43 F4 xff08
  • Java序列化与反序列化详解

    面试官 兄弟 说说你对transient的理解和感悟 哪吒 what 还有感悟 先说结论 在序列化 反序列化时 被transient关键字修饰的成员属性变量不会被序列化 面试官 这就完了 哪吒 面试官明显不是很满意 这怎么能够 追根溯源 先
  • 导航软件哪个最好用?这里有3款最流行的导航软件

    导航软件哪个最好用 xff1f 在自助游越来越盛行的今天 xff0c 当你走到一个人生地不熟的环境 xff0c 随身携带一台GPS导航设备无疑能够为你的出行带来极大的便利 于是 xff0c 只要人们出行 xff0c 都离不开一个东西 导航
  • [软件工程] 面向对象设计

    面向对象设计 面向对象设计一 面向对象设计的准则 xff08 一 xff09 模块化 xff08 二 xff09 抽象 xff08 三 xff09 信息隐藏 xff08 四 xff09 弱耦合对象之间的耦合可分为两大类 xff1a 1 交互
  • 【持续更新】Python常用语法糖汇总

    1 if else简写 值1 if 条件 else 值2 的形式 如果 If 里的条件满足 xff0c 那么表达式的值为 值1 xff0c 否则为 值2 x y 61 1 10 z 61 x if x gt y else y print z
  • strtok函数 的原理及一个坑

    我们知道strtok是一个字符串切割函数 xff0c 先来了解一下它 原型 xff1a char strtok char str const char delim 功能 xff1a 分解字符串为一组字符串 参数说明 xff1a str为要分
  • 机载处理器(树莓派、Jetson TX2及个人pc等均适用)配置ROS+mavros开发环境 (Pixhawk飞控测试)

    需要事先准备的 xff1a 树莓派 xff1a xff08 1 xff09 一块装了Ubuntu16 04 mate系统的树莓派 xff08 我的是3代 xff0c 别的平台没有测试过 xff09 xff0c xff08 2 xff09 键