---
# System prepended metadata

title: High-level

---


# High-level

- Chess engine
- Board scanning -> FEN (Engine notation)
- Outputs: coordinates of pick and place coordinates of robot

## Planning 
- Sampling-based planners
    - RRT*
    - Maybe next time
- Collision detection
    - Next time 


### Linear interpolation for the planner
- Known values: z-offset=0.1m, pose of board
- Calculate pick and place positions from  board pose and coordinates from high-level and 

1. Center above pick position 
2. Pick position
3. Go up 
4. Center above place position
5. Place position 
6. Go up
7. Home position

Outputs list of xyz positions

Inverse kinematics: xyz to joint angles 

Feed joint angles to Control

# Perception
- Cameras capture board state for FEN notation
    - Done

# Control

Goal: Given joint values, execute control commands that reach those joint values

Constraints:
1. Low-velocity movements
2. Stay within joint limits
3. Follow waypoints within tolerance


Build controller that solves these constraints

- PID controller
    - Hard to tune
    - less computatlion
- MPC controller
    - Easier to tune
    - more computation

- [AX-12A Servo Control Docs](https://emanual.robotis.com/docs/en/dxl/ax/ax-12a/)

- [read/write to servo](https://github.com/ROBOTIS-GIT/DynamixelSDK/blob/master/python/tests/protocol1_0/read_write.py)
- 

- Raghava