In my latest project I'm dealing with a problem regarding the homing of a 6 axis robot arm.
The robot has 6 steppers with closed loop, 6 CL57T drivers and a servo motor and it's controlled by an Arduino Mega. The robot is a Moveo bcn3d.
I don't know how to put the robot in a starting position (home), cause with those stepper motors i dont know the absolute position. I was thinking about putting some sensors (eg. inductive sensors and attach some small metal plates on the robot, or maybe some IR sensors) that read when certain links of the arm reach the limit.
Is there a way to do it without sensors? Or maybe a way to put it in an known position? Afterwards i can count the steps and know exactly where i am, but first i need a starting position to relate to.
Stepper motors and closed loop? If you think that your motors lose steps then you are using the wrong motors. What do you want to do if the feedback indicates that the desired position is not reachable?
With servo motors you don't have a problem with homing each motor on startup and less power while not moving.
I meant that the motors have encoders attached and the encoders are connected to the driver (sometimes they are alled cloop steppers). Was just a caution to be sure that the position is reached and no steps are lost. Anyways, the fact that those steppers are cloop deosnt help much with the reading of the position, those are incremental encoders and will only show me how many encoder pules have past since the motor moved.
This helps me achieve a greater preicision, this whole system will be linked with Matlab and Simulink programs where the main calculations are done, Arduino is used strictly to control the motors.
As you say, the servos would have been the best option but sadly until some new ones arrive in my country the deadline for this project is over.
With incremental encoders, you need some way of homing the arm to set the zero positions. Limit switches are commonly used for that. Then you just need to keep track of the encoder positions.
However, if the arm is not overloaded, so that no steps are missed, counting motor steps has the same result.
Thanks a lot, after all it seems that this is the best option for setting a home or zero position in my case, ordered the parts and I'm gonna attach them to the robot. Yupp, wont be an arm overload problem cause I'm doing a position and velocity control, so wont the robot wont be overloaded, I'm focusing for now at achieving a good precision. Maybe in future I'm gonna add torque control so that i will be able to manipulate some loads precisely, but the thing is that the 3D prints are kinda susceptible to deformation when dealing with high loads.
Thanks for the advice.