【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段开关控制进入降落模式;

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Prometheus是一个开源的系统监控和告警系统。你可以使用Docker来安装和运行Prometheus。首先,你需要拉取最新的Prometheus镜像,可以使用以下命令:[1] ``` docker pull prom/prometheus:latest ``` 然后,创建一个目录来存储Prometheus的配置文件,可以使用以下命令:[1] ``` mkdir -p ~/dockerdata/prometheus ``` 接下来,你需要编辑Prometheus的配置文件prometheus.yml,可以使用以下命令:[1] ``` vim ~/dockerdata/prometheus/prometheus.yml ``` 在配置文件中,你可以定义监控的目标和规则。配置文件的详细解释可以参考官方文档。[2] 完成配置后,你可以启动Prometheus容器,可以使用以下命令:[2] ``` docker run -d --name prometheus -p 9090:9090 \ -v ~/dockerdata/prometheus:/etc/prometheus \ -v ~/dockerdata/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus:latest ``` 你可以使用以下命令查看Prometheus容器的日志:[2] ``` docker logs prometheus ``` 通过访问http://127.0.0.1:9090,你可以访问Prometheus的原生Web界面。你可以在该界面上查看状态信息和配置详解。[2] 如果你想使用docker-compose来管理Prometheus容器,你可以创建一个docker-compose.yaml文件,并添加以下内容:[3] ``` version: '3' services: prometheus: image: prom/prometheus container_name: prometheus volumes: - "/home/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml" - "/etc/localtime:/etc/localtime" ports: - "9090:9090" ``` 然后,你可以使用以下命令启动Prometheus容器:[3] ``` docker-compose up -d ``` 这样,你就可以使用Prometheus进行系统监控和告警了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值