< >
Home » ROS与AR.Drone教程 » ROS与AR.Drone-GPS支持(实验版)

ROS与AR.Drone-GPS支持(实验版)

GPS支持(实验版)

说明

  • 这是一个实验功能的驱动程序,需要一个飞行记录器。如果你编译gps-waypoint分支来使用这个功能。风险自负
  • gps-waypoint 分支保持最新的开发版本(currently indigo-devel).

源码编译

$ cd ~/catkin_ws/src
$ git clone https://github.com/AutonomyLab/ardrone_autonomy.git -b gps-waypoint
$ cd ~/catkin_ws
$ rosdep install --from-paths src -i
$ catkin_make

读取GPS数据

  • 启动可选的Navdata ,带有GPS支持:

    $ rosrun ardrone_autonomy ardrone_driver _enable_navdata_gps:=True

  • GPS信息发布在ardrone/navdata_gps主题,信息为自定义类型:ardrone_autonomy/navdata_gps:

Header  header
uint16 tag
uint16 size
float64 latitude
float64 longitude
float64 elevation
float64 hdop
uint32   data_available
bool zero_validated
bool wpt_validated
float64 lat0
float64 long0
float64 lat_fused
float64 long_fused
uint32 gps_state
float32 X_traj
float32 X_ref
float32 Y_traj
float32 Y_ref
float32 theta_p
float32 phi_p
float32 theta_i
float32 phi_i
float32 theta_d
float32 phi_d
float64 vdop
float64 pdop
float32 speed
uint32  lastFrameTimestamp
float32 degree
float32 degree_magnetic
float32 ehpe
float32 ehve
float32 c_n0  # Signal to noise ratio (average of the four best satellites)
uint32  nbsat # Number of acquired satellites
navdata_gps_channel[12] channels
bool is_gps_plugged
uint32 ephemerisStatus
float32 vx_traj
float32 vy_traj
uint32 firmwareStatus 

GPS航点导航

  • Parrot的官方SDK不发布这个功能。此功能被添加到通过逆向工程FreeFlight App所使用的协议驱动程序。
  • 所有GPS相关补丁的SDK可以看这里
  • AR-Drone 2.0 带有飞行记录器可以执行板载的GPS航点导航
  • 目前驱动支持通过ardrone/setgpstarget服务发送一个目标航点到无人机。
  • 向服务发送geographic_msgs/WayPoint类型请求来设置或覆盖航点。
  • position字段确定目标的纬度、经度和高度(更多
  • props字段包含ROS的键-值对的向量,支持的键为:
velocity: 值设置所需的线性速度 单位 m/s
orientation: 值设置期望的目标的方向,单位是弧度
  • 设置位置后,调用ardrone/setautoflight 带有enable = True 启动自动飞行模式 (自动飞行模式默认是关闭的)
  • 服务类型是ardrone_autonomy/RecordEnable
  • 关闭自动飞行模式,调用服务带有enable = False即可。

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: ros ar.drone, ros ar.drone gps, ros ar.drone 自主飞行