Jack’s status report 11/16

  • Progress This Week:
    • Completed software integration for the gantry system. I spent a lot of time on this task due to an unforseen latency issue.
      • When a movement command is sent to the driver, there is no way to interrupt it.
      • As a result, if the user moves their hand quickly in one direction and moves their hand back, the robot will finish the first command and move all the way to one end of the axis before moving back.
      • This results in a lot of latency. Furthermore, when the user moves faster than the robot can keep up, the robot “remembers” the moves and executes each of them instead of going to where the user’s hand is currently located
      • I looked into ways to interrupt a command in progress. However, this was simply not supported by our driver board.
      • I devised a solution to break down a movement command into many tiny movements instead of one command to move a long distance.
      • The PC will only send a command when the previous one finishes.
      •  When the user moves their hand, the movement is decomposed into many small steps and queued.
      • A separated thread executes queued commands
      • When the user moves their hand again and the position updates, the queue is cleared.
      • This approach works. Currently, the latency is still noticeable but is much better.
    • We reassigned integration of the gripper to Leland
    • I built a new controller housing to accomodate the esp32 and the ARUCO tag.
    • Leland’s camera stand has not arrived so I built one from scratch.
    • during integration test, we found that the gripper could grip a 500g water bottle by the cap reliably.
    • Gantry movement was reasonably smooth. The speed is a bit slower than I expected so I designed a different pulley. It will be added after MVP demo.
  • Goal next week:
    • optimize gantry software to reduce latency
    • add force sensing resistors to the gripper to do force-sensitive control
    • assemble z-axis mechanism
  • Verification plan for gripper system:
    • use case requirement: be able to move 300g payload
      • This will be tested using a water bottle whose shape roughly matches a typical beaker. Performance of a gripper can vary a lot based on where the gripper makes contact. For the payload requirement, I think I will specify that the gripper engages with the middle of the bottle, as opposed to grabbing it by the lid.
    • design requirement: be able to output 6N force at the gripper
      • This will be verified using a kitchen scale. The gripper will grab a kitchen scale at full force.
  • Verification plan for gantry system:
    • design requirement: position repeatability of 2mm:
      • This will be tested using a testing script that commands a fixed set of movements on the gantry. At fixed intervals, the testing script will stop the gantry briefly to allow us to use a pen to mark its position on a piece of paper.
        • The dots on the paper will be measured against the commanded movements
    • design requirement: speed
      • speed requirements will be verified using a video recording. A testing script will command a movement along each axis for a fixed distance. Time to execute the movements will be used to calculate the average speed.

Leave a Reply

Your email address will not be published. Required fields are marked *