<<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