Computing an IK solution
Computing an inverse kinematics solution to a problem can be done in closed form for some robots, but typically, optimization approaches are used, as the goal that should be reached is often underspecified (e.g. in the pen plotting case, we do not care about the orientation of the pen around its axis, and we are given quite a bit of freedom of the angle of the axis with respect to the paper we want to make a dot on).
However, the resulting problem is very nonlinear due to collision avoidance requirements.
Finding diverse solutions
It can be the case that we want to find multiple diverse soltions to a problem. The motivation for me is from this paper or this blog post on stippling with multiple robots. In both cases, I want multiple valid solutions to find sets of solutions for multiple robots that do not conflict with other robots, i.e. do not collide with other robots. As described in the blog post, this can - in the case of two robots - be showsn as a bipartite graph.
The dumb approach is simply randomizing the initial pose from which the optimization algorithm starts. There is some more intricate research going on here though:
- Learning based with normalizing flows: IKFlow
- Learning Reachable Manifold and Inverse Mapping for a Redundant Robot manipulator.
On the topic of quickly generating valid sequences for manipulation planning problems, I was involved in some research:
In other fields: