Fully Open Source (Industrial) Robotics Controller

Yes, the Mesa-Electronics Anything I/O cards use Xilinx Spartan 6 FPGA for step generation and to process encoder feedback. The cards themselves are connected via Ethernet to the Linux host computer. The driver is called hostmot2 and works via an open protocol called “TRAM”. In short, the cards communicate with the host PC via a best-effort UDP connection/ No problem since there is a direct connection between the MESA card and the PC.

The hostmot2 source code, both from the FPGA and the driver are open-source. Some devs from the Machinekit community ported the FPGA code to SoC platforms. A group from Germany created a fully open source AC servo drive also using the protocol but implemented on a uC (see STMBL).

The greatest difficulty I faced was wiring up the new controller cards. Every AC servo has at least 10 I/O connections that times six gives a lot of wires to connect. Not a problem, but half of my cables harnesses where wired incorrectly, so I had to do at least twice… If I built a productions system, I would go for a solution that either uses EtherCAT or hostmot2 to interface with the AC servo drives, saving lot’s work wiring up the electric cabinet.

The Machinekit part of the setup was relatively straight-forward for me. A challenge was the emergency stop and following error detection implementation.

The ROS part with hal_ros_control is straightforward, it’s just a matter of connecting the robot HAL pins to the exposed ros_control HAL pins.

4 Likes