pixhawk自学笔记之px4遥控信号部分

来源:互联网 发布:java读取dwg文件 编辑:程序博客网 时间:2024/05/27 09:48

rc信号由src/drivers/px4io/px4io.cpp发布,频率是50HZ。(由宏定义IO_POLL_INTERVAL限制)

我们追踪这个字段会发现,对电调的PWM的输出也是限制在这个值。

我们发现

rc_input_valuesrc_val;
rc的载体是这个结构体。

我们在sensors.cpp中的rc_poll()(这个函数用来收集和发布RC信号)函数中发现它的运作流程。

在这个函数里面我们会判断signal_lost和rc_failsafe,但是无论信号的质量怎么样,rc_channels主题总是会被公布的。

而且本信息存放在归一化的通道数值,限制在-1---1之间。




从这段代码加注释中我们可以知道,去除死区后上下半截各自归一化。死区内则为0。

如果信号正常,会广播struct manual_control_setpoints_s为载体的manual_control_setpoint。还会复制到actuatou_controls_3中。


在mavlink模块中存在两种RC包,分别为RC_CHANNELS_RAW以及RC_CHANNELS.

在RC_CHANNELS_RAW中,消息载体是mavlink_rc_channels_raw_t,我们发现这个结构体只能装8路信号,然后有一位port用来指示这8路走哪个端口。当我们遇到大于8路信号的遥控器就要用port来复用指示低8路,中8路或者高8路。


其实RC_CHANNELS_RAW基本不会用到,发送频率又跟RC_CHANNELS绑定,可以尝试注释掉。










0 0
原创粉丝点击