I have a few questions about controlling robot arm motion. I see that some have used Dynomotion KFLOP and other CNC motion controllers to control arms. Some have used Rumba board as well as several thousand dollar boards. But why don't we all just use ROS? What are the main benefits these boards give? AFAIK neither the KFLOP or Rumba allow realtime control. How come people invest (time/money) into these boards rather than ROS?
1 Answer
You are comparing different products made for different use-cases.
ROS is an open source software solution to control robots. It is intended (mainly) to be programmed by highly qualified software developers and in some rare cases the robots running ROS are used in the industry also. There is no technical support whatsoever, there are no guarantees that the software is capable of doing what you are planning to do. In order to control a robot from ROS you need a PC (or some similar iPC or SBC) and you need additional hardware to drive a motor (an amplifier stage and a motor controller). The drive amplifier has to be compatible with the motor and has to have a ROS driver.
CNC motion controllers are professional industrial equipment controlling machine tools in the industry. Modern CNC controllers are PC based, earlier ones had proprietary hardware. Normally, a drive amplifier is connected to the CNC controller in order to be able to drive a motor (and subsequently a machine tool). Furthermore a CNC acts like a firmware, which allows you to load and execute application programs (the so called G-Code) which are workpiece specific. There are companies like Siemens or Fanuc who offer high-end CNC controllers and others who offer compatible drive amplifiers and offer technical support, warranty, certification etc. Professional CNC controllers are not used to control robot arms, these are used for machine tools. Robot controllers are used to control robot arms. There are some subtle but important differences between robot controllers and CNCs.
The KFLOP board is a commercial product, which has tech support, warranties and required certifications (e.g. UL or CE certification). It seems that it takes a buffer of planned trajectories and executes this trajectory in real time (in contrary to ROS) and can be used as a motion controller (e.g. you specify a trajectory) or as a CNC controller (you specify G-Code or NC Code). ROS does not execute G-Code or NC code and does not offer real-time execution of a buffered trajectory. It seems that the KFLOP boards, like a PC running ROS, also need additional hardware to connect it to motors.
The Rumba board is a low-cost solution to connect motors to your PC. It does not necessarily process trajectories, it is more similar to a drive amplifier as to the above 3 products. It is not real-time on the USB communication side, but depending on its internal software architecture it may offer a real-time (closed-loop) controller for the motors.
People usually invest money in commercial products because they see a benefit. this can be a functional or a non functional benefit. Commercial products offer tech support, warranty and sometimes certifications. This is not the case for open source products. ROS is software only, so you still need HW to run it, furthermore you need to connect the HW running ROS to the motors. The software is free but the hardware is not.
You mention that people invest time and money. That is usually a trade-off. You can invest a lot of time in learning ROS alone, or you can invest money and a very limited amount of time to buy a commercial product and a crash-course for that product and start using it significantly faster.