四旋翼无人机仿真之hector_quadrotor(ROS+Gazebo)(二)键盘teleop_twist_keyboard控制无人机飞行

文章目录

  • 前言
  • 一、运行hector_quadrotor
  • 二、键盘控制
    • 1.引入库
    • 2.键盘控制常见问题解决
  • 总结

前言

在前一篇文章中,我们对四旋翼无人机模型hector_quadrotor进行了详细的介绍,并对安装方式以及可能遇到的安装问题进行了说明。在上述问题全部解决后,我们便可以正常运行其中给到的两个demo,但是我们是想要运行并操作无人机,这就需要我们额外安装其他文件。

一、运行hector_quadrotor

在工作区目录下,运行source devel/setup.bash
之后,便可以启动launch文件(共有两个,一个是outdoor,一个是indoor)测试无人机:
outdoor:

roslaunch hector_quadrotor_demo outdoor_flight_gazebo.launch

indoor:

roslaunch hector_quadrotor_demo indoor_slam_gazebo.launch

rviz:
四旋翼无人机仿真之hector_quadrotor(ROS+Gazebo)(二)键盘teleop_twist_keyboard控制无人机飞行_第1张图片Gazebo:
四旋翼无人机仿真之hector_quadrotor(ROS+Gazebo)(二)键盘teleop_twist_keyboard控制无人机飞行_第2张图片

二、键盘控制

1.引入库

我们可以下载teleop_twist_keyboard ROS包可以实现键盘操控四旋翼。
下载:

sudo apt-get install ros-kinetic-teleop-twist-keyboard

下载成功后,同样需要先在工作区运行source devel/setup.bash
此后,想要用键盘控制无人机首先要启动无人机的电机:

rosservice call /enable_motors true

2.键盘控制常见问题解决

在运行到如上环节后,会遇到常见的问题,即出现ERROR: Unable to communicate with service [/enable_motors]

造成如上的报错,大多是由于安装ROS时带有的gazebo版本过低(一般为Gazebo7)。

解决办法:升级Gazebo至7.15(没试过其它版本是否可行,大家可以留言讨论)

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'

wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

sudo apt-get update

sudo apt-get install gazebo7 gazebo7-common

升级结束,再安装一个包(报错:fatal error: ignition/math/Inertial.hh: No such file or directory)

sudo apt-get install libignition-math2-dev

在运行完如上步骤后,再次于工作区运行source devel/setup.bash,之后运行:

rosservice call /enable_motors true

可以看到,运行成功,显示“true”,证明无人机已成功开启
最后,运行键盘操控代码即可:
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
若成功,需首先按t建让飞机飞起来才能进行其他控制

总结

经过如上步骤,想必键盘操控便可以成功解决,在这一步找解决办法用掉了一周的时间,希望大家有类似问题,能早些看到我的解决办法,希望可以帮助到大家。祝大家一切顺利。

你可能感兴趣的:(ubuntu,自动驾驶,人工智能,github)