Limitations of SAMI and how it can be improved

A project log for Smart Motor Driver for Robotics

This motor driver is able to control a motor using PID by I2C. Taking precise control of a motor have never been so easy.

Danny FRDanny FR 10/21/2018 at 21:420 Comments

Today I want to talk about the development of the project, limitations and future improvements that could be done to achieve an even better and powerful Smart Motor Driver.

As mentioned earlier in a previous log there are some limitations with the hardware and some things that only work in an ideal world. The first of all is about precision in Auto-Stop feature, a brushed DC motor can't be controlled to move exactly to a wanted position. Is just not possible, the encoder handles the measurement of this movement and working together with the PID control it does the best it can to move it to a desired position. The gearbox also plays a great paper in this, with a greater reduction relation it comes a bigger resolution and higher precision in the movements because the motor control doesn´t need to be that fine and the error gets reduced significantly. 

However with a lower reduction relation in the gearbox the error in position grows because the motor movements are just not enough small to allow have that precision. Another important thing that can affect the precision is the inertia, so PID gains should be tuned properly to reduce influence of the inertia. Things that not exist in an ideal world, but in reality are present. 

Also the encoder in SAMI uses only one channel, so it is less precise and can't detect direction of a movement induced by an external force in the system. All control algorithms on board suppose that only minimal external forces will be present, so take that in account when designing a solution with SAMI. The motor chosen in an application should be strong enough that an external force can't easily affect it. 

I designed SAMI to be cost effective and useful in many robotics applications. And I think I got it right, for a normal robot movements is more than enough to the the job right in a super tiny solution. However I know there is applications that require a lot more of precision in the same tiny package, like a prosthetic hand or a robot arm. This is why I am designing a second SAMI with more resources that allow to have a much better performance, but also more expensive. 

The main changes will be the addition of a full quadrature encoder (2 channels), motor current sense capability and a more powerful microcontroller, this will be distributed in a 2 PCB design to continue as a tiny solution. And this will be Pro edition of SAMI.

With a better encoder SAMI precision will be 4 times better and reduce errors significantly. Also it will allow to use your DC motors as a servo and hold their position even with external forces actuating on them. Current sense can be used to detect limits at calibration in a linear actuator implementation. Opening the door to a hole new universe of applications, prosthetic hands can now be done better and cheaper than before. 

And maybe one of the coolest feature will be that SAMI will be capable of record a movement and them repeat it. You will be able to program a robot arm by moving it with your hand while recording the movements with the encoder and them repeat it automatically sending it back to the motors.

Soon SAMI will be available for sale and after that I will start working in the Pro edition. I have come with a beatiful open-source project with a lot of potential to change how robots and technology helps people live better. For me is a small contribution, but I think together as a community we have the power to do great things and help others using SAMI.

Thanks to support the project.