from plot import plot
class UserCode:
def __init__(self):
# initialize data you want to store in this object between calls to the measurement_callback() method
self.last_yaw = 0
def measurement_callback(self, t, dt, navdata):
yaw_vel = (navdata.rotZ - self.last_yaw) / dt
self.last_yaw = navdata.rotZ
'''
:param t: time since simulation start
:param dt: time since last call to measurement_callback
:param navdata: measurements of the quadrotor
'''
# add your plot commands here
plot("roll", navdata.rotX);
plot("pitch", navdata.rotX);
plot("yaw", navdata.rotZ)
plot("vx", navdata.vx)
plot("vy", navdata.vy)
plot("yaw velocity", yaw_vel)
ZnJvbSBwbG90IGltcG9ydCBwbG90CgpjbGFzcyBVc2VyQ29kZToKICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAjIGluaXRpYWxpemUgZGF0YSB5b3Ugd2FudCB0byBzdG9yZSBpbiB0aGlzIG9iamVjdCBiZXR3ZWVuIGNhbGxzIHRvIHRoZSBtZWFzdXJlbWVudF9jYWxsYmFjaygpIG1ldGhvZAogICAgICAgIHNlbGYubGFzdF95YXcgPSAwCiAgICAgICAgCiAgICBkZWYgbWVhc3VyZW1lbnRfY2FsbGJhY2soc2VsZiwgdCwgZHQsIG5hdmRhdGEpOgogICAgICAgIHlhd192ZWwgPSAobmF2ZGF0YS5yb3RaIC0gc2VsZi5sYXN0X3lhdykgLyBkdAogICAgICAgIHNlbGYubGFzdF95YXcgPSBuYXZkYXRhLnJvdFoKCiAgICAgICAgCiAgICAgICAgJycnCiAgICAgICAgOnBhcmFtIHQ6IHRpbWUgc2luY2Ugc2ltdWxhdGlvbiBzdGFydAogICAgICAgIDpwYXJhbSBkdDogdGltZSBzaW5jZSBsYXN0IGNhbGwgdG8gbWVhc3VyZW1lbnRfY2FsbGJhY2sKICAgICAgICA6cGFyYW0gbmF2ZGF0YTogbWVhc3VyZW1lbnRzIG9mIHRoZSBxdWFkcm90b3IKICAgICAgICAnJycKICAgICAgICAKICAgICAgICAjIGFkZCB5b3VyIHBsb3QgY29tbWFuZHMgaGVyZQogICAgICAgIHBsb3QoInJvbGwiLCBuYXZkYXRhLnJvdFgpOwogICAgICAgIHBsb3QoInBpdGNoIiwgbmF2ZGF0YS5yb3RYKTsgICAgICAgIAogICAgICAgIHBsb3QoInlhdyIsIG5hdmRhdGEucm90WikKICAgICAgICBwbG90KCJ2eCIsIG5hdmRhdGEudngpCiAgICAgICAgcGxvdCgidnkiLCBuYXZkYXRhLnZ5KQogICAgICAgIHBsb3QoInlhdyB2ZWxvY2l0eSIsIHlhd192ZWwp