Rust for realtime motion control.

This page summarizes the projects mentioned and recommended in the original post on /r/rust

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • embedded-trainings-2020

  • ethercat

    Rust wrapper for the IgH EtherCAT master

  • Not directly related but there are some Rust wrappers around EthetCAT libraries such as https://github.com/ethercat-rs/ethercat. EtherCAT is commonly used as a realtime fieldbus in industrial motion control, for example KUKA and Staubli use EtherCAT between their motion controller and the servo drives. KUKA uses Acontis as the EthetCAT master software, but I am not sure what motion libraries they use.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • linux-embedded-hal

    Implementation of the `embedded-hal` traits for Linux devices

  • Makes sense. The EtherCAT master component can be loaded as a kernel module (for Etherlab), which I think is somewhat independent of the user code. The rust code interfaces with the driver through syscalls. There is some discussion about Rust with PREEMPT_RT here https://github.com/rust-embedded/linux-embedded-hal/issues/45 but it looks like it is still open.

  • jailhouse

    Linux-based partitioning hypervisor

  • Yeah, I think that is what something like https://www.toradex.com/computer-on-modules/apalis-arm-family/nxp-imx-8 is useful for, where it has a separate core. Or even on linux you can use isolcpus to get pseudo-isolation. There are also hardware hypervisors like Jailhouse (https://github.com/siemens/jailhouse) which can completely isolate hardware resources and I suppose might prevent the GPU from causing an issue with realtime task. But this definitely affects ease-of-use and probably requires a reduced feature set in the language (no dynamic allocations) and lots of unsafe code.

  • botnana-api-rs

    Botnana Client Library In Rust

  • I provide systems with xenomai and etherlab installed and integrated with my motion system to local machine builders in Taiwan. This motion system is in Rust and run in real-time. But because most machine builders do not use Rust, also do not want to know real-time system either, I do not reveal the Rust API of this real-time system, instead I provide a client library for them. This client library is also written in Rust, but works as a C library. You can find it here and here 。In order to provide more flexibility, I also embedded a Forth language interpreter in the real-time system, so that I can build something like CNC. This interpreter is also developed in Rust.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts