Export data to CSV file


I can’t find any option to export or capture data like vel_estimate? any ideas how to do it ?


There is no option that I know of right now, but…

Launch ODrive tool then paste these functions into the interpreter:

 # Convert to nested list structure for CSV output (outputs as rows instead of columns)
 def convert_list_for_csv(input_list):
     return list(map(lambda element: [element], input_list))

# Output a given list to a CSV file
def write_output_to_file(input_list, file_name):
    output = convert_list_for_csv(input_list)

    with open(file_name, "w", newline='') as csv_file:
        writer = csv.writer(csv_file, delimiter=',')
    print("Output written to", file_name)

Now when you sample your data (using odrivetool), just save it to a list:

# Move and record velocity estimate
from time import sleep
velocity_list = []
def move_and_log(position):
    # trajectory_done requires using the motion planner but you could use a different conditional
    # such as vel_estimate > x or elapsed time
    while not odrv0.axis0.controller.trajectory_done:
        sleep(0.01) # Need to prevent overloading the ODrive's communication interface. Increase / decrease as needed

Hope this helps