Robot motion closed-loop control with Nerves

Hi, all. I’m pretty new to Nerves. I’ve been working professionally with Elixir and Phoenix for a bit now.

On the side, I mentor a high school robotics team doing FIRST Robotics Competition – larger ~100+ lb industrial-style robots doing a number of toss, pick & place, drive, etc., type tasks with closed-loop control. That work is done in Java with a framework provided by FIRST called WPILib alongside a number of vendor-provided device libraries. On-robot device-to-device control communication is often done via CAN bus and sometimes PWM or Digital IO. The on-robot controller computer is the NI RoboRIO.

Is Nerves suitable for this kind of thing? Has anyone attempted something like this in Nerves? I’m initially thinking of a Beaglebone Blue or Beaglebone Black + Robotics Cape as a controller here.

Thanks in advance for any ideas, cautions, references to projects or materials, or anything else that might be helpful here. Hoping to understand (1) if I should abandon this idea, and (2) assuming not, how to get started here.

Your description makes it sound like you might require hard real time support. Nerves doesn’t provide hart real time guarantees. Though if that’s an requirement you might want to look at grisp, which does support. If that’s not a requirement than you could likely make nerves work.