While working on my latest VEX IQ project (http://www.vexiqforum.com/forum/main-category/vex-iq-robot-showcase/35344-svg-painter) i found some strange behavoir in Robot Mesh Studio API:
All motor run and run_xxx methods provide “hold” parameter, which is un-usable. May be I use it wrongly, but motor enter hold mode anyway independed of “hold” parameter value. Is this a bug?
I use the following procedure to find “zero position” in my robot:
while not m.stalled():
m.run_until_position(100, corr, True)
where the “corr” variable is some predefined correction angle. I feel that the above code is equivalent to the following:
m.set_max_current(15) m.run(-100) while not m.stalled(): pass sys.sleep(0.2) m.run_until(100, corr, True) # Now I use relative distance without reset sys.sleep(0.2) m.reset_position()
But, in practice, second (relative) version works not stable as opposedto the first one. May be someone can explain why? What is the difference between these two code fragments? May be “reset_position” is a long method which use some sort of averaging?..
Btw, because of this issue, I can’t switch to “raw” methods, because there no run_raw_to_position and **run_raw_until_position **methods…