parent
a413442614
commit
9a4593b29e
1 changed files with 0 additions and 83 deletions
@ -1,83 +0,0 @@ |
|||||||
import math |
|
||||||
import matplotlib.pyplot as plt |
|
||||||
from openpilot.common.filter_simple import JerkEstimator1, JerkEstimator2, JerkEstimator3 |
|
||||||
from tools.lib.logreader import LogReader |
|
||||||
from openpilot.selfdrive.locationd.helpers import PoseCalibrator, Pose |
|
||||||
from opendbc.car import ACCELERATION_DUE_TO_GRAVITY |
|
||||||
|
|
||||||
plt.ion() |
|
||||||
|
|
||||||
lr = LogReader("https://connect.comma.ai/8011d605be1cbb77/000001c6--130f915e07/130/138") |
|
||||||
calibrator = PoseCalibrator() |
|
||||||
|
|
||||||
sm = {} |
|
||||||
|
|
||||||
j1 = JerkEstimator1(1/20) |
|
||||||
j2 = JerkEstimator2(1/100) |
|
||||||
j3 = JerkEstimator3(1/100) |
|
||||||
# j4 = JerkEstimator4(1/20) |
|
||||||
j5 = JerkEstimator1(1/100) |
|
||||||
|
|
||||||
accels = [] |
|
||||||
kf_accels = [] |
|
||||||
jerks1, jerks2, jerks3, jerks4, jerks5 = [], [], [], [], [] |
|
||||||
lp_updated = False |
|
||||||
|
|
||||||
for msg in lr: |
|
||||||
if msg.which() == 'livePose': |
|
||||||
sm['livePose'] = msg.livePose |
|
||||||
lp_updated = True |
|
||||||
elif msg.which() == 'liveParameters': |
|
||||||
sm['liveParameters'] = msg.liveParameters |
|
||||||
elif msg.which() == 'carState': |
|
||||||
if len(sm) < 2: |
|
||||||
continue |
|
||||||
|
|
||||||
CS = msg.carState |
|
||||||
device_pose = Pose.from_live_pose(sm['livePose']) |
|
||||||
calibrated_pose = calibrator.build_calibrated_pose(device_pose) |
|
||||||
|
|
||||||
yaw_rate = calibrated_pose.angular_velocity.yaw |
|
||||||
roll = sm['liveParameters'].roll |
|
||||||
roll_compensated_lateral_accel = (CS.vEgo * yaw_rate) - (math.sin(roll) * ACCELERATION_DUE_TO_GRAVITY) |
|
||||||
|
|
||||||
_j2 = j2.update(roll_compensated_lateral_accel) |
|
||||||
_j3 = j3.update(roll_compensated_lateral_accel) |
|
||||||
_j5 = j5.update(roll_compensated_lateral_accel) |
|
||||||
if lp_updated: |
|
||||||
_j1 = j1.update(roll_compensated_lateral_accel) |
|
||||||
# _j4 = j4.update(roll_compensated_lateral_accel) |
|
||||||
lp_updated = False |
|
||||||
else: |
|
||||||
_j1 = j1.x |
|
||||||
_j2 = j2.x |
|
||||||
_j3 = j3.x |
|
||||||
# _j4 = j4.x |
|
||||||
_j5 = j5.x |
|
||||||
|
|
||||||
jerks1.append(_j1) |
|
||||||
jerks2.append(_j2) |
|
||||||
jerks3.append(_j3) |
|
||||||
# jerks4.append(_j4) |
|
||||||
jerks5.append(_j5) |
|
||||||
kf_accels.append(j2.kf.x[0][0]) |
|
||||||
accels.append(roll_compensated_lateral_accel) |
|
||||||
|
|
||||||
print(roll_compensated_lateral_accel) |
|
||||||
|
|
||||||
|
|
||||||
fig, axs = plt.subplots(2, sharex=True) |
|
||||||
|
|
||||||
axs[0].plot(accels, label='Lateral Accel') |
|
||||||
axs[0].plot(kf_accels, label='Kalman filter accel') |
|
||||||
axs[0].set_ylabel('Lateral Acceleration (m/s²)') |
|
||||||
axs[0].legend() |
|
||||||
|
|
||||||
axs[1].plot(jerks1, label='Low pass filter at 20 Hz (1)') |
|
||||||
axs[1].plot(jerks2, label='Kalman filter (2)') |
|
||||||
axs[1].plot(jerks3, label='Windowed (3)') |
|
||||||
# axs[1].plot(jerks4, label='Jerk Estimator 4') |
|
||||||
# axs[1].plot(jerks5, label='Low pass filter at 100 Hz (5)') |
|
||||||
axs[1].set_ylabel('Lateral Jerk (m/s³)') |
|
||||||
axs[1].legend() |
|
||||||
|
|
Loading…
Reference in new issue