实现Pixhawk 的PX4系统终端

2023-05-16

版本说明:

1. 自驾仪:Holybro的Pixhawk 4。

2. PX4版本:1.13

3. 宿主机:Thinkpad笔记本+Ubuntu 20.04.2 LTS

参考:PX4 Consoles/Shells | PX4 User Guide

一. 制作硬件接口

这个接口就是3根线,将PC机的USB串口与Pixhawk的串口(也叫Debug port)连接起来。

1. 了解Pixhawk 4对FMU Debug接口和IO Debug接口的定义

PIXHAWK 4有两个Debug Port,一个是FMU Debug Port,另一个是IO Debug Port。两个口都提供了Pixhawk 标准6-Pin SH Debug Port。(6针), 系统终端使用IO Debug Port.

2. 将Pixhawk 4的IO Debug Port与宿主机的USB口连接起来

为了实现系统终端,宿主机的USB需要连接在一个FTDI转换器上(FTDI是将USB口转换成串口的器件),在购买的Pixhawk 4的线材包中找出Debug Port的适配口线材(见下图),这个线材是用6根线连接两个适配口,可从中间剪断,一个用来做系统终端接口,另一个可用来做J-Link接口。

在6根线中选取3根线与FTDI的针脚连接起来,3根线怎么选,见如下表格:

IO Debug Port

FTDI

1 Vtref

-

2 Console TX

5

3 Console RX

4

4 SWDIO

-

5 SWDCLK

-

6 GND

1

制作完成的3根线将FTDI(右边连接FTDI的针脚用了杜邦头)与IO Debug Port的适配口(左边白色的)连接起来,见下图。

 二. 软件部分

1. 在Ubuntu端安装screen软件:

sudo apt-get install screen

2. 连接接口,启动Pixhawk

将接口的一端与PC机连接,另一端与Pixhawk 4的IO Debug口连接,然后启动Pixhawk。

3. 运行screen命令 

打开一个linux终端,运行下面命令  screen /dev/ttyXXX BAUDRATE 8N1

这里ttyxxx选择ttyUSB0或者ttyACM1. BAUDRATE(波特率)选择57600,比如:

screen /dev/ttyUSB0 57600 8N1

此时,在screen界面中出现"nsh>"提示符,可运行nuttx shell命令。

4. 查看PX4的启动脚本执行情况

通过Pixhawk的系统终端可以查看PX4在Pixhawk上的启动脚本的执行情况,这个是唯一的办法,mavlink的终端做不到这一点。

PX4在Pixhawk上的启动脚本文件rcS在下面目录中:
PX4-Autopilot/ROMFS/px4fmu_common/init.d/rcS

查看rcS启动脚本的执行情况,执行上节screen命令,然后拔掉连接Pixhawk的USB连接线,再接上,你会看到PX4在Pixhawk上的启动序列信息,这些启动信息是比较简单的,如下图:

如果需要查看详细的启动信息,需要:

  • 将PX4-Autopilot/ROMFS/px4fmu_common/init.d中启动文件rcS 中set -x这条指令设置好(把注释去掉)
  • 因为输出的启动序列比较长,需要把screen显示的结果输出到一个文件中,所以执行的命令改为:sceen -L /dev/ttyXXX BAUDRATE 8N1

这样,拔掉连接Pixhawk的USB连线,再接上,screen命令的输出除了出现在屏幕上同时也会被装进文件screenlog.0中,在这个文件中你可看到PX4完整的启动序列执行情况。

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

实现Pixhawk 的PX4系统终端 的相关文章

  • ubuntu 安装PHP+Apache

    安装Apache sudo apt install apache2 安装PHP 7 4 Ubuntu 20 04默认安装的版本 sudo apt install php libapache2 mod php 安装完成重启Apache服务 s
  • ASCII码判断大小

    ASCII码的值大小排列 xff1a a z gt A Z gt 0 9 在小写字母中z最大 xff0c a最小 在大写字母中Z最大 xff0c A最小 在0到9中 9最大 xff0c 0最小 故选D选项
  • 二进制运算相关的题目

    将二进制数01011010 转换成十进制数 xff0c 然后将十进制数 x 2 得到的值将其化为二进制数 01011010 十进制数为90 180 二进制数为10110100 故选C选项
  • 重装Ubuntu系统及系列软件安装

    重装Ubuntu系统及系列软件安装 1 安装ubuntu20 04 03系统下载Ubuntu20 04 03系统更换系统apt的源 2 CUDA和cudnn安装下载CUDA安装包并安装 3 pycharm的安装 4 conda的安装 5 兼
  • Qt中UI对象只能在主线程中操作,那如何在子线程中操作UI呢

    为什么在Qt中UI对象只能在主线程中操作 在Qt中 xff0c UI对象只能在主线程中操作 xff0c 因为Qt采用了事件循环机制 xff0c UI事件 xff08 如鼠标点击 键盘输入 xff09 都是在主线程中处理的 如果在子线程中直接
  • python学习记录

    python学习记录 python学习python运行顺序类的使用模块导入import不同级模块导入模块导入的重名问题 xff1a 注意的点 修饰器 正则表达式 python学习 本文是关于python的学习记录文章 比较基本 比较潦草 p
  • 案例二:基于MapReduce分词统计

    案例二 xff1a 基于MapReduce的分词统计 一 准备条件 xff1a 1 数据源 xff1a 六个 txt 诗经文件 2 Hadoop集群环境 五 功能实现 前提准备 xff1a 引入类库将Hadoop包解压 xff0c 并进入相
  • RHEL8.3 配置VNC 远程

    一 安装VNC 选取比较流行的tigervnc dnf install tigervnc span class token operator span server tigervnc span class token operator sp
  • 一次使用Dockerfile构建tomcat镜像时遇到的Linux内核问题

    当前版本 span class token punctuation span root 64 zyrox test alpine images span class token punctuation span span class tok
  • Java中Lambda表达式的使用

    Lambda表达式是Java SE 8中一个重要的新特性 lambda表达式允许你通过表达式来代替功能接口 lambda表达式就和方法一样 它提供了一个正常的参数列表和一个使用这些参数的主体 Lambda表达式还增强了集合库 Java SE
  • 用mscomm控件编写串口通信出现error reading comm device错误-已解决

    一 问题描述 用mscomm控件编写串口通信过程中 xff0c 在消息响应函数OnComm函数下接受串口发送过来的数据时 xff0c 在get Input 函数会出现error reading comm devece 错误 具体代码如下 x
  • 使用Spring Security后,页面iframe加载不出来

    错误 Refused to display http localhost 8080 console in a frame because it set X Frame Options to deny 解决办法 授权的时候开启iframe的加
  • 软件工程笔记八__面向对象

    1 面向对象方法四要点 xff08 1 xff09 对象 xff1a 客观世界有各种对象组成 xff0c 任何事物都是对象 xff0c 比如一支笔 xff0c 一张纸 xff0c 复杂的对象可由简单的对象以某种方式组合而成 对象分解取代功能
  • C++如何获取当前时间

    导读 文章首先介绍了使用C库的接口来获取当前时间的方法 xff0c 然后介绍了使用C 43 43 11标准库中的函数来获取当前时间的方法 此外 xff0c 文章还介绍了使用函数strftime来格式化时间字符串的方法 xff0c 并列举了常
  • Java笔记(一):volatile、synchronized关键字

    volatile关键字 volatile字面意思为易变的 不稳定的 xff0c 事实上也正是如此 这个关键字的作用就是告诉编译器 xff0c 只要是被此关键字修饰的变量都是易变的 xff0c 不稳定的 主要是volatile所修饰的变量是直
  • 读取cv.VideoCapture(0)的frame帧转变为PIL.Image图片格式时遇到的坑

    在项目中遇到一个问题是想将VideoCapture 读到的frame图片转变成PIL的Image图片格式 坑1 xff1a BGR还是RGB模式 xff1f 兴冲冲地在在网上找到一段代码 xff0c 将opencv中的imread 图像转成
  • linux命令记录

    linux三剑客 xff1a grep xff0c awk xff0c sed 1 grep命令 2 awk命令 linux中的awk命令是一种处理文本的工具 AWK命名来源于三位创始人的家族名称首字母 可以分行对文本进行处理 其命令格式如
  • [joysticker]使用Ubuntu读取USB手柄/方向盘的输出控制

    摘要 xff1a 在淘宝上买到的游戏手柄 USB卖家只给了Windows下的驱动 xff0c 本来以为Ubuntu下没有驱动 xff0c 没想到网上早已经有人用cpp开发出了USB手柄的驱动 xff0c 搜索很多博客的方法终于从手柄拿到数据
  • [numpy问题]The truth value of an array with more than one element is ambiguous.

    问题描述 xff1a 在进行Hough圆变换时 xff0c 需要输出一个圆的坐标 xff1a circles 61 cv2 span class hljs preprocessor HoughCircles span canny cv2 s
  • [PyQt5]点击主窗口弹出另一个窗口

    1 先使用Qt designer设计两个窗口 xff0c 一个是主窗口 xff0c 一个是子窗口 其中主窗口是新建 Main Window 子窗口是Dialog窗体 两个窗口不能是同一类型 否则会崩溃 并保存为EyeTracking mai

随机推荐