LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Problem stopping the Labview Starter Kit motors (huge offset?)

Hi

 

I implemented an algorythm for the Labview Starter Kit. It reads a map and navigates from the initial point to the goal. The Starter Kit only performs two movements: "go straight X mm", and "turn 90º left/right (the turning is made when stopped, like a rotation).

 

The problem Im encountering is the turning. It uses a digital compass (CMPS09): when the robot needs to turn left/right, I feed the CCW Velocity of the motors (using the read/write FPGA functon) with +3.4 rad/seg and -3.4 rad/seg, into a timed loop.

 

The condition to stop is simple: "if heading=desired heading for the actual turn --> finish loop and stop motors".

 

Well, it happens that in the time window from calling the "stop motor" function, and the robot motors and wheels actually STOPPING, the robot travels 9-10 extra degrees!

 

So, for example, I want the robot to turn from north (0º) to 90º. The CCW velocities are feed with +3.4rad/seg and +3.4rad/seg into a timed loop, and I checked that the timed loop finishes when the heading is 90º. But the final orientation of the robot is exactly 100º, because the motor seems to take a little time to stop.

 

The deviation depends on the velocity of the motors, I was able to reduce it to 3/4 degrees using a turning velocity of 1rad/seg, but it has no use since it´s extremely slow and the motors works very badly (they dont even are able to maintain a constant speed in slower velocities).

 

I tried to check the Starter Kit FPGA.VI but I fail to understand how the "stop motor" function works.

 

I dont know if there is any way to correct or reduce the "stopping time" of the motors. If I correct the turning function to subtract 10º for every turnop before starting the movement, the algorythm works as long as I use the 3.4rad/seg velocity... but that solution is extremely shabby, and I dont think I cant say that on my Final Project! There has to be a way to improve it, isn´t it?

 

EDIT: For the record, I tried several variations for the loop, and several timing, form us to ms, and I think that´s not the problem, because I wasnt able to get better resulsts at all.

0 Kudos
Message 1 of 1
(2,491 Views)