旭日X3派安装Dronekit及读取飞控数据

前面的教程介绍了如何将X3派装上无人机以如何建立通讯和供电,这里我们介绍在X3派上面安装Dronekit,并如何使用Dronekit编写自己的第一个脚本读取飞控数据。

一,安装Dronekit

1,无人机接上电池,检查X3派和飞控是否正常启动

2,我这里有显示器,键盘,我直接给X3派接上显示器,键盘鼠标,当然也可以通过笔记本端通过SSH命令连接X3派。启动系统后显示器显示桌面,然后直接连接wife,接下来就可以进入下一步了。不过在连接wife时着实让我有点头疼,可能是我显示器的缘故吧,wife图标被隐藏在右上角,得慢慢移动鼠标就会找到。

3,首先安装pip和python-dev:

右击鼠标打开菜单栏,打开 Open Terminal Here,

输入以下命令

sudo apt-get install python-pip python-dev

5,安装Dronekit

输入以下命令安装Dronekit

Sudo pip install dronkit

安装过程挺顺利的,因为后面我们需要连接飞控所以我们用SSH连接进行安装调试。

一,编写测试代码

安装好Dronekit我们需要测试X3派与飞控是否能正常通讯,

1,首先在X3派更目录下面新建一个名为test的文件夹用于存放测试代码文件,输入以下命令:mkdir -p ~/test

可以输入ls命令,查看是否新建好这个文件夹,如图所示。

1,通过cd命令切换到test文件夹下面,创建名为connect.py的文件,测试X3派能否连接飞控:tough connect.py

2,可以输入ls命令,检查是否新建好文件夹,如下图所示

1,使用vim编辑文件:sudo vim connect.py

输入密码进入编辑页面

复制以下命令-
from dronekit import connect

# Connect to the Vehicle (in this case a UDP endpoint)

vehicle = connect(‘/dev/ttyUSB0’, wait_ready=True, baud=921600)

# vehicle is an instance of the Vehicle class

print (“Autopilot Firmware version: %s” % vehicle.version)

print( “Autopilot capabilities (supports ftp): %s” % vehicle.capabilities.ftp)

print (“Global Location: %s” % vehicle.location.global_frame)

print (“Global Location (relative altitude): %s” % vehicle.location.global_relative_frame)

print (“Local Location: %s” % vehicle.location.local_frame #NED)

print (“Attitude: %s” % vehicle.attitude)

print( “Velocity: %s” % vehicle.velocity)

print (“GPS: %s” % vehicle.gps_0)

print (“Groundspeed: %s” % vehicle.groundspeed)

print (“Airspeed: %s” % vehicle.airspeed)

print (“Gimbal status: %s” % vehicle.gimbal)

print (“Battery: %s” % vehicle.battery)

print (“EKF OK?: %s” % vehicle.ekf_ok)

print (“Last Heartbeat: %s” % vehicle.last_heartbeat)

print (“Rangefinder: %s” % vehicle.rangefinder)

print (“Rangefinder distance: %s” % vehicle.rangefinder.distance)

print (“Rangefinder voltage: %s” % vehicle.rangefinder.voltage)

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 # settable)

print (“Armed: %s” % vehicle.armed # settable)

保存退出后接下来要确保X3派与飞控连接通过数据线

输入以下命令查看端口:ls /dev/ttyUSB*

如果显示:/dev/ttyUUSB0

说明X3派已经有USB0端口连接

一,测试连接

输入以下命令:cd test

Python connect.py

成功运行后,会显示如下信息:

说明X3派通过Dronekit读取到了目前飞控的数据:系统警报、固件版本、姿态数据、电池电量、解锁状态、当前飞行模式等等。这样就成功运行了测试代码,成功将X3派与飞控实现了通讯。