Motion planning refers to how movements can be planned in robots, generally either to reach a certain waypoint or to hit several destinations in a sequential order. This can be done by giving the robot computer vision or by programming the motion planning with all the obstacles in the given space so the robot immediately knows the space’s geometry. Along with simple movements such as moving forward, the robot also may have to be built for complex movements such as going down stairs. While this most commonly is used for robotics, it also has a place in video game programming, where it keeps characters from going through walls and programs non-playable characters (NPCs).
The prime task of motion planning is to tell a robot how to move. The control normally is subtle, and a defined path is not assigned to the robot, but the robot usually is told the location of the endpoint. Subtle programming means the robot will know how to move, but it will not be told strictly to go forward a certain distance to reach the goal. This can be used to give the robot one place to reach, or the robot can be programmed with several destinations to reach in a sequential order. With the control normally being subtle, the robot will use all known information to figure out its own way to the destination.
There normally are two different technologies that can be used to help with motion planning. Computer vision, or enabling robots to see and recognize obstacles, can be used so the robot knows what it can and cannot go through when attempting to reach the destination. Programming in all the space’s known obstacles and geometry — such as its size and shape — can be just as useful as computer vision but tends to lack versatility.
For basic motion planning, the robot only has to be made for simple movements that involve moving forward and backward. More advanced versions of motion planning involve complex movements, such as going down stairs or ramps. To accommodate this, the robot should have a body that can perform these movements.
Motion planning typically is used in reference to robotics, but it also can be used for video game programming. When it comes to the player’s character, this helps ensure that the character cannot go through the game’s solid objects, such as walls and miscellaneous items. For NPC paths, especially those that are not strictly programmed, this can ensure that the NPC properly goes through the game’s space.