LOCO定位系统入门教程-使用python脚本异步添加读取日志变量
说明:
- 介绍如何使用python脚本,异步方式添加读取日志变量
步骤:
将Crazyflie连接到cfclient,点击客户端的菜单栏上
View
->Tabs
->Log TOC
,来查看日志变量新建一个python脚本connect_log_param.py
代码如下
import logging
import time
import cflib.crtp
from cflib.crazyflie import Crazyflie
from cflib.crazyflie.syncCrazyflie import SyncCrazyflie
from cflib.crazyflie.log import LogConfig
from cflib.crazyflie.syncLogger import SyncLogger
# URI to the Crazyflie to connect to
uri = 'radio://0/80/2M/E7E7E7E7E7'
# Only output errors from the logging framework
logging.basicConfig(level=logging.ERROR)
def log_stab_callback(timestamp, data, logconf):
print('[%d][%s]: %s' % (timestamp, logconf.name, data))
def simple_log_async(scf, logconf):
cf = scf.cf
cf.log.add_config(logconf)
logconf.data_received_cb.add_callback(log_stab_callback)
logconf.start()
time.sleep(5)
logconf.stop()
(...)
if __name__ == '__main__':
# Initialize the low-level drivers
cflib.crtp.init_drivers()
lg_stab = LogConfig(name='Stabilizer', period_in_ms=10)
lg_stab.add_variable('stabilizer.roll', 'float')
lg_stab.add_variable('stabilizer.pitch', 'float')
lg_stab.add_variable('stabilizer.yaw', 'float')
with SyncCrazyflie(uri, cf=Crazyflie(rw_cache='./cache')) as scf:
simple_log_async(scf, lg_stab)
- 运行脚本
python3 connect_log_param.py
- 结果如下
[18101][Stabilizer]: {'stabilizer.roll': -174.58396911621094, 'stabilizer.pitch': 42.82120132446289, 'stabilizer.yaw': 166.29837036132812}
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号