def GPIO_arm(pwm_arm): for pin in pwm_arm: GPIO.setup(pin, GPIO.OUT) GPIO.PWM(pin, 60) def GPIO_grip(pwm_grip): for pin in pwm_grip: GPIO.setup(pin, GPIO.OUT) GPIO.PWM(pin, 60) # Setup Adafruit PWM Hat pwm = Adafruit_PCA9685.PCA_9685() pwm.set_freq(60) logging.debug("Adafruit PWM freq set to 60") # Positioning functions def calc_servo_angles(target_vector): logging.debug("Desired gripper position vector: %s", target_vector) servo_angles = lunar_chain.inverse_kinematics(target_vector) logging.debug("Calculated servo angles: %s", servo_angles) return servo_angles def calc_dc(dc_min, dc_max, angle): dc_range = dc_max - dc_min inter = dc_range * angle / 180