776

阿木币

1

精华

1376 小时

在线时间

管理员

Rank: 9Rank: 9Rank: 9

发表于 2022-2-23 17:05:47 1438 浏览 0 回复

[杂言讨论] 技术分享 | 遥控器控制(Joystick)

一、遥控器控制

在真实飞行过程中,我们使用真实的遥控器作为控制无人机的主要操作来源,遥控器始终拥有最高的权限,精湛的遥控器操作手法可以保证无人机安稳着陆,但对于很多非专业人士来说,遥控的操作技巧是需要不断练习的。

我们始终强调一个观念,仿真与实机结合,这样更加符合开发流程,在以往的仿真中,我们通过键盘控制无人机飞行,并不能真实的反应出实机飞行时该怎么操作,也是基于现在存在的种种问题,为了让仿真与实机结合的更加完美,在Prometheus中增加遥控器控制方式,与真机使用对应起来,更加容易上手和进行二次开发。

1 、真实飞机中的遥控器

下面是真实飞机中的遥控器的摇杆响应值,由 mavros/rc/in 话题组成。

mavros遥控器消息.png

2 、仿真飞机中的遥控器摇杆

为了与真实飞机保持一致,仿真中的遥控器摇杆操作设计与真实飞机保持一致,采用 mavros/rc/override。

RC Override : 通道覆盖,又名RC覆盖,主要用于模拟用户实时实现遥控器操纵杆的控制,通过使用适当的mavlink命令,如DO_SET_SERVO/DO_SET_RELAY,可以设置期望的位置或者方向以及速度,它可以覆盖掉原有的遥控器数据值。

使用 mavros/rc/override 话题,重载使用其中的前八位通道。

注意: 前八位通道,默认有数值情况下属于覆盖遥控器通道数据,数值为0表示释放回RC控制。

节点名称:joy_translator

订阅:/joy

发布:mavros/rc/override

代码存在位置:Prometheus/Simulator/gazebo_simulator/py_nodes/joystick_translator.py

二、如何使用

在此使用的遥控器为 FS-I6S型号

1、Linux驱动

(1)Linux支持Joy遥控器操纵杆,有个 gstest-gtk 的应用程序可以查看摇杆的控制详情。

(2)安装方式如下:sudo apt-get install gstest-gtk

(3)安装完成之后,可以在终端中直接运行gstest-gtk便可打开查看其摇杆和按钮的响应情况。

2、ROS驱动安装

(1)使用现有的joy ros驱动,通过安装二进制方式安装ROS驱动功能包:sudo apt-get install ros-melodic-joy*

(2)安装完成之后,便可以测试 joy节点:运行roscore;运行rosrun joy joy_node

(3)此时ros话题中就会有/joy的话题。

3、转化为mavros/rc/override

运行joy节点之后,再单独运行:rosrun prometheus_gazebo joy_translator.py

三、不足及改进

1 ROS 驱动精度不够** **

(1)ROS驱动精度不够高,理论上数据范围在-1.0~1.0之间,实际的数据范围在-0.924~0.935,导致摇杆的数据在临界值范围内有一定误差,不能完全达到1000或者2000。

(2)解决思路 :修改底层ROS驱动,归一化处理更加完善 。

2 、新增 mavros 插件以适配 mavlink

(1)在qgc中的joystick,存在mavlink数据流,但并未产生相应的mavros数据流,可以通过新增mavros插件,获取到#70号mavlink数据 。

(2)优点:qgc中已经集成了驱动,且控制精度高。

mavros遥控器消息.png

扫一扫浏览分享
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表