I am a Simulink expert. I’ve looked for Simulink library of ODrive Pro, but I couldn’t find any. In addition, I couldn’t find the schematic diagram of the Pro. If anyone share technical drawings of the system (All pinouts) I can create simulink library of the ODrive Pro.
Hi! What specifically do you need to complete your library? Are you asking for an internal schematic of the ODrive, or just information on the output pins functions? I’m happy to provide more information regarding the internal control structure and control loops of the ODrive, if that helps!
Thank you for your response. Actually, I didnt fully understand the Web GUI. For example, I just want to give PWM to the ODrive and calculate the velocity. But I couldnt realize. Therefore I wanted to create my block diagram in simulink.
As far as I understand, you’ve used STM32H7A3 board and DRV8301 driver in Pro system. Mathworks’s support is available for both. Thus, I thought that I can compose my algorithm.
You didnt upload all ODrive Pro documents to github, whatever you give me it is good for me. Or, if you give me just pin diagram it is good as well. I can compose in STM CubeMX and call it from Simulink.
I will share all Simulink diagram from Github. Your costumers will be happier than now :).
The ODrive uses the DRV8353, however our software runs all onboard FOC control algorithms, and I would strongly recommend against running custom firmware on the ODrive Pro, as we’ve developed some very high performance control algorithms, as opposed to using anything off the shelf. Note the ODrive Pro is closed source, however the ODrive v3.6 is open-source.
You can see the onboard controller’s block diagram here, it should be fairly straightforward to model the relationship between PWM input and torque/velocity output given the gains for the onboard PI controller (vel_gain/vel_integrator_gain). For setting up PWM input, you can use the web GUI, or see instructions here for use with ODrivetool.
I am very upset to hear thar Pro is closed-source… I buy it because this is open source.
My purpose is to use the Pro by designing different controllers such as sliding mode, MPC, Reinforcement Learning based controllers etc. in my university. Also, I guess that your controllers are not robust enough. Have you ever test your controllers’s robustness?
Apologies for the disappointment – the decision to take the newer ODrive products closed source was not one we made lightly, and it was definitely a hard one. However, ODrive v3.6 will always remain open source.
In the future, we plan on a feature that’ll allow for executing custom user code alongside with the ODrive core firmware, which should allow for a high degree of customization and flexibility.
I’d note though that I think your application is possible on an ODrive Pro as-is. In torque control mode, you can command arbitrary torque setpoints. Over USB or CAN, this can be done at 1-2kHz, which should be more than fast enough for the vast majority of applications. Our internal current controller and encoder estimator are deterministic, and the behavior can be modeled quite easily in Simulink – happy to share additional details, if you desire.
We definitely have plenty of customers using an external control loop with an ODrive, with a lot of success – I’d recommend giving that a shot.
One question – when you ask about “robustness”, what specifically do you mean? Are you talking about the controls / mathematical robustness of the ODrive’s position/velocity controller? Or the current controller and encoder estimator (e.g. the core functionality for a torque loop)? Or do you mean the actual electrical/mechanical robustness of the ODrive itself – i.e. whether or not it’ll malfunction or fail? Happy to answer any questions you may have here!