<<StackHeader(arm_navigation)>>

<<TOC(3)>>

== Note ==
Starting with ROS Groovy this stack is deprecated. Replacement functionality is now part of [[http://moveit.ros.org|MoveIt!]]

== Overview (ROS Electric) ==

As of ROS Electric, the arm navigation stack has been released at 1.0.  This release marks a substantial restructuring of the stack and architecture layout of the system.  The arm navigation stack contains useful new tools for auto-generation of arm navigation applications for new robot arms and interactive tools for visualizing the different components provided by arm navigation.  

''Migrating from Diamondback'': The arm_navigation stack contains a number of package members of the old stacks motion_planning_common, motion_planners, kinematics, trajectory_filters, and the old arm_navigation stack.  

=== Installation ===

The ROS electric debians for arm_navigation are now available. So, you can use the following command to install arm_navigation

{{{ sudo apt-get install ros-electric-arm-navigation}}}

=== Getting started with arm_navigation ===

The best place to start are the electric specific tutorials on the [[arm_navigation/Tutorials | tutorial page]].  For information on using arm_navigation with your robot start with [[arm_navigation/Tutorials/tools/Planning Description Configuration Wizard | this tutorial]].

=== Migration from Diamondback ===

There will be a more substantial write-up shortly of the new features and system design, but the most important change from a compilation perspective is that the old packages mapping_msgs, geometric_shapes_msgs, move_arm_msgs, motion_planning_msgs, planning_environment_msgs, collision_environment_msgs have been collapsed into a single package called arm_navigation_msgs.  If you have code in python or C++ or ROS messages that needs any messages or headers from these packages, you can invoke [[attachment:convert_to_arm_navigation_msgs.sh | this script]] from the directory with your package or stack to make all the necessary changes.  

For an explanation of some of the most important architecture changes check out [[arm_navigation/Tutorials/Planning Scene/Understanding the Planning Scene architecture | this tutorial]].

== Tutorials/Examples ==

=== IROS 2011 Tutorial on Motion Planning for Real Robots ===

The [[http://www.ros.org/wiki/arm_navigation/Tutorials/IROS2011|IROS 2011 Tutorial on Motion Planning for Real Robots]] is a good starting point for learning about the arm navigation stacks. It will show you how to configure the arm navigation capabilities for your own robot. 

=== Wiki Tutorials ===
There is an extensive set of tutorials/example on the [[arm_navigation/Tutorials|tutorials]] page. The tutorials will show you everything from checking collisions to sending motion plans to the PR2 robot in simulation.

== Overview (Diamondback) ==

Navigation for robotic arms is implemented using a set of stacks that do everything from motion planning to trajectory filtering. These stacks include the following:
 
 1. [[motion_planning_common|motion_planning_common]] - This stack contains a common set of components and packages that are useful for motion planning. It contains a set of messages and services that are useful for specifying queries to motion planners, representing plans, etc. It also contains packages for representing geometric shapes and a filter that can remove data corresponding to the body parts of the robot from 3-D sensor data.
 2. [[collision_environment|collision_environment]] - This stack contains tools to create a representation of the environment for collision checking. It also contains a package to convert 3-D sensor data in the form of point clouds into collision maps that can be incorporated into the collision space.
 3. [[motion_planning_environment|motion_planning_environment]] -  This stack contains tools that can be used to check collisions for a given robot state, check trajectories for collision and add/subtract objects from the environment. 
 4. [[motion_planners|motion planners]] - This stack contains 3 different motion planners for creating motion plans for a robotic arm.
 5. [[kinematics|kinematics]] - This stack contains a set of messages and services for motion planning that allow you to carry out kinematics computation using a kinematics node. 
 6. [[trajectory_filters|trajectory_filters]] - This stack contains a set of smoothers that can be used to smooth out trajectories. It also contains smoothers that can be used to create collision-free smooth trajectories for the PR2 robot.
 7. ''arm_navigation'' - This stack contains an implementation of an ''action'' node that talks to the motion planners, the planning environment and the controllers to create a complete motion planning and control implementation. It also implements monitoring of executed trajectories and will preempt them if they are heading into collision with the environment. 
 8. [[motion_planning_visualization|motion_planning_visualization]] contains plugins to the rviz visualizer that let you visualize motion plans and collision maps.

In addition there are a bunch of PR2 specific stacks that contain specific implementations of different components for the PR2 robot. These include:

 1. [[pr2_kinematics|pr2_kinematics]] - This is a specific implementation of kinematics for the PR2 robot. 
 2. [[pr2_kinematics_with_constraints|pr2_kinematics_with_constraints]] - This stack contains a node to provide collision free ik solutions for the PR2.
 3. [[pr2_arm_navigation|pr2_arm_navigation]] - This stack contains launch files for running the arm navigation components on the PR2 robot. 
 4. [[pr2_arm_navigation_apps|pr2_arm_navigation_apps]] - This stack contains launch files for launching a complete motion planning and control framework for the PR2 robot arms.


== Report a Bug ==

There seems to be no arm_navigation component anywhere, but these tracs might be or might have been suitable:

Component ''motion planning'' on ''ros-pkg'': <<TracLink(ros-pkg motion+planning)>>
Component ''motion_planners'' on ''wg-ros-pkg'': <<TracLink(wg-ros-pkg motion_planners)>>
##<<TracLink(REPO COMPONENT)>> 
##i.e.<<TracLink(wg-ros-pkg motion planning)>>


## AUTOGENERATED DON'T DELETE
## CategoryStack