03/21/21 - SW/FW Standards

03/21/21 - SW/FW Standards

03/21/21

Notes

  • Position

    • SW always sends absolute position in radians

    • Joint ranges (TODO: figure these out for all the joints)

      • Turntable

        • -90 to +90 (0 is the middle)

      • Shoulder linear actuator

        • 0 to max + value

      • Elbow

        • TBD

      • Wrist

        • 0 = parallel to forearm (for pitch and roll)

    • URDF determines default positions + directions (cw / ccw)

      • Backburner: move this somewhere shared between sw/fw

    • All absolute encoders track joint position

    • Continuous motion joints (range is -inf to + inf)

      • Wrist roll

      • Gimbal pan

        • Backburner: report continuous position (eg. >360 degree positions)

      • Want to be able to move x many rotations

  • Velocity

    • SW sends velocity in rad/s

    • Directions follow position directions

  • Current

    • Amps

  • Force

    • Newtons

  • Need to calibrate relative encoders to determine range

    • Do not allow these commands until calibration complete

    • Have calibrate commands (don't calibrate on startup)

    • Wrist calibration sequence

      • Rotate until middle limit switch is triggered (is either 0 position or some known offset) (roll)

      • Run both motors at same speed until top limit is reached (pitch)

      • Run both motors at same speed until bottom limit is reached (pitch)

  • Differential control (wrist)

    • SW sends motor commands

  • Everything else

    • SW sends joint commands

  • Reset command

    • PID

      • Doesn't reset gains, resets accumulator

    • Encoders

      • Relative

        • Reset count to 0

      • Absolute

        • Don't reset position to 0

  • TODO

    • Keep FW in joint space for now, but

    • We should eventually move everything to motor space (no more joint space)

      • FW needs to convert between motor and joint (sensors live here) space

    • Get ranges of motion from mech

 

Comments