100 likes | 114 Views
This project uses graph-based path planning with inverse kinematics to plan paths for an arm with constraints and obstacles, using a geometric approach and A* algorithm.
E N D
Arm Planning Ryan Keedy6 / 6 / 2012
Approach • Create graph of configuration space • Discretize and connect nodes in the domain • Given a goal node (by mouse click), use inverse kinematics to determine potential goal configurations • Must constrain; in our case, attempt to make the last two segments have right-angle orientation • Use A* to plot paths to our goal configurations • Select the shortest path (depends on adjacency cost) • Move fluidly between configurations in the path • Finish path using Jacobian method for movement
Graph Creation • This is the most time-consuming part of the code • Most room for optimization • Prefer to perform this up front, because it is not terribly difficult to find a configuration that has no path, for which A* exhausts the domain • I choose to discretize the “larger” joints more thoroughly than the smaller ones
Inverse Kinematics • Using a geometric approach, a constraint (or two) should be picked to limit the otherwise infinite possibilities in a 3-joint system • Just about any constraint will do • Require the last two joints to end in a right angle • Relax this requirement if a configuration cannot be found
Now that we have a constraint (pre-determining the length from joint #2 to the end effecter), we can determine the possible configurations These configurations must be checked to make sure there are no collisions with obstacles/ground Inverse Kinematics
Path Planning • Use the version of A* provided in original path planning code • Plan for (up to) four configurations; use the shortest • Right now, cost is a function of discretization, not angle size • Thanks in part to the sparsity of the graph, the algorithm is pretty quick • Occasionally the configuration is unreachable, which slows stuff down
Path Procession • Divide up each increment of configuration space an arbitrary number of times • Update the arm incrementally between configurations in our path • Assumption is that graph is refined enough that no obstacles will be in between configuration states
Path Conclusion • Goals will almost inevitably not be reached by an exact location in configuration space • A slight nudge will be needed to get actuator to the objective • Jacobian method is used for the last nudge to the objective out of a set configuration
Observations • Shortest path means obstacles are often skirted • Consider making the obstacle radius larger than physically accurate • “Shortest” path may be ambiguous • Is the cost of each angle movement equal? • Configuration may not be very “close” relative to other possibilities • Use of Jacobian may result in impact at the beginning/end of movement
Further Work • Connections now are just between adjacent angular configurations (changing only one angle at a time) • Consider adding “diagonal” adjacencies • Adjust cost of movement to encourage certain behaviors • Explore additional acceptable configurations to find even shorter paths