New ODrive Tools

Hi,
I have been working with ODrive for quite some time now and have developed a few things for ODrive that might also be useful for others:

New Firmware for 3.5

  • Based on 0.5.1
  • Better oscilloscope functionality (data compression, multiple values, multiple axes, custom trigger, faster data retrieval)
  • More data exposed to debug Encoder Index issues (to detect encoder noise/slippage)
  • Optional error suppression with CUI encoders
  • ODrivetool works with ODrive via UART and custom UART options
  • Optional reading of incremental encoders via Fibre when ODrive uses SPI encoders
  • Some minor UART communication bugfixes in Firmware

C++ Library to communicate with ODrive via USB/UART

  • Can read and write any values
  • Can call any function
  • Works with any firmware because it automatically downloads the json interface
  • Not tested with ODrive S1 and Pro yet, but should work theoretically via USB
  • Quite robust error checking, works when there is data noise
  • Very small, should be easy to include in other projects

Native application to visualize ODrive data

  • Polls any data and displays it in a graphical user interface
  • Plotting over long time periods. Plots are done with GitHub - epezent/implot: Immediate Mode Plotting
  • Sets any ODrive values via UI
  • Displays oscilloscope data
  • Indirect communication with ODrive. One application polls the ODrive data and another connects via TCP and visualizes it. This way no direct USB/UART connection between ODrive and visualizer is required.
  • Also plots other values retrieved by the polling application. Or computed ones. This is useful when you have other sensors or want to debug control algorithms.
  • Plots are quite scalable: I monitor about 300 variables for my project and it’s still very fast and the UI is not overwhelming,
  • Easy to add graphical visualizations of the joint states or video streams and keep it all synchronized.
  • Also should work with ODrive S1 and Pro, but I havn’t tried it yet.
  • No JS;)

Is anyone interested in this stuff? If so, I can make it Open Source.

5 Likes

We started experimenting with ODrives (Pro), The application can run on what platform ?

Right now the application that connects to the ODrive runs on Linux and the visualizer on Windows. But I don’t use any platform dependent libraries, so both should work on Windows and Linux

Looking forward to your open-source release.

Okay, I cleaned up the code and open sourced it. Here is the link to the native application and C++ library:

(The readme contains details)

Here is a video of the application in action.

Here is another video where I use it to control my robot.

As said in the original post, it should work out of the box with ODrive 3, but some modifications might be required to make it work with newer ODrives. (I don’t have those to test) But that shouldn’t be too difficult.

I also published the custom firmware for ODrive 3:

Hopefully someone finds this stuff useful^^

1 Like