MPK-Home
Architecture
Components
Publications
Demo Program
Videos
Downloads
Contributors
Reference
Development
|
MPK Demo Guide
Installation and Setup
Download Demo Package
From the download pages.
System Requirements
- Windows 95/98/NT/2000
- Pentium-4 or above
- Screen color depth set to HiColor or above
Installing and Running
Setting up the demonstration to run is quite simple. Unzip the files in the archive to an empty directory. The demo is run by executing Mpkgui.exe
Directory Structure
The root directory of the package contains saved example MPK scene files (*.mpk). Other sub-directories include:
- $\robots\ contains different robot definitions
- $\environment\ contains different environment (obstacles) definitions
- $\vrml models\ extra VRML files may be used
Capabilities
This demo package shows different components in MPK. Please refer to Components page for more detailed description of different components. The following is a list of components that have been bested, and known to function. Others are not fully-tested, and they are either out-of-date, or under development, and may not function well in all circumstances.
Planners
- Basic Motion Planning
- Probablistic Road Maps (PRM)
- Rapidly-exploring Random Tree (RRT)
- RRT-Connect
- Ariadne’s Clew Algorithm (ACA)
- A* (Basic)
- Inverse Kinematics Motion Planning
- Kinematics Roadmap (IK-ACA)
- Jacobian-based, where end-effector travels a straight-line
- Predefined End-effector Path (MPEP), where end-effector either travels a straight line, or other predefined shape (e.g., circle)
- Motion Planning for Closed-chain Robots
- PRM for closed chain
- RRT for closed chain
- For each of planner above, different sampling strategies can be used, including
- Randomized Gradient Descent method
- Active-passive Link Decomposition
- Motion Planning with End-effector Constraints
- Alterative Task-space And C-space Exploration (ATACE)
- Randomized Gradient Descent with Constraints (RGD-Constraints)
Collision Detectors
- V-Collide
- SWIFT++, which is capable of giving distance to the closest obstacles
Path Smoothers
- Successive Node Pair
- Random Node Pair
- Random Node Pair
Create Scenes
Create your own scenes.
Check out here.
Saved Scenes(*.mpk)
The easiest way to operate the MPK is to load up one of the saved examples that have been prepared. These examples contain a robot and some obstacles. A planner and a collision detector have been preset, and the planning task is complete. Generally the camera has been set up to provide a good view of the robot’s path. Saved examples can be loaded by accessing the File menu, and choosing Open.
Add Temporary Obstacles.
Obstacles in the environment can be loaded from a VRML file by choosing menu, Obstacle->Load From File. There is another way to add some temporary obstacles by double-clicking at where you want to add an obstacle. Please note that since the added obstacle is a 3D cylinder, when you have a tilted camera (i.e., different X, or Y value in camera Position and Lookat, see Camera/View Control section), such a cylinder may be added to an unexpected position.
User Controls
General Planner Control
The interface of general planner control is shown in Figure 1, and descriptions of different controls on the dialog are as follows.
|
Controls |
Description |
Plan Multithreaded |
Start planning (in a different thread) |
> |
Start playing the latest path found by chosen planner. |
X |
Stop playing the latest path found by chosen planner. |
Smooth |
Smooth the found path, if any path smoother selected. |
Time to run |
Time frame to play the animation for found path. |
intermediate points |
Number of intermediate configurations shown in the found path. |
Total Planning Time |
Time limit (in seconds) set for planning, before claiming failure. |
Plan in Progress |
(Automatically) checked if planning is going on |
start/goal |
Checked if start and goal configurations are desired to be shown (in green). |
joint frame |
Checked if joint frames are desired to be shown. |
white background |
Check if prefer white background, instead of black by default. |
|
|
|
|
|
|
Figure 1: General Planner Control Interface |
Planner Specific Control
For each planner, there may be some planner-specific parameters. For those planners that expect users to set these parameters, another toolbox will show up. In order to set reasonable parameters, users may need a certain knowledge of that particular planner. For instance, once you choose the PRM planner, a toolbox as shown in Figure 2 will show up.
|
|
|
|
Figure 2: PRM Planner Control |
Robot Joint Control
The interface of robot joint control is shown in Figure 3.
|
Controls |
Description |
Combo-box (upper-left) |
Select different joints |
Slider (upper-right) |
Change joint variable for the selected joint |
Set Start Configuration |
Set current configuration as the start configuration. |
Set Goal Configuration |
Set current configuration as the goal configuration. |
|
|
|
|
|
|
Figure 3: Robot Joint Control |
Camera/View Control
The interface of camera/view control is shown in Figure 4. It allows you to specify camera parameters that will affect the way the scene is drawn. Position represents the XYZ coordinates of the camera’s position in Cartesian space. Lookat represents the XYZ coordinates of the center of projection. Up represents the vector that the camera uses to orient it’s twist (generally Up should be left alone). Moving the position will have the most effect on the view. Try making the magnitude of Position smaller for a zoom in effect. The MPK uses a Right handed coordinate system, where by default +X is to the right, +Y is up, and +Z is out of the screen towards the user. Camera/view control by keyboard is also possible, as shown in the later section.
|
|
|
|
Figure 4: Camer/View Control |
Keyboard Commands
Keyboard shortcuts are also defined for some common commands for joint control, and camera control.
|
Keys |
Description |
1-9 |
Selected particular joint to move with keyboard. |
, (comma) |
Increase joint value for the selected joint |
. (period) |
Decrease joint value for the selected joint |
> |
Increase joint value for the selected joint (faster) |
< |
Decrease joint value for the selected joint (faster) |
Arrow Left |
Move camera left, by decreasing X in Position (on Camera Control UI) |
Arrow Right |
Move camera left, by increasing X in Position |
Arrow Up |
Move camera left, by decreasing Y in Position |
Arrow Down |
Move camera left, by decreasing Y in Position |
+ |
Zoom in, by decreasing Z in Position |
- |
Zoom out, by increasing Z in Position |
Ctrl+Arrow Left |
Shift the whole view to the right. |
Ctrl+Arrow Right |
Shift the whole view to the Left. |
Ctrl+Arrow Up |
Shift the whole view downwards. |
Ctrl+Arrow Down |
Shift the whole view upwards. |
|
|