I have a pretty simple 2d manipulator which uses an arduino to control a payload weighing about 2kg. I want to implement a simple 2d path planner which takes as input:
- Current position, velocity, acceleration as 2d vectors
- Target position as 2d vector
- Bounding box as min/max x/y
- Maximum acceleration
- Maximum Jerk
... and outputs a path (function from time to (x,y)) which leads me to the target point as quickly as possible without violating the constraints.
I want to specify the initial velocity and acceleration (not just position) because a movement instruction might interrupt a movement already underway.
I want to specify the bounding box so that my payload doesn't hit any walls.
I want to specify a maximum acceleration so that the inertia of my payload doesn't overwhelm my control authority.
I want to specify a maximum jerk so that the springiness of my manipulator doesn't absorb some acceleration and whip it back at the end of travel. (I'm not sure whether I really care about maximum jerk except at the end of travel.)
Now I don't think the math here is very hard. I don't want to reinvent the wheel, but neither do I want to spend a week learning how to use a complicated and overpowered general kinematics library. Is there a very simple library that I can plug into my arduino IDE that could accomplish this for me?