【record】2、使用非官方遥控器适配prometheus的驱动修改
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的驱动修改相关推荐
- android遥控器管理,Android 遥控器适配
在针对会议平板或大型显示设备(Android系统)中,大部分情况下需要通过鼠标.键盘或者遥控器来控制显示界面,以弥补因设备尺寸等因素导致的无法完全触摸整个设备屏幕的缺陷.因此,以上情况下的解决方案之一 ...
- amlogic红外遥控器适配
amlogic红外遥控器适配 红外遥控根据遥控器的不同有多个config文件,文件位于\device\amlogic\p201_iptv中,如下图: 根据kernel日志的报错,找对应factory_ ...
- [笔记分享] [遥控器]Android红外及蓝牙遥控器适配流程
在海思.Amlogic.Mstar平台上适配蓝牙或者红外遥控器,可以按照以下的步骤进行排查和修改. 1.前置工作 1.1 getevent -l 无论是蓝牙遥控器还是红外遥控器,都需要确定其使用的kl ...
- android手机红外代码HAL,Android 红外遥控器适配
红外遥控器协议简介 目前有如下几类标准1. RC5 2. NEC 3. SAMSWNG 4. ...... 5. SIRC (Sony Infrared Remote Control) 目前RK平台只 ...
- android红外遥控器代码剖析,Android 红外遥控器适配
红外遥控器协议简介 目前有如下几类标准 1. RC5 2. NEC 3. SAMSWNG 4. ...... 5. SIRC (Sony Infrared Remote Control) 目前RK平台 ...
- android遥控器适配
前言android遥控器的适配主要是在用在开发网络机顶盒上,虽然现在出现了用手机去控制电视,但大部分仍然是使用便宜稳定的红外线遥控器. 步骤1遥控器以一定频率的形式发出红外线(超出人类可视范围,很多物 ...
- Android 9/10 Launcher3 适配出现的问题修改
Android 10 将桌面设置图标长按出现的弹框中的电池去掉,去掉后如图: 这个主要是关于Android新功能Shortcuts的运用. Launcher3的流程: 在packages\apps\L ...
- 自定义UISearchBar 适配IOS6和IOS7 修改放大镜图标 修改光标颜色 修改边框颜色 placeholder颜色 设置文本框背景
文章转自:http://blog.csdn.net/zhang_red/article/details/21447535 总结下常用的几点: 1.修改放大镜图标 [self setImage:[UII ...
- 在Linux中安装适配的显卡驱动
文章目录 1.查找显卡驱动模块 2.搜索显卡驱动软件包 3.安装显卡驱动模块 1.查找显卡驱动模块 lshw -c video*-display description: VGA compatible ...
最新文章
- UFLDL:稀疏自编码器
- Linux基础命令---unzip
- Visual Paradigm 教程[UML]:如何在序列图中使用持续时间约束?
- for循环运行流程/步骤
- html post 发送两次,jQuery Ajax发送两次第二次提交,发送三次三次
- python没有库_python-嵌入没有标准库的Python3
- 语义分割之OCR的评判标准
- 如何访问个人邮箱中的未读邮件
- Photoshop 入门教程「9」如何增加画布的空间?
- ncverilog脚本_NC-Verilog控制命令
- CAJ转换有免费的工具吗?
- 操作系统原理实验——实验一 Linux基本操作
- 智芯传感推出高性能低功耗ZXP2绝压压力传感器
- python 拼接 遥感影像_Python干货 | 遥感影像拼接
- 微信小程序图片懒加载插件
- Linux软件管理与vim实验报告,LinuxVi编辑器的使用实验报告.doc
- TI电量计--BQ34Z100踩坑总结
- 献给减肥族的四例菜谱
- java数据库的量级_百度万亿量级数据库Tera架构应用、设计与实践全攻略
- 有限责任公司章程(中英文版)