Supervising controller and API for real-time / high-level control and fault detection layer. Allows control sequences and commands to be written in Python and sent over serial as GRBL G-Code.
Designed for Lambda, a robot arm built on Arctos v2.9.7 (Open Loop) by Arctos Robotics.
Arctos GRBL firmware (v0.1) here
- Position and state data stored remotely on computer / controlling device
- Calibrated using homing sequence
- Reads status from GRBL firmware at frequent intervals
- Methods provided for programming sequences in Python
- GRBL G-code abstracted away
- Adds parsed G-code to queue to be processed
- Actively monitors keystrokes using the
pynputlibrary in order to allow for real-time manual control of the robot axes and trigger macros / commands. - Sends inputs to
RobotControlto convert to G-code and push to serial queue.
- Reads from active command queue to send G-code to microcontroller (Arduino Mega 2560 R3).
Class methods (blank) and variables. See source code for full implementation.
class GRBLTranslation:
@staticmethod
def parse_status(status_message: str) -> str:
pass class RobotControl:
def __init__(self):
self.x = 0
self.y = 0
self.z = 0
self.a = 0
self.b = 0
self.c = 0
self.unlocked = False
self.command_queue = []
def unlock(self):
pass
def calibrate(self):
pass
def rotate(self):
pass class KeyboardInput:
def __init__(self):
pass
def on_press(self, key):
pass
def run(self):
passdef __init__(self, port):
self.port = port
self.connection_established = False
def send_packet(queue: List):
pass
Flowchart diagram of software/hardware layout.
Last updated: L4852 (026.0320)