技术分享 | 遥控器控制(Joystick)
Posted 阿木实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术分享 | 遥控器控制(Joystick)相关的知识,希望对你有一定的参考价值。
一、遥控器控制
在真实飞行过程中,我们使用真实的遥控器作为控制无人机的主要操作来源,遥控器始终拥有最高的权限,精湛的遥控器操作手法可以保证无人机安稳着陆,但对于很多非专业人士来说,遥控的操作技巧是需要不断练习的。
我们始终强调一个观念,仿真与实机结合,这样更加符合开发流程,在以往的仿真中,我们通过键盘控制无人机飞行,并不能真实的反应出实机飞行时该怎么操作,也是基于现在存在的种种问题,为了让仿真与实机结合的更加完美,在Prometheus中增加遥控器控制方式,与真机使用对应起来,更加容易上手和进行二次开发。
1、真实飞机中的遥控器
下面是真实飞机中的遥控器的摇杆响应值,由 mavros/rc/in 话题组成。 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.01.0之间,实际的数据范围在-0.9240.935,导致摇杆的数据在临界值范围内有一定误差,不能完全达到1000或者2000。
(2)解决思路:修改底层ROS驱动,归一化处理更加完善 。
2、新增mavros插件以适配mavlink
(1)在qgc中的joystick,存在mavlink数据流,但并未产生相应的mavros数据流,可以通过新增mavros插件,获取到#70号mavlink数据 。
(2)优点:qgc中已经集成了驱动,且控制精度高。
- End -
技术发展的日新月异,阿木实验室将紧跟技术的脚步,不断把机器人行业最新的技术和硬件推荐给大家。看到经过我们培训的学员在技术上突飞猛进,是我们培训最大的价值。如果你在机器人行业,就请关注我们的公众号,我们将持续发布机器人行业最有价值的信息和技术。 阿木实验室致力于为机器人研发提供开源软硬件工具和课程服务,让研发更高效!
以上是关于技术分享 | 遥控器控制(Joystick)的主要内容,如果未能解决你的问题,请参考以下文章