by Juha » Wed Jan 24, 2007 10:47 am
by Juha
Wed Jan 24, 2007 10:47 am
As Jon has been trying to say, the communication with DX vs AX is totally different. With AX one data wire is shared, information travelling there both ways. This is different from RS-485. Some places still have a bit missleading information about the protocol with AX, saying it would use RS-485.
On the original subject: Jon, so did I understand this correctly, depending on the parameters you use your AX-12 either bounces/swings back and forward, or it whines?
With the settings which give you the whining sound, does the servo reach a goal position within the set margins? Or does it stay in the moving status (0x2E = 1)?
If it's still trying to move, just as an idea, you might make a function which checks if the servo hasn't reached it's goal (+-margins) within certain expected time. After this you might have 2 choises.
Just set the goal position = current position. Ofcourse depending on how important it is for you to reach the goal position.
Another thing I was thinking about was if you could actually change slope/margin/punch _while the servo is moving_ (0x2E=1). For example, if you notice that the servo is stuck, increase the punch value. You might get some kind of hint on how much you should increase it from the current load parameter.
But, like I said, this is just an idea, and I haven't tried it myself.
As Jon has been trying to say, the communication with DX vs AX is totally different. With AX one data wire is shared, information travelling there both ways. This is different from RS-485. Some places still have a bit missleading information about the protocol with AX, saying it would use RS-485.
On the original subject: Jon, so did I understand this correctly, depending on the parameters you use your AX-12 either bounces/swings back and forward, or it whines?
With the settings which give you the whining sound, does the servo reach a goal position within the set margins? Or does it stay in the moving status (0x2E = 1)?
If it's still trying to move, just as an idea, you might make a function which checks if the servo hasn't reached it's goal (+-margins) within certain expected time. After this you might have 2 choises.
Just set the goal position = current position. Ofcourse depending on how important it is for you to reach the goal position.
Another thing I was thinking about was if you could actually change slope/margin/punch _while the servo is moving_ (0x2E=1). For example, if you notice that the servo is stuck, increase the punch value. You might get some kind of hint on how much you should increase it from the current load parameter.
But, like I said, this is just an idea, and I haven't tried it myself.