DroneKit教程(四):属性和参数的读取与设置

来源:互联网 发布:河南省农产品出口数据 编辑:程序博客网 时间:2024/05/18 20:09

DroneKit教程(四):属性和参数的读取与设置

DroneKit内置了无人机的属性和参数,使用简单的Python代码即可进行读取和修改。

此教程的例子均使用在本地编译完成的SITL进行测试。如何启动SITL和MAVProxy请参见使用从源码编译的SITL测试DroneKit代码在测试时,请保持SITL和MAVProxy正常运行

读取属性

属性变量描述了无人机当前的系统状态。connect函数返回的Vehicle对象中包含了许多属性变量,可以直接读取和调用。

from dronekit import connectvehicle = connect('127.0.0.1:14551', wait_ready = True)# 飞控软件版本print "Autopilot Firmware version: %s" % vehicle.version# 全球定位信息(经纬度,高度相对于平均海平面)print "Global Location: %s" % vehicle.location.global_frame# 全球定位信息(经纬度,高度相对于home点)print "Global Location (relative altitude): %s" % vehicle.location.global_relative_frame# 相对home点的位置信息(向北、向东、向下);解锁之前返回Noneprint "Local Location: %s" % vehicle.location.local_frame# 无人机朝向(欧拉角:roll,pitch,yaw,单位为rad,范围-π到+π)print "Attitude: %s" % vehicle.attitude# 三维速度(m/s)print "Velocity: %s" % vehicle.velocity# GPS信息print "GPS: %s" % vehicle.gps_0# 地速(m/s)print "Groundspeed: %s" % vehicle.groundspeed# 空速(m/s)print "Airspeed: %s" % vehicle.airspeed# 云台信息(得到的为当前目标的roll, pitch, yaw,而非测量值。单位为度)print "Gimbal status: %s" % vehicle.gimbal# 电池信息print "Battery: %s" % vehicle.battery# EKF(拓展卡曼滤波器)状态print "EKF OK?: %s" % vehicle.ekf_ok# 超声波或激光雷达传感器状态print "Rangefinder: %s" % vehicle.rangefinder# 无人机朝向(度)print "Heading: %s" % vehicle.heading# 是否可以解锁print "Is Armable?: %s" % vehicle.is_armable# 系统状态print "System status: %s" % vehicle.system_status.state# 当前飞行模式print "Mode: %s" % vehicle.mode.name# 解锁状态print "Armed: %s" % vehicle.armed

设置属性

少数的属性变量可以被设置,通过设置这些属性变量,我们可以控制无人机的运行状态。

锁定无人机:

vehicle.disarmed = False

切换到GUIDED模式:

vehicle.mode = VehicleMode("GUIDED")

设置航点模式下,无人机飞行的地速为3.2m/s(注意:读、写groundspeed的意义不同)

vehicle.groundspeed = 3.2

读取参数

参数以字典(dictionary)的形式,存储在vehicle.parameters变量中。具体参数的名称即为相应的键值(key)。

例如,在屏幕上显示THR_MIN参数(THR_MIN代表油门处于最低时的电机带速,以PWM值表示):

print "Param: %s" % vehicle.parameters['THR_MIN']

显示全部参数:

print "\nPrint all parameters (iterate `vehicle.parameters`):"for key, value in vehicle.parameters.iteritems():    print " Key:%s Value:%s" % (key,value)

设置参数

使用读取参数类似的方法,即可设置参数:

vehicle.parameters['THR_MIN']=100

版本信息

1.0 20170914 initial commit

知识共享许可协议
本作品采用知识共享署名-相同方式共享 3.0 未本地化版本许可协议进行许可。

阅读全文
0 0
原创粉丝点击