My application is not specifically in Robotics, but the problem that I'm trying to solve seems to have been studied primarily from the viewpoint of Robotics, so I am hoping to get an answer here. Apologies if it's not the correct place.
Problem description
I am creating a virtual human agent in Unity. The agent will primarily interact with blocks on a table by sliding or carrying them from one point to another in 3D. Apart from the constraints that accompany human arms, the planned path should not result in arm colliding with other blocks, nor should the blocks collide with one another. The former case is a possibility since blocks could possibly be stacked on top of one another to form towers.
My solution
I don't have any experience in Robotics, so my solution may not be the best: First, use an IK solver to find initial and goal arm orientations, so I have initial and goal state in configuration space. This could be done by an IK solver. I'm thinking to use Cyclic Coordinate Descent, since it feels very easy to implement. Next, I'd have to implement RRT-Connect to find the path between those configurations. My knowledge on this is limited to what I've read in the RRT-Connect paper.
Questions
My questions are three-fold:
- Does the stated approach seem to be reasonable? Lacking background in Robotics, I'm afraid I might be missing something obvious.
- Is there a way to find initial and goal configurations for arm that are also collision free?
- Finally, in the tradition of being lazy as a programmer, I've been looking at OMPL to use an existing implementation for a path planner, especially since there are so many, and they'll also be well optimized. Problem is I'm not sure if there's a way to build it for .NET (C#) since that's what is used in Unity for scripting.
Any help would be greatly appreciated!