DroneKit教程(四):属性和参数的读取与设置
2017-09-16 17:28
567 查看
DroneKit教程(四):属性和参数的读取与设置
DroneKit内置了无人机的属性和参数,使用简单的Python代码即可进行读取和修改。此教程的例子均使用在本地编译完成的SITL进行测试。如何启动SITL和MAVProxy请参见使用从源码编译的SITL测试DroneKit代码。在测试时,请保持SITL和MAVProxy正常运行。
读取属性
属性变量描述了无人机当前的系统状态。connect函数返回的Vehicle对象中包含了许多属性变量,可以直接读取和调用。from dronekit import connect vehicle = 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点的位置信息(向北、向东、向下);解锁之前返回None print "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 未本地化版本许可协议进行许可。
相关文章推荐
- java读取和设置配置文件中的属性参数
- agruments应用——求出函数参数的总合&&css函数——设置/读取对象的属性&&当前输入框高亮显
- java读取和设置配置文件中的属性参数
- C#反射技术的简单操作(读取和设置类的属性)
- Xamarin XAML语言教程使用使用Progress属性设置当前进度
- Java设置与读取Cookie属性 央邦0首付,低押金先就业后付款
- 在jsp中设置由OGNL读取的属性
- [教程] Build.prop 系统参数属性详解,系统性能调整,功能开启关闭等。。。更新完毕。
- CXF入门教程(4) -- 设置上下文连接属性
- C#反射技术之一读取和设置类的属性
- C#反射技术的简单操作(读取和设置类的属性)
- Xamarin XAML语言教程使用属性设置进度条的当前进度
- Unity3d基础教程7-灯光(灯光阴影参数设置及lightmapping制作)
- JavaScript使用cookie,参数设置,说明;读取,写入,删除函数
- C#反射读取和设置类的属性
- iOS App开发中导航栏的创建及基本属性设置教程
- MicroDraw 控件读取AutoLisp设置的扩展属性
- C#反射技术之一读取和设置类的属性
- 如何从请求参数中来设置managed bean的属性?
- 使用SharedPreferences读取系统设置参数