无人机APM学习(三):RC遥控输入值获取

RC模块APM官方文档也有相关介绍:RC Input and Output — Dev documentation (ardupilot.org)

但其实用到的主要是 RC_Channel 类和RC_Channels类

我所使用的是四旋翼无人机,所以主要初始化与起作用的代码是在Copter类中,找到读取遥控器相关的函数:

跳转后:

再次跳转:

最后可以看到:

radio_in参数即为ch_in对应的通道值,有一个注意点,往下翻

可以通过无人机APM学习(二):使用串口调试、接收、发送消息-CSDN博客这个章节所使用到的串口信息,在该函数下利用串口输出拿到通道值的数据

本人的开发需根据多个通道值进行判断,但此函数只能拿到单一的通道值,并且每次循环都会进行读取覆盖,无法满足开发需求,故退回至上一层:

可以看到channel(i)返回的是RC_Channel类,在该类中的get_radio_in()方法可以拿到该通道的通道值:

故在这一层中,可以通过get方法,拿到多个通道的通道值,进行二次开发:

 注意:

 radio_in并不是最终控制无人机的数值,而是control_in:

经过pwm_to_range()和pwm_to_angle()函数的转换,radio_in最终转换为control_in进而控制无人机,若开发中需要测试通道值,可以将红框部分代码注释,这样操作遥控时既能拿到遥控输入的数据,又不会造成无人机的启动。

 

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值