# 模块参考:系统

# 电池模拟器

资料来源 模块/模拟/电池模拟器 (打开新窗口)

# 说明

# 使用方法

battery_simulator <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 电池状态

资料来源 模块/电池状态 (打开新窗口)

# 说明

提供的功能包括

  • 读取 ADC 驱动程序的输出(通过 ioctl 接口)并发布 电池状态.

# 实施情况

它在自己的主题中运行,并对当前选定的陀螺仪主题进行投票。

# 使用方法

battery_status <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 摄像机反馈

资料来源 模块/摄像机反馈 (打开新窗口)

# 说明

# 使用方法

camera_feedback <命令> [参数...] 命令:启动 停止 状态 打印状态 信息

# 司令员

资料来源 模块/指挥官 (打开新窗口)

# 说明

指令模块包含用于模式切换和故障安全行为的状态机。

# 使用方法

commander <command> [arguments...命令: start [-h] 启用 HIL 模式 calibrate 运行传感器校准 mag|baro|accel|gyro|level|esc|airspeed 校准类型 quick 快速校准(仅加速,不推荐) check 运行飞行前检查 arm [-f] 强制上膛(不运行飞行前检查) disarm [-f] 强制撤膛(空中撤膛) takeoff land transition VTOL transition mode 更改飞行模式 manual|acro|offboard|stabilized|altctl|posctl|auto:飞行模式配对 锁定 on|off 打开或关闭锁定 set_ekf_origin lat, lon, alt 初始纬度、经度、高度 lat|lon|alt 初始纬度、经度、高度 poweroff 关闭飞行器(如果支持) stop status 打印状态信息

# 数据管理员

资料来源 模块/数据管理员 (打开新窗口)

# 说明

模块,通过 C API 以简单数据库的形式为系统其他部分提供持久存储。支持多个后端:

  • 文件(例如 SD 卡上的文件)
  • 内存(这显然不是持久性的)

它用于存储不同类型的结构化数据:任务航点、任务状态和地理围栏多边形。每种类型都有特定的类型和固定的最大存储量,因此可以进行快速随机存取。

# 实施情况

读写单个项目总是原子的。如果需要以原子方式读取/修改多个项目,则通过 dm_lock.

dm_key_fence_pointsdm_key_safe_points 项:第一个数据元素是 任务统计条目 结构体,其中存储了这些类型的项目数量。这些项目总是在一个事务(来自 mavlink 任务管理器)中原子式更新。在此期间,导航仪将尝试获取地理围栏项目锁,但会失败,并且不会检查是否有违反地理围栏的行为。

# 使用方法

dataman <command> [arguments...] 命令: start [-f <val>] 存储文件值:<file> [-r] 使用 RAM 后端(非持久) 选项 -f 和 -r 是互斥的。如果未指定任何选项,则使用文件 "dataman" stop status 打印状态信息

# dmesg

资料来源 systemcmds/dmesg (打开新窗口)

# 说明

显示启动控制台信息的命令行工具。请注意,NuttX 工作队列和系统日志的输出不会被捕获。

# 实例

继续在后台打印所有信息:

dmesg -f &;

# 使用方法

dmesg <command> [arguments...] 命令:[跟随:等待新信息

# 电池

资料来源 模块/电池 (打开新窗口)

# 说明

该功能使用来自电调状态的信息,并将其发布为电池状态。

# 使用方法

esc_battery <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 陀螺仪校准

资料来源 modules/gyro_calibration (打开新窗口)

# 说明

简单的在线陀螺仪校准

# 使用方法

陀螺仪校准 <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# gyro_fft

资料来源 modules/gyro_fft (打开新窗口)

# 说明

# 使用方法

gyro_fft <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 加热

资料来源 司机/加热器 (打开新窗口)

# 说明

在 LP 工作队列中定期运行的后台程序,用于将 IMU 温度调节到设定值。

可通过设置 SENS_EN_THERMAL 或 CLI 在启动时从启动脚本中启动该任务。

# 使用方法

加热器 <command> [参数...] 命令: 启动 停止 状态 打印状态信息

# 土地探测器

资料来源 modules/land_detector (打开新窗口)

# 说明

模块检测飞行器的自由落体和着陆状态,并发布 载具检测到土地 主题。每种飞行器(多旋翼飞行器、固定翼飞行器、vtol 飞行器......)都有自己的算法,考虑到各种状态,如指令推力、上膛状态和飞行器运动。

# 实施情况

每种类型都在自己的类中实现,并有一个共同的基类。基类保持一种状态(着陆、可能着陆、地面接触)。每个可能的状态都在派生类中实现。每个内部状态的滞后性和固定优先级决定了实际的降落检测器状态。

# 多旋翼降落检测器

地面接触GROUND_CONTACT_TRIGGER_TIME_US :推力设定点和 Z 方向的速度必须低于 GROUND_CONTACT_TRIGGER_TIME_US 的时间阈值。检测到地面接触时,位置控制器将关闭机体 x 和 y 方向的推力设定点。

可能着陆触发时间由 MAYBE_LAND_TRIGGER_TIME 确定。当检测到 maybe_landed 时,位置控制器会将推力设定值设为零。

上岸在 LAND_DETECTOR_TRIGGER_TIME_US 时,它要求 maybe_landed 为 true。

该模块在 HP 工作队列中定期运行。

# 使用方法

land_detector <command> [arguments...] 命令: start 启动后台任务 fixedwing|multiopter|vtol|rover|airship 选择载具类型 stop status 打印状态信息

# 载入时间

资料来源 modules/load_mon (打开新窗口)

# 说明

在低优先级工作队列上定期运行的后台进程,用于计算 CPU 负载和 RAM 使用情况,并发布 cpuload 主题。

在 NuttX 上,它还会检查每个进程的堆栈使用情况,如果低于 300 字节,就会输出警告,该警告也会出现在日志文件中。

# 使用方法

load_mon <command> [arguments...] 命令: start 启动后台任务 stop status 打印状态信息

# 记录仪

资料来源 模块/日志 (打开新窗口)

# 说明

系统日志记录器可记录一组可配置的 uORB 主题和系统 printf 信息 (PX4_WARNPX4_ERR)转换为 ULog 文件。这些文件可用于系统和飞行性能评估、调整、回放和碰撞分析。

它支持 2 个后端:

  • 文件:将 ULog 文件写入文件系统(SD 卡)
  • MAVLink:通过 MAVLink 将 ULog 数据流传输到客户端(客户端必须支持此功能)

两个后端可同时启用和使用。

文件后台支持两种类型的日志文件:完整日志(普通日志)和任务日志。任务日志是一个缩小的 ulog 文件,可用于地理标记或载具管理。它可以通过 SDLOG_MISSION 参数启用和配置。正常日志始终是任务日志的超集。

# 实施情况

执行时使用两个线程:

  • 主线程,以固定速率运行(如果使用 -p 启动,则对主题进行轮询)并检查数据更新
  • 写入器线程,向文件写入数据

在两者之间有一个可配置大小的写缓冲区(另一个固定大小的缓冲区用于任务日志)。缓冲区应较大,以避免掉线。

# 实例

典型用法是立即开始记录:

logger start -e -t

或者,如果已经在运行:

记录仪开启

# 使用方法

logger <command> [arguments...命令: start [-m <val>] 后端模式值:file|mavlink|all,默认:all [-x] 通过 Aux1 RC 通道启用/禁用日志记录 [-a] 第一次上膛时记录日志,直至关机 [-e] 启动后立即启用日志记录,直至撤膛(否则仅在上膛时) [-f] 记录日志,直至关机(暗示 -e) [-t] 使用日期/时间命名日志目录和文件 [-r <val>] 记录速率,单位为 Hz,0 表示无限制速率,默认为 280 [-b <val>] 记录速率,单位为 Hz,0 表示无限制速率:280 [-b <val>] 日志缓冲区大小(单位:KiB) 默认值:12 [-p <val>] 在主题上轮询,而不是以固定速率运行(如果设置此值,则忽略日志速率和主题间隔) 值:<topic_name> [-c <val>] 日志速率因子(越高越快) 默认值:1.0 on 立即开始记录,覆盖上膛(记录仪必须运行) off 立即停止记录,覆盖上膛(记录仪必须运行) trigger_watchdog 手动触发看门狗 now stop status 打印状态信息

# 磁偏差估算器

资料来源 modules/mag_bias_estimator (打开新窗口)

# 说明

在线磁强计偏差估算器

# 使用方法

mag_bias_estimator <命令> [参数...] 命令: start 启动后台任务 stop status 打印状态信息

# 手动控制

资料来源 模块/手动控制 (打开新窗口)

# 说明

消耗手动控制输入的模块发布一个手动控制设定点。

# 使用方法

manual_control <命令> [参数...] 命令: 启动 停止 状态 打印状态 信息

# 网民

资料来源 systemcmds/netman (打开新窗口)

# 说明

网络配置管理器将网络设置保存在非易失性存储器中。启动时 更新 选项将被运行。如果网络配置不存在。默认设置将保存在非易失性存储器中,并重新启动系统。

# 更新

网民更新 会自动运行 启动脚本.运行时 更新 选项将检查是否存在 net.cfg 在 SD 卡根目录下。然后将网络设置从 net.cfg 删除非易失性内存中的文件并重启系统。

# 节省

节省 选项会将设置从非易失性存储器保存到名为 net.cfg 在 SD 卡文件系统上进行编辑。用它来编辑设置。保存 "不会立即应用网络设置;用户必须重启飞行算法池。相比之下 更新 命令由启动脚本运行,将设置提交到非易失性存储器中,并重启飞行控制器(控制器将使用新设置)。

# 展览

展览 选项将在 net.cfg 到控制台。

# 实例

$ netman save # 将参数保存到 SD 卡。$ netman show # 显示当前设置。$ netman update -i eth0 # 进行更新

# 使用方法

netman <command> [arguments...] 命令: show 向控制台显示当前的持续网络设置。 update 检查 SD 卡中的 net.cfg,更新网络持续网络设置。 save 将当前网络参数保存到 SD 卡中。[-i <val>] 设置接口名称 默认:eth0

# pwm_input

资料来源 驱动程序/pwm_输入 (打开新窗口)

# 说明

通过定时器捕获 ISR 测量 AUX5(或 MAIN5)上的 PWM 输入,并通过 uORB "pwm_input "信息发布。

# 使用方法

pwm_input <command> [arguments...] 命令: 启动 停止 状态 打印状态信息

# rc_update

资料来源 modules/rc_update (打开新窗口)

# 说明

rc_update 模块处理 RC 通道映射:读取原始输入通道 (input_rc),然后应用校准,将 RC 通道映射到配置的通道 & 模式开关,然后发布为 rc_channels手动控制输入.

# 实施情况

为减少控制延迟,该模块安排在 input_rc 出版物上发布。

# 使用方法

rc_update <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 重放

资料来源 模块/重放 (打开新窗口)

# 说明

该模块用于重放 ULog 文件。

有 2 个环境变量用于配置: 重放必须设置为 ULog 文件名,即要重放的日志文件。第二个是模式,通过 重放模式:

  • replay_mode=ekf2特定的 EKF2 重放模式。它只能与 EKF2 模块一起使用,但可以让重放尽可能快地运行。
  • 通用其他方式:可用于重放任何模块,但重放速度与记录日志的速度相同。

该模块通常与 uORB 发布规则一起使用,以指定哪些信息应被重放。重放模块只会发布日志中的所有信息。它还会应用日志中的参数。

重放程序记录在 全系统重播 (打开新窗口) page.

# 使用方法

命令: start 开始重放,使用 ENV 变量 "replay "中的日志文件 trystart 与 "start "相同,但如果没有给出日志文件,则静默退出 tryapplyparams 尝试应用日志文件中的参数 stop status 打印状态信息

# 发送事件

资料来源 模块/事件 (打开新窗口)

# 说明

在 LP 工作队列上定期运行的后台进程,用于执行内务管理任务。目前它只负责 RC 丢失时的音调警报。

任务可通过 CLI 或 uORB 主题(MAVLink 的 vehicle_command 等)启动。

# 使用方法

send_event <command> [arguments...] 命令: start 启动后台任务 stop status 打印状态信息

# 模拟传感器

资料来源 modules/simulation/sensor_airspeed_sim (打开新窗口)

# 说明

# 使用方法

sensor_arispeed_sim <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 传感器_巴罗_模拟

资料来源 模块/模拟/传感器_巴罗_模拟 (打开新窗口)

# 说明

# 使用方法

sensor_baro_sim <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 传感器_gps_sim

资料来源 modules/simulation/sensor_gps_sim (打开新窗口)

# 说明

# 使用方法

sensor_gps_sim <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 传感器磁模拟

资料来源 模块/模拟/传感器磁模拟 (打开新窗口)

# 说明

# 使用方法

sensor_mag_sim <命令> [参数...] 命令: 启动 停止 状态 打印状态信息

# 传感器

资料来源 模块/传感器 (打开新窗口)

# 说明

传感器模块是整个系统的核心。它从驱动程序中获取底层输出,将其转化为更有用的形式,并发布给系统的其他部分。

提供的功能包括

  • 读取传感器驱动器的输出 (传感器等)。如果有多个相同类型,则进行表决和故障切换处理。然后应用电路板旋转和温度校准(如果启用)。最后发布数据;其中一个主题是 传感器组合系统的许多部分都在使用。
  • 确保传感器驱动程序在参数更改或启动时获得更新的校准参数(标度&;偏移)。传感器驱动程序使用 ioctl 接口进行参数更新。要使其正常工作,传感器驱动程序必须在下列情况下已在运行 传感器 启动。
  • 进行传感器一致性检查并发布 传感器状态 主题。

# 实施情况

它在自己的主题中运行,并对当前选定的陀螺仪主题进行投票。

# 使用方法

传感器 <command> [参数...] 命令: start [-h] 启动 HIL 模式 stop status 打印状态信息

# tattu_can

资料来源 驱动程序/tattu_can (打开新窗口)

# 说明

用于从 Tattu 12S 16000mAh 智能电池读取数据的驱动程序。

# 使用方法

tattu_can <命令> [参数...] 命令: 启动 停止 状态 打印状态 信息

# 温度补偿

资料来源 模块/温度补偿 (打开新窗口)

# 说明

温度补偿模块允许对系统中的所有陀螺仪、加速度计和气压计进行温度补偿。该模块监控来自传感器的数据,并在检测到温度变化时更新相关的传感器校正主题。也可将模块配置为在下次启动时执行系数计算例程,以便在载具进行温度循环时计算热标定系数。

# 使用方法

temperature_compensation <command>[参数...] 命令: start 启动模块,监控传感器并更新 sensor_correction 主题 calibrate 运行温度校准过程 [-g] 校准陀螺仪 [-a] 校准加速度计 [-b] 校准气压计(如果未给出任何参数,则将校准所有参数) stop status 打印状态信息

# 调整参数控制

资料来源 systemcmds/tune_control (打开新窗口)

# 说明

控制 & 的命令行工具;测试(外部)调整参数器。

调整参数用于提供声音通知和警告(例如当系统启动、位置锁定等)。该工具要求运行的驱动程序能够处理 tune_control uorb 主题。

有关调整参数格式和预定义系统调整参数的信息,请访问:https://github.com/PX4/PX4-Autopilot/blob/release/1.14/src/lib/tunes/tune_definition.desc。

# 实例

播放系统曲调 2:

tune_control play -t 2

# 使用方法

tune_control <command> [arguments...] 命令: play 播放系统音调或单个音符。error 播放错误的曲调 [-t <val>] 播放预定义的系统曲调 默认值: 1 [-f <val>] 以 Hz 为单位的音符频率(0-22kHz) [-d <val>] 以 us 为单位的音符持续时间 [-s <val>] 音符的音量(响度)级别(0-100) 默认值: 40 [-m <val>] 以字符串形式表示的旋律 值: <string> - 例如:"MFT200e8a8a"。例如:"MFT200e8a8a" libtest 测试库 stop 停止播放(用于重复播放曲调)

# uxrce_dds_client

资料来源 modules/uxrce_dds_client (打开新窗口)

# 说明

UXRCE-DDS 客户端,用于通过串行或 UDP 与代理进行 uORB 主题通信。

# 实例

uxrce_dds_client start -t serial -d /dev/ttyS3 -b 921600 uxrce_dds_client start -t udp -h 127.0.0.1 -p 15555

# 使用方法

uxrce_dds_client <command> [arguments...] 命令:start [-t <val>] 传输协议值:serial|udp,默认值:udp [-d <val>] 串行设备值:<file:dev> [-b <val>] 波特率(也可以是 p:<param_name>)默认值:0 [-h <val>] 代理 IP。如果未提供,默认为 UXRCE_DDS_AG_IP 值:<IP> [-p <val>] 代理监听端口。如果未提供,默认为 UXRCE_DDS_PRT [-l] 限制为 localhost(与 ROS_LOCALHOST_ONLY=1 结合使用) [-c] 使用自定义参与者配置(profile_name="px4_participant") [-n <val>] 客户端 DDS 命名空间 stop status 打印状态信息

# 工作队列

资料来源 systemcmds/work_queue (打开新窗口)

# 说明

显示工作队列状态的命令行工具。

# 使用方法

work_queue <命令> [参数...] 命令: 启动 停止 状态 打印状态 信息