Side note on Servo Test Progam:
I added a couple of intermediary steps, such that in no step should we be asking the servos to move more than maybe 45 degrees in .25 seconds⊠So they all should be well within Max Speed.
Note: First run I have it where I replaced all of the MoveT calls with Move calls
Actually this one run I had few calls failâŠ
Cmd: i
Checks Status wait loops 1 in us: 15512
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(-900, 0, -901) T:5(-600, 0, -599)
C:13(0, 0, 0) F:15(-900, 0, -899) T:17(-600, 0, -597)
C:1(0, 0, 0) F:9(-900, 0, -901) T:11(-600, 0, -601)
C:2(0, 0, -2) F:4(-900, 0, -899) T:6(-600, 0, -600)
C:14(0, 0, -3) F:16(-900, 0, -899) T:18(-600, 0, -601)
C:2(0, 0, -2) F:10(-900, 0, -900) T:12(-600, 0, -599)
Checks Status wait loops 61 in us: 408830
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(-450, -748, -481) T:5(-300, -427, -289)
C:13(0, 0, 2) F:15(-450, -727, -463) T:17(-300, -452, -293)
C:1(0, 0, 0) F:9(-450, -727, -471) T:11(-300, -433, -292)
C:2(0, -1, -1) F:4(-450, -713, -459) T:6(-300, -416, -289)
C:14(0, -3, -3) F:16(-450, -707, -452) T:18(-300, -411, -292)
C:2(0, -2, -2) F:10(-450, -717, -469) T:12(-300, -389, -288)
get status for Tibia servo:17 for leg:1 failed on loop: 32
Checks Status wait loops 34 in us: 404811
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(0, -317, -68) T:5(0, -150, 3)
C:13(0, 0, 0) F:15(0, -302, -57) T:17(0, -165, 2)
C:1(0, 0, 0) F:9(0, -302, -59) T:11(0, -141, 4)
C:2(0, -2, -1) F:4(0, -287, -59) T:6(0, -134, 2)
C:14(0, -3, -2) F:16(0, -278, -42) T:18(0, -127, 2)
C:2(0, -2, -1) F:10(0, -275, -45) T:12(0, -125, 3)
Checks Status wait loops 45 in us: 402365
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(450, 117, 367) T:5(450, 140, 376)
C:13(0, 1, 2) F:15(450, 153, 390) T:17(450, 137, 379)
C:1(0, 0, 0) F:9(450, 153, 386) T:11(450, 149, 381)
C:2(0, -2, -2) F:4(450, 163, 396) T:6(450, 163, 388)
C:14(0, -2, -2) F:16(450, 162, 396) T:18(450, 166, 399)
C:2(0, -2, -1) F:10(450, 169, 394) T:12(450, 168, 394)
Checks Status wait loops 51 in us: 407499
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(0, 297, 37) T:5(0, 277, 29)
C:13(0, 1, 1) F:15(0, 281, 27) T:17(0, 277, 29)
C:1(0, 0, 0) F:9(0, 276, 24) T:11(0, 277, 30)
C:2(0, -2, -3) F:4(0, 277, 26) T:6(0, 269, 23)
C:14(0, -3, -4) F:16(0, 261, 18) T:18(0, 271, 22)
C:2(0, -2, -2) F:10(0, 263, 24) T:12(0, 245, 5)
Checks Status wait loops 68 in us: 408522
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, -1) F:3(-450, -129, -388) T:5(-300, -156, -304)
C:13(0, 0, 1) F:15(-450, -147, -390) T:17(-300, -148, -303)
C:1(0, 0, 0) F:9(-450, -152, -399) T:11(-300, -148, -300)
C:2(0, -2, -2) F:4(-450, -163, -408) T:6(-300, -173, -303)
C:14(0, -3, -3) F:16(-450, -178, -417) T:18(-300, -181, -302)
C:2(0, -2, -2) F:10(-450, -178, -413) T:12(-300, -176, -300)
get status for Tibia servo:12 for leg:5 failed on loop: 26
Checks Status wait loops 48 in us: 409546
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(-900, -709, -834) T:5(-600, -555, -602)
C:13(0, 1, 1) F:15(-900, -743, -851) T:17(-600, -561, -603)
C:1(0, 0, 0) F:9(-900, -742, -849) T:11(-600, -565, -601)
C:2(0, -2, -2) F:4(-900, -758, -859) T:6(-600, -574, -604)
C:14(0, -3, -3) F:16(-900, -767, -859) T:18(-600, -579, -604)
C:2(0, -2, -2) F:10(-900, -770, -864) T:12(-600, -577, -6
Notice they all still took something over .4 secondsâŠ
Now to undo that part and do the timed moves to see if anything is different?
Maybe a little:
Cmd: i
Checks Status wait loops 1 in us: 15680
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(-900, 0, -901) T:5(-600, 0, -599)
C:13(0, 0, -1) F:15(-900, 0, -902) T:17(-600, 0, -602)
C:1(0, 0, 0) F:9(-900, 0, -901) T:11(-600, 0, -600)
C:2(0, 0, -2) F:4(-900, 0, -902) T:6(-600, 0, -597)
C:14(0, 0, -4) F:16(-900, 0, -901) T:18(-600, 0, -603)
C:2(0, 0, -2) F:10(-900, 0, -902) T:12(-600, 0, -599)
get status for Femur servo:16 for leg:4 failed on loop: 35
Checks Status wait loops 52 in us: 495515
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(-450, -759, -484) T:5(-300, -462, -291)
C:13(0, 0, -1) F:15(-450, -751, -479) T:17(-300, -464, -289)
C:1(0, 0, 0) F:9(-450, -745, -474) T:11(-300, -453, -291)
C:2(0, -2, -2) F:4(-450, -717, -444) T:6(-300, -496, -297)
C:14(0, -4, -3) F:16(-450, -735, -462) T:18(-300, -452, -291)
C:2(0, -2, -2) F:10(-450, -715, -447) T:12(-300, -447, -288)
get status for Tibia servo:5 for leg:0 failed on loop: 12
Checks Status wait loops 49 in us: 499530
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(0, -345, -68) T:5(0, -200, 3)
C:13(0, 0, -1) F:15(0, -336, -57) T:17(0, -212, -7)
C:1(0, 0, 0) F:9(0, -333, -56) T:11(0, -191, 8)
C:2(0, -2, -2) F:4(0, -308, -36) T:6(0, -210, -4)
C:14(0, -4, -4) F:16(0, -324, -42) T:18(0, -191, 4)
C:2(0, -2, -2) F:10(0, -303, -23) T:12(0, -206, -5)
Checks Status wait loops 59 in us: 508629
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(450, 96, 391) T:5(450, 110, 407)
C:13(0, -1, -1) F:15(450, 110, 404) T:17(450, 111, 415)
C:1(0, 0, 0) F:9(450, 109, 404) T:11(450, 128, 427)
C:2(0, -2, -2) F:4(450, 129, 422) T:6(450, 111, 413)
C:14(0, -4, -4) F:16(450, 124, 420) T:18(450, 125, 422)
C:2(0, -2, -1) F:10(450, 134, 421) T:12(450, 124, 420)
Checks Status wait loops 56 in us: 499656
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(0, 302, 33) T:5(0, 297, 23)
C:13(0, -2, -1) F:15(0, 284, 20) T:17(0, 289, 18)
C:1(0, 0, 0) F:9(0, 287, 18) T:11(0, 279, 9)
C:2(0, -2, -2) F:4(0, 279, 15) T:6(0, 275, 8)
C:14(0, -4, -4) F:16(0, 274, 4) T:18(0, 285, 19)
C:2(0, -2, -2) F:10(0, 270, 6) T:12(0, 275, 5)
Checks Status wait loops 63 in us: 503455
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(-450, -107, -386) T:5(-300, -90, -292)
C:13(0, -1, -1) F:15(-450, -117, -401) T:17(-300, -90, -293)
C:1(0, 0, 0) F:9(-450, -125, -406) T:11(-300, -93, -296)
C:2(0, -2, -2) F:4(-450, -126, -409) T:6(-300, -111, -303)
C:14(0, -4, -4) F:16(-450, -127, -415) T:18(-300, -117, -305)
C:2(0, -2, -2) F:10(-450, -150, -424) T:12(-300, -112, -307)
get status for Femur servo:3 for leg:0 failed on loop: 19
Checks Status wait loops 51 in us: 508846
Print Servo Positions Joint(Goal, timed, end)
C:1(0, 0, 0) F:3(-900, -568, -847) T:5(-600, -404, -602)
C:13(0, -1, -1) F:15(-900, -581, -870) T:17(-600, -400, -602)
C:1(0, 0, 0) F:9(-900, -577, -850) T:11(-600, -405, -601)
C:2(0, -2, -2) F:4(-900, -598, -869) T:6(-600, -403, -599)
C:14(0, -4, -4) F:16(-900, -599, -880) T:18(-600, -415, -603)
C:2(0, -2, -2) F:10(-900, -614, -882) T:12(-600, -407, -605)
Still some more playing needed. Maybe I should check to see if there are any other example sketches that use the Timed modifiers and try to verify the timing? I donât remember seeing any. Or wonder if better luck in calculating speed and using it?
Or in the end doing our own complete interpolation and bang out as many frames per second as we can do.
It would be interesting to see how these timings compare as to if I were to hook up an SSC-32. I am almost tempted to see if I can grab an SSC-32 and an RC servo and rig up test sketch that maybe runs one servo here and one LSS that maybe do simple sweep program or the like that moves the servos back and forth maybe over a arc like ±60 degrees at different speeds and different times and see how the two servos track each other.
@cbenson and @dialfonzo (and others) Do you already have a setup and sketch like this? I would imagine you had already done this as part of the Servo Beta? As something like that would help demonstrate to users how they can transition from SES 1 using SSC-32 to SES-2 using LSS?
Now back to playing