| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- import asyncio
- from robot_control.src.robot.movement import RobotMovement
- from robot_control.src.api.grbl_handler import GRBLHandler
- from robot_control.src.utils.config import GRBLConfig, MovementConfig
- """
- Interactive movement script for the robot.
- - Homes only once at startup.
- - Lets you enter X, Y, Z positions in a loop.
- - No restart or re-homing between moves.
- - Type 'exit' to quit.
- """
- grbl_config = GRBLConfig(port="/dev/ttyUSB0", baudrate=115200)
- test_config = MovementConfig(
- speed=1000,
- safe_height=10
- )
- grbl_handler = GRBLHandler(
- grbl_config.port,
- grbl_config.baudrate
- )
- movement = RobotMovement(test_config, grbl_handler)
- async def main():
- await grbl_handler.connect()
- print("Robot ready. Enter X Y Z coordinates (or 'exit' to quit):")
- while True:
- user_input = input("Target position (X Y Z): ").strip()
- if user_input.lower() in ("exit", "quit"): # Allow exit
- print("Exiting...")
- break
- try:
- x, y, z = map(float, user_input.split())
- except Exception:
- print("Invalid input. Please enter three numbers separated by spaces, or 'exit'.")
- continue
- print(f"Moving to ({x}, {y}, {z})...")
- await movement.move_to_position(x, y, z)
- print("Move complete. Enter next position or 'exit'.")
- if __name__ == "__main__":
- try:
- asyncio.run(main())
- except KeyboardInterrupt:
- print("\nExiting...")
|