Source code for artificialpicasso.ArmTestTemplate

"""
Convenient template for testing arm movements. In interactive mode, DO NOT stop the program with Ctrl + Z;
otherwise, the arm will not reset to the default positions properly. Use Ctrl + D or exit() instead.
"""
from arm import ArmController
from servo_utils import make_servo
import time
import atexit

if __name__ == '__main__':
    # lengths are in cm, but any unit is fine as long as they are all consistent
    paper_delta_x = paper_delta_y = 3.5
    paper_width = 27.6
    paper_height = 21.3
    controller = ArmController(arm1len=20, arm2len=22.3, arm1servo=make_servo(5), arm2servo=make_servo(0),
                               tip_servo=make_servo(1))
    atexit.register(controller.reset_positions)


[docs]def move_to_paper_coords(x: float, y: float, *rest) -> None: controller.move_to(x + paper_delta_x, y + paper_delta_y, *rest)