# FPGAs and stepper motors for precision control

I'm looking at this Dexter robot that uses FPGA controllers to get really accurate position and force sensing on a cheap ($2K) arm. They say that the speed of the processor lets them get this accurate sensing. I have a couple of questions: (1) What does processor speed have to with force sensing? Normal clock speeds seem pretty fast. (2) Why do they use stepper motors if they want the robot to be cheap? Everyone I've talked to has said that for small hobby robots, Dynamixel servos are by far the best choice. ## 1 Answer This project is very nice and I was totally obvious to it thanks for spotting it ! In general the difference between FPGAs and classical ASIC integrated circuit is that FPGAs can be re-programmed by the user to emulate certain circuitry. For some task FPGAs are faster than generic processor because of their parallel nature. (1) What does processor speed have to with force sensing? Force/torque sensors are rather expensive and the measurements are bias prone, temperature dependent and other cool stuff like that (this is changing thanks to optical force sensing but I didn't see a real life application running yet). So in robotics application they are usually not preferred and motor models based on the position, its derivatives and current are used (from Dynamixels to kuka LBR4). In the case of Dexter technical info see here it is what they call Real Time Physics Engine, were they must have fairly complex model (dry friction is not easy to model) of the full robot. The faster you run your model and measurements the faster you can see discrepancies an update the model parameters to have a model matching the measurements. Also if you filter your measurements, if you do it very fast (like FPGA allows) you can reduce considerably the induced delay. Lastly as FPGA call for parallelizing you can run all your sub-model in parallel thus increasing the speed, especially if your model consists of neural network(s). This gives you a fast model, running 500 faster than typical build (500kHz vs 1kHz, according to their sampling rate), which means that the model can adapt way faster and thus product a better force estimate. Note also that their advertise their FPGA processor to be well suited for vision, neural networks, and digital signal processing their website Which are typically applications their parallelization can be employed and speeds up the outcome. (2) Why do they use stepper motors if they want the robot to be cheap? Everyone I've talked to has said that for small hobby robots, Dynamixel servos are by far the best choice. I don't think that Dynamixel are Cheap their references with torque measurements are fairly expensive (around$300 each). From what I gathered they are using 3D printed harmonic drives, in robots like the KUKA LBR4 the harmonic drives are manufactured and this is rather expensive, so using a 3D printed counterpart saves a lot of money. Last possibility why they use steppers is for the high position precision of the motors, this is an educated guess from going through there website quickly. But in order to have precise translational motion at one meter from the base you need to have even more precise rotational motion which will be amplified by the link length.

On the drive, and design, I am really interested to see how the robot will behave with ware, will so model be good enough to compensate for it ? The 3D printing parts and the belts are going to have some evolution while being used. Typically Nao robots and Baxter robots are also cheap robots and you can literally hear the ware for intensively used robots.

• Thanks you! I had intuitively thought that 1kHz control would be easily enough to keep something moving smoothly (because I don't think I could even perceive 10kHz movement), but I guess the mistake I made was that it's not like you just apply the error correction torque over a single timestep and it fixes everything; you actually have to spend maybe 100 timesteps slowly fixing everything because your motor torque acts so slowly. Does this make sense? – Tarrare Sep 29 '17 at 10:41
• And you say that they use stepper motors because they are high accuracy. Maybe this is a basic question, but why can't you just gear up a normal DC servo and get the same accuracy? And thank you for the information on the Baxter robot, I didn't know you could hear the wear! – Tarrare Sep 29 '17 at 10:43
• Also you say that Dynamixel use harmonic drive gears. I'm still trying to fill in all the gaps in my knowledge about gears so I looked it up and they say that they use cycloid gearing. Does this seem right to you? It also intuitively feels like it would be really hard to 3D print strain-based gears in metal, let alone ABS plastic (or do you mean metal printing?). Does this make sense? Thanks again for sharing your knowledge, I'm learning so much :) – Tarrare Sep 29 '17 at 10:46
• Concerning the last comment I might have expressed myself poorly, Dynamixel do not use harmonic drive, but they use torque estimation based on current consumption for the X-serie. As for 3D printing gears I think they make more sens in 'plastic' materials like ABS or nylon, for cool gears look at that Infinitely Variable Transmission – N. Staub Sep 29 '17 at 15:13