Robot Mesh bugs


#1

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:

  1. 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?

  2. I use the following procedure to find “zero position” in my robot:

    m.set_max_current(15)
    m.run(-100)
    while not m.stalled():
    pass
    sys.sleep(0.2)

    m.reset_position()
    m.run_until_position(100, corr, True)
    sys.sleep(0.2)

    m.reset_position()

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…