0、前言:

prometheus_V2推荐使用阿木的遥控器,但是家里遥控器实在太多了,所以就尝试修改一下prometheus里关于joystick的驱动,使其适配prometheus的控制;本篇文章以乐迪遥控器AT9S为例,

1、 遥控器端的设置

一般来说,四个摇杆的数据分别对应前4个通道,用来发送控制飞机的油门等等;
遥控器上还有一些拨杆数据,可以映射到除了前4个通道以外的通道上,用来发送解锁等命令等;
手头有rc遥控器的朋友一般都会设置,这里不再赘述:
下面是我的设置

2、在linux上安装驱动

在官网文档中,关于遥控器的使用,之前有介绍如何安装驱动的(现在找不到了,好像删除了,有知道的朋友可以留言补充一下)然后打开一个应用,插入遥控器之后,可以看到遥控器的各通道的实时数据;

注意:在设置完上述的遥控器通道之后,如果你的遥控器拨杆的数据在打开的驱动程序上没有任何反应(一般是摇杆有反应,但是拨杆没有反应),那就说明你的遥控器的拨杆无法接入linux,或者需要使用其他驱动,这里我暂时没找到;

实际测试,使用openTX系统的遥控器拨杆无法通过上述驱动接入,可能需要修改最底层驱动,乐迪遥控器和富斯是可以的;

3、查看遥控器的数据链

(1)打开ros节点

起飞降落demo对应脚本文件位于/Prometheus/Scripts/simulation/tutorial_demo/takeoff_land.sh

(2)打开rqt_graph

rqt_graph

先在左上角点击active选项,然后再把鼠标放到/uav1/prometheus/fack_rc_in;
可以看到该主题数据从joy_node发出,在/uav1_control_main1这个节点接收;

(3)查看/uav1/prometheus/fack_rc_in原始数据

rostopic echo /uav1/prometheus/fack_rc_in


此时波动遥控器上的摇杆数据,可以看到前四个通道的摇杆数据是在正常的响应,但是拨杆数据只有两个有反应;这是因为源码中选择的数据源不匹配,需要修改数据源,把正确的数据源映射上来;

4、关于拨杆通道的修改

找到joy_node.cpp这个文件,将上面joy_msg.buttons[4]的判断条件注释掉;
为什么注释掉呢,因为最上面的驱动里面只能获取乐迪遥控器的joy_msg.button[0]、joy_msg.button[1]、joy_msg.button[2]、joy_msg.button[3]。而后面的joy_msg.button[4]将不会获取到,所以这个joy_msg.button[4]的值不会改变,且刚好一直大于0,则导致button[3]的值的变化无法生效;所以这里我将其注释掉,忽略这里的判断;

如下图所示,后面的3个通道就映射了遥控器上面的3个拨杆数据了;

5、关于摇杆通道的修改

这里我说一下fack_rc_in.channels的映射,从0到3依次为
roll、pictch、thrust、yaw;
那个这个4个通道就需要对于遥控器设置的4个通道。
在调整的过程中,我是一边看rostopic echo /uav1/prometheus/fack_rc_in修改的;

6、关于功能的修改

通过拨杆的切换,可以发出解锁、进入RC控制模式、降落、kill等命令;
在文件rc_input.h 文件中;
通过判断各channl上一次的值与本次的值进行对比,满足一定的条件,就判断为发送那种命令;
在这里,我将通道7的值(实际是拨杆的通道6),作为判断land模式的条件;

7、结尾

本文主要讲述了,如何将一个RC遥控器的数据适配到Prometheus的控制中;最终实现一个2段开关控制解锁、一个3段开关控制进入遥控模式还是命令模式、一个2段开关控制进入降落模式;

【record】2、使用非官方遥控器适配prometheus的驱动修改相关推荐

  1. android遥控器管理,Android 遥控器适配

    在针对会议平板或大型显示设备(Android系统)中,大部分情况下需要通过鼠标.键盘或者遥控器来控制显示界面,以弥补因设备尺寸等因素导致的无法完全触摸整个设备屏幕的缺陷.因此,以上情况下的解决方案之一 ...

  2. amlogic红外遥控器适配

    amlogic红外遥控器适配 红外遥控根据遥控器的不同有多个config文件,文件位于\device\amlogic\p201_iptv中,如下图: 根据kernel日志的报错,找对应factory_ ...

  3. [笔记分享] [遥控器]Android红外及蓝牙遥控器适配流程

    在海思.Amlogic.Mstar平台上适配蓝牙或者红外遥控器,可以按照以下的步骤进行排查和修改. 1.前置工作 1.1 getevent -l 无论是蓝牙遥控器还是红外遥控器,都需要确定其使用的kl ...

  4. android手机红外代码HAL,Android 红外遥控器适配

    红外遥控器协议简介 目前有如下几类标准1. RC5 2. NEC 3. SAMSWNG 4. ...... 5. SIRC (Sony Infrared Remote Control) 目前RK平台只 ...

  5. android红外遥控器代码剖析,Android 红外遥控器适配

    红外遥控器协议简介 目前有如下几类标准 1. RC5 2. NEC 3. SAMSWNG 4. ...... 5. SIRC (Sony Infrared Remote Control) 目前RK平台 ...

  6. android遥控器适配

    前言android遥控器的适配主要是在用在开发网络机顶盒上,虽然现在出现了用手机去控制电视,但大部分仍然是使用便宜稳定的红外线遥控器. 步骤1遥控器以一定频率的形式发出红外线(超出人类可视范围,很多物 ...

  7. Android 9/10 Launcher3 适配出现的问题修改

    Android 10 将桌面设置图标长按出现的弹框中的电池去掉,去掉后如图: 这个主要是关于Android新功能Shortcuts的运用. Launcher3的流程: 在packages\apps\L ...

  8. 自定义UISearchBar 适配IOS6和IOS7 修改放大镜图标 修改光标颜色 修改边框颜色 placeholder颜色 设置文本框背景

    文章转自:http://blog.csdn.net/zhang_red/article/details/21447535 总结下常用的几点: 1.修改放大镜图标 [self setImage:[UII ...

  9. 在Linux中安装适配的显卡驱动

    文章目录 1.查找显卡驱动模块 2.搜索显卡驱动软件包 3.安装显卡驱动模块 1.查找显卡驱动模块 lshw -c video*-display description: VGA compatible ...

最新文章

  1. UFLDL:稀疏自编码器
  2. Linux基础命令---unzip
  3. Visual Paradigm 教程[UML]:如何在序列图中使用持续时间约束?
  4. for循环运行流程/步骤
  5. html post 发送两次,jQuery Ajax发送两次第二次提交,发送三次三次
  6. python没有库_python-嵌入没有标准库的Python3
  7. 语义分割之OCR的评判标准
  8. 如何访问个人邮箱中的未读邮件
  9. Photoshop 入门教程「9」如何增加画布的空间?
  10. ncverilog脚本_NC-Verilog控制命令
  11. CAJ转换有免费的工具吗?
  12. 操作系统原理实验——实验一 Linux基本操作
  13. 智芯传感推出高性能低功耗ZXP2绝压压力传感器
  14. python 拼接 遥感影像_Python干货 | 遥感影像拼接
  15. 微信小程序图片懒加载插件
  16. Linux软件管理与vim实验报告,LinuxVi编辑器的使用实验报告.doc
  17. TI电量计--BQ34Z100踩坑总结
  18. 献给减肥族的四例菜谱
  19. java数据库的量级_百度万亿量级数据库Tera架构应用、设计与实践全攻略
  20. 有限责任公司章程(中英文版)

热门文章

  1. 爬取虎牙主播,免费爬些想看的东西,咳咳(为什么要学python?)
  2. iPhone 12出现应用卡死解决方法
  3. Spring事务注解配置
  4. 一德大脑屋国学课程加盟四大特色
  5. PHP trim函数详解
  6. 将过账期间变式分配给公司代码
  7. 关于大数据、云计算、物联网的概述
  8. [已解决]iPhone 中国移动 开机短信 ‘尊敬的用户,您发送的服务代码或指令不正确,请确认后重新发送‘
  9. 网络爬虫CSS选择器详细讲解
  10. 制作仿“QQ秀”的虚拟形象