Shaking forearm

OK forget about what I said! As soon as I touch/move a bit the wires on the controller side, the motor stops shaking!

I will do some updates to use a different port for this motor and see how it behaves!

Some RC servos can have issues like that mostly when it a position where the forces are too equals.
The motor will always have some backlash and the feedback might request a move, then it’s over moving which then create an oscillation. That’s partly the reason why there is a spring included but your particular position could be problematic.

1 Like

I moved the motor to #7 and it’s now working perfectly. It’s working for about 2h without any shaking. I will keep it working for another 3 or 4 hours but it already looks way better! Not sure why 3 was doing this. But at least I can be back at sorting the cards and improving my ML models :wink:

2 Likes

It would be weird that this specific output is defective. (not impossible)
But maybe your code sometimes mix some #ID and it affect ID3 only ? The only way to find out would be to monitor that with a scope but that’s not for everyone.

1 Like

I went the dirty way :wink:

	public void moveMotor(int motor, int pulse, int speed) throws IOException {
		if (motor == 2) {
			motor = 7;
		}
		send("#" + motor + "P" + pulse + " T" + speed + (char) 13);
		positions[motor] = pulse;
	}

So if something was messing up with the motor, it will still be messing up the same way as I have just hard-coded the move. And it was not always shaking. I’m wondering if by removing the wire and re-plugging it, I kind of cleaned up maybe? I don’t know. Or it’s further from its interference?

Whatever it is, it’s still working without an single issue! Did I already tell you how cool this is? :wink:

Oh, one question since we are here. I need a wider ā€œwristā€, where I can fit 2 suction cups and one spring in the middle. I imagine I will have to custom build this. I’m wondering if there is the plan of the one I have somewhere available that I can use as a starting point for my drawing…

2 Likes

Not really unfortunately. If you have a 3D printer available, you can potentially design a cool custom mount for this type of setup (or source it online). The tubing used is pretty standard, so yo ucan get a coupler that splits into three. The question then becomes the pump / motor and suction it can produce.

Happy to hear it’s working!

1 Like

Nice…!!! That’s some good news.

1 Like

Sorry to bring this again, but the shaking is back. :frowning:

On the video I send 1200 to one motor and 0 to all others, 15 second delay, next.
The first 2 are reacting well, the 3rd not. I tried on 2 and #11 with the same result.

I will change the motor, to see if it helps. Do you know if there is a way to go pick on up onsite today? So I can play with it over the week-end…

Thanks,

JM

1 Like

Hi JM,

I’m not sure I understand your test in the video, can you explain it a bit more ?

:slight_smile:

1 Like

Sure!

			for (int i = 0; i < 5; i++) {
				robot.sleep();			
				robot.moveMotor(i, 1200);
				Thread.sleep(15000);
			}

ā€œsleepā€ just sends pulse 0 to all the pins to put the motors asleep.
So one at a time, I send a pulse 1200 to one motor. Starting from the shoulder. On the video you can see that all those with pulse 0 can move freely and the one with pulse 1200 is locked, as expected.

But when I send pulse 1200 to the 3rd motor, you can see that it starts jumping/shaking, instead of staying steady.

I tried to have him on pin 2, 8, 15, all the same. Always shaking. I really think the motor has an issue and I will replace it. I’m just hoping I can drive to RobotShop to get it not sure if it’s doable (Open to public) and who to reach to.

1 Like

Ok - Sorry for my misunderstanding at first, I understand now.

The servo could shake because it’s trying to move to a position but never achieve it so it’s oscillating.
It could also be that you are refreshing that position all the time at a rate that’s too fast, maybe you can change that rate ?

Do you have your order number for the arm ?

1 Like

Note: If you build it yourself, which servos are in which location ? Maybe you have too weak of a servo as well

1 Like

The servo could shake because it’s trying to move to a position but never achieve it so it’s oscillating.

I don’t this it’s that. I tried with different values, and it always moves close to the right position, but then starts shaking around that position.

It could also be that you are refreshing that position all the time at a rate that’s too fast, maybe you can change that rate ?

I’m not refreshing the position. I just send one order and pause doing absolutely nothing for 15 seconds.

	public void moveMotor(int motor, int pulse) throws IOException {
		moveMotor(motor, pulse, 1000);
	}
	public void moveMotor(int motor, int pulse, int speed) throws IOException {
		send("#" + MOTORPIN[motor] + "P" + pulse + " T" + speed + (char) 13);
	}

Do you have your order number for the arm ?

973838 :wink: Been some time!

Note: If you build it yourself, which servos are in which location ? Maybe you have too weak of a servo as well

I build using the kit, following the instructions. So the 3rd motor is the 755HB.

I just changed the wires and the pin again, and it stabilized. Hahaha. I have really no clues what this can come from! I might order one longer wire to avoid having couplings… Maybe it doesn’t like it.

1 Like

Need to know if it’s a mechanical oscillation or something induced by the signal sent.
If you disconnect the horn from everything or if you have another servo that’s not in the arm, you could just run the code and see if you have oscillations.

Even disassembling this part and try it on the table unloaded…

A servo will try to reach the position based on the internal potentiometer, if there is play in the gears or the assembly shake you could have an oscillation like the one you see.

1 Like

Need to know if it’s a mechanical oscillation or something induced by the signal sent.
If you disconnect the horn from everything or if you have another servo that’s not in the arm, you could just run the code and see if you have oscillations.

Oh, that’s a good idea! I have a spare HS-422. Next time the oscillation starts again, I will rerun my exact same test, but I will connect this spare motor instead of the 3rd one!

Even disassembling this part and try it on the table unloaded…

Hopefully the spare part will help me to avoid that. Else, well, I will disassemble! Surgery time!

A servo will try to reach the position based on the internal potentiometer, if there is play in the gears or the assembly shake you could have an oscillation like the one you see.

But the thing is that from time to time it works perfectly well. Which is the case for the last hour. So it seems that the gears are fine. I’m wondering if there is some interference somewhere on the wires. I might rework on that a bit and see if it helps…

1 Like

(you got mail)

1 Like