# How to convert a search solution to a path to be tracked?

Let's say I have a space with obstacles and I'm trying to control a robot's movement while avoiding obstacles. I also have a start state and a goal state. I use a search algorithm to find the shortest path from the start state to the goal state (actually I really don't care if the path is optimal or not at this stage, I just have a path and I want to follow it).
So the path is actually an array of actions, [up, up, left, ...]. I was wondering how should I convert this array of actions to a real path to be tracked by a robot?

Should it be just an array of waypoints? Or I could generate a smooth path from this array of actions?

The path is an array of actions that you could use and get an array of points in the working space. How should one convert these points into a path which is a function of time i.e. convert the result of a search algorithm into a control problem such that I have a desired path and now I have to design a controller for the robot to follow that path.

The way I've implemented the search algorithm I'm getting a series of up/left/... commands as the output. It's easy to convert this array of commands to a set of points but I'm not sure on how to convert this set of points to a path. Once I have a path it's relatively easy to design a controller for a robot to follow it. Right now I'm just looking for methods on how to convert this points to a path. I've found a report with extensive details on how to use splines and generate a path. But it would be great if I could find other methods and compare them.

Just as an example of what I'm looking for, if I have:

x(t) = sin(2t);
y(t) = cos(6t);


I have to design a controller for the robot to follow this path:

Now, my question is what methods there are to generate such paths which also take into account the constraints on movement of the robot. I hope the question is more clear now.

I've found a great report on how to convert a set of points to a smooth path using splines but I would appreciate if someone could give some information on other available methods.

• I'm not sure if this is on-topic -- it smacks like implementation to me -- but I'm not familiar with robotics. Community votes, please? – Raphael Mar 10 '15 at 7:49
• The question is rather vague: it's unclear whether it's asking for methodologies, algorithms, or an actual implementation. How to move robots around at the level of detail seen in the question is covered pretty well by textbooks, e.g., Section 25.6 of Artificial Intelligence, a Modern Approach (Russell and Norvig, 3rd ed., Pearson, 2014). – David Richerby Mar 10 '15 at 12:57
• I tried to add more details to the question. If it's not the right place for it let me know and I'll remove it. – Ali Mar 10 '15 at 14:53
• I don't think this is way off topic, although you might find an audience with better expertise on robotics.stackexchange.com. The problem is that the question is still way too vague. How far off the path are you allowed to get? In one part of the question you seem to apply that your control system is discrete, but then the picture looks continuous. Is there any feedback, or are you trying to do this open loop? Is the input a series of up/left/right commands that you are trying to convert into a path in space or a path in space that you're trying to convert to commands? – Wandering Logic Mar 10 '15 at 16:55
• @WanderingLogic The way I've implemented the search algorithm I'm getting a series of up/left/... commands as the output. It's easy to convert this array of commands to a set of points but I'm not sure on how to convert this set of points to a path. Once I have a path it's relatively easy to design a controller for a robot to follow it. Right now I'm just looking for methods on how to convert this points to a path. I've found a report with extensive details on how to use splines and generate a path. But it would be great if I could find other methods and compare them. – Ali Mar 11 '15 at 2:16