mirror of
https://github.com/odriverobotics/ODrive.git
synced 2026-08-20 22:14:34 +08:00
41 lines
696 B
Python
41 lines
696 B
Python
#!/usr/bin/env python3
|
|
"""
|
|
Liveplotter
|
|
"""
|
|
|
|
import time
|
|
import odrive.core
|
|
import matplotlib.pyplot as plt
|
|
import numpy as np
|
|
import threading
|
|
|
|
data_rate = 100
|
|
plot_rate = 10
|
|
num_samples = 1000
|
|
|
|
my_odrive = odrive.core.find_any()
|
|
|
|
plt.ion()
|
|
global vals
|
|
vals = []
|
|
|
|
def fetch_data():
|
|
global vals
|
|
while True:
|
|
vals.append(my_odrive.motor0.encoder.pll_pos)
|
|
if len(vals) > num_samples:
|
|
vals = vals[-num_samples:]
|
|
time.sleep(1/data_rate)
|
|
|
|
def plot_data():
|
|
global vals
|
|
while True:
|
|
plt.clf()
|
|
plt.plot(vals)
|
|
plt.pause(1/plot_rate)
|
|
|
|
fetch_thread = threading.Thread(target=fetch_data, daemon=True)
|
|
fetch_thread.start()
|
|
|
|
plot_data()
|