We currently don't officially support controlling the actuators directly from Simulink, but we know that some of our customers got it to work using workarounds.
In general, Simulink has three different operating modes:
- Desktop Simulation
- Deployment to Linux/Windows/macOS
- Deployment to dedicated hardware, e.g., SpeedGoat systems
For case 1 you could wrap the MATLAB API in S-Functions and set a static time solver. For case 2 you could compile against our native C++ library. Unfortunately, for case 3 we can't use any of our existing APIs due to a lack of system calls (e.g. networking sockets, threads, etc.), but it is possible to implement a more "traditional" approach by setting up an intermediate node.
For example, an external computer (e.g. a Raspberry PI) could use one of the APIs (e.g. Python or C++) I to implement a robot controller, and Simulink could communicate with it to send commands and gather feedback. The messaging could be implemented using raw udp datagrams, or using ROS
if you have access to Simulink support for ROS