ROS 无人机仿真系统4 —— 通过键盘控制飞行器飞行
2018-03-29 16:28
676 查看
1、键盘控制无人机飞行
仿真系统rotor_simulator支持使用joystick来模拟遥控器,同时支持用键盘来模拟joystick,哈哈就是这么会玩儿,所以没有joystick的我就用了键盘来控制飞行器仿真飞行。这里首先需要建立虚拟键盘joystick,具体参照:https://github.com/ethz-asl/rotors_simulator/wiki/Setup-virtual-keyboard-joystick
下面是上述安装说明的注意点:
1)git clone遇到:
git clone git@github.com:devbharat/python-uinput.git可以用git clone https://github.com/devbharat/python-uinput.git 替换,一般没有问题。
2)当运行到下面指令时,会出现没有pygame的提示,需要安装pygame。
rosrun rotors_joy_interface key_joystick.py可以打开ubuntu software center 搜索pygame,看到SDL blindings for games development inPython(python-pygame),点击安装即可。运行上述指令若出现permission deny的提示,重启电脑。最终结果如下:
键盘上w - throttle up ↑ - pitch up
s - throttle down ↓ - pitch down
a - yaw left → - roll right
d - yaw right ← - roll left
而且roll/pitch/yaw松开键盘会自动回中,就是这么给力。
2、仿真开始
运行如下指令:roslaunch rotors_gazebo mav_with_keyboard.launch注意:1)不需要先运行key_joystick.py,launch文件自动运行该文件; 2)会出现couldn't open joystick /dev/input/js0 .. ,并不影响仿真,这个应该是在查找真正的joystick设备,因为用键盘模拟,所以不需要关注;同时发现之前运行的虚拟遥控器界面又出来了,表面运行成功。
仿真处于暂停状态,这里需要特别注意的是,油门杆映射反了,当油杆向下打的时候飞行器才会起飞。所以一开始先调整四个通道均在中间位置,然后再启动gazebo仿真。
3、仿真过程
仿真过程中,可以先打开rqt_graph查看虚拟的joystick是如何控制飞机的,如下图。发现节点/firefly/rotors_joy_interface发布了话题/firefly/command/roll_pitch_yawrate_thrust,基本上可以猜测虚拟的遥控器图上映射的是飞行器的俯仰、横滚、偏航角速度和推力。同时用rostopic echo /firefly/command/roll_pitch_yawrate_thrust可以查看该话题具体发送的信息,这里需要按下键盘模拟控制才会有信息输出。注意到两点:航向角速度始终为0.785左右,无论虚拟遥控器如何调整航向指令;油门杆确实向下打飞行器的推力才会提高。不知道上述两点是不是故意自带的bug,需要自己去改源码。
相关文章推荐
- ROS机器人Diego 1#制作(十五)机械臂的控制---通过键盘控制机械臂舵机
- ROS平台构建:(三)通过键盘或者利用rostopic 发布话题控制机器人运动
- 使用SP Racing F3飞控&ROSflight软件包的无人机自主飞行系统
- 基于ROS平台的移动机器人-4-通过ROS利用键盘控制小车移动
- ROS 无人机仿真系统3 —— 验证仿真系统
- ROS 无人机仿真系统1 —— 仿真系统
- ROS 无人机仿真系统2 —— 平台搭建
- [转]通过广播Intent控制Android系统自带的音乐播放器
- javascript实现可键盘控制的抽奖系统
- 通过键盘控制物体移动
- 1.2 通过键盘控制物体运动【键盘输入、斜方向移动、勾股定理】
- 通过键盘控制SHAPE的形态
- ROS进阶——通过MoveIt!控制实体机械臂单片机层(arduino)
- 交互系统的构建之(二)Linux下鼠标和键盘的模拟控制
- ROS探索总结(八)——键盘控制
- [置顶] ROS探索总结(八)——键盘控制
- 通过IP控制登录系统
- 通过键盘控制盒子的移动与缩放
- Android系统中通过shell命令实现wifi的连接控制
- 通过游戏手柄控制机器人(ROS,Twist)