Only released in EOL distros:
Package Summary
Descartes is a ROS-Industrial project for performing path-planning on under-defined Cartesian trajectories. More details regarding motivation can be found in rep-I0003.rst.
- Maintainer status: developed
- Maintainer: Shaun Edwards <sedwards AT swri DOT org>, Jorge Nicho <jorge.nicho AT swri DOT org>, Jonathan Meyer <jonathan.meyer AT swri DOT org>
- Author: Ratnesh Madaan <ratneshmadaan AT gmail DOT com>
- License: Apache2.0
- Source: git https://github.com/ros-industrial-consortium/descartes.git (branch: hydro-devel)
Package Summary
Descartes is a ROS-Industrial project for performing path-planning on under-defined Cartesian trajectories. More details regarding motivation can be found in rep-I0003.rst.
- Maintainer: Shaun Edwards <sedwards AT swri DOT org>, Jorge Nicho <jorge.nicho AT swri DOT org>, Jonathan Meyer <jonathan.meyer AT swri DOT org>
- Author: Ratnesh Madaan <ratneshmadaan AT gmail DOT com>
- License: Apache2.0
- Source: git https://github.com/ros-industrial-consortium/descartes.git (branch: indigo-devel)
EXPERIMENTAL: This status indicates that this software is experimental code at best. There are known issues and missing functionality. The APIs are completely unstable and likely to change. Use in production systems is not recommended. All code starts at this level. For more information see the ROS-Industrial software status page. |
Contents
Overview
Descartes is a ROS-Industrial project for performing path-planning on under-defined Cartesian trajectories. More details regarding motivation can be found in rep-I0003.rst.
From a software architecture perspective, Descartes uses trajectory points, robot models, and planners to generate an joint-trajectory that complies with the constraints of a given process.
Trajectory Points define an individual point in time along a path. These points encapsulate the logic for how to search for valid joint solutions given a user's process requirements, including constraints / tolerances.
Robot Models define the physical characteristics of a robot that must complete a given trajectory. Calculations such as forward and inverse kinematics and validity checks are performed by the robot model.
Planners are the highest level component of Descartes' architecture. They are responsible for finding valid and optimal solutions through a sequence of trajectory points for a given robot model.
Each of these major components has a separate package which provides reference implementations. More information can be found in the ROSCon 2015 talk by Shaun Edwards entitled, "The Descartes Planning Library for Semi-Constrained Cartesian Trajectories"
Key Features
Descartes, as a path planning library, is often compared to MoveIt. However, it differs from MoveIt in several key ways:
Cartesian Planning: While MoveIt plans free space motion (i.e. move from A to B), Descartes plans robot joint motion for semi-constrained Cartesian paths (i.e. ones whose waypoints may have less than a fully specified 6DOF pose).
Efficient, Repeatable, Scale-able Planning: The paths that result from Descartes appear very similar to human generated paths, but without all the effort. The plans are also repeatable and scale-able to the complexity of the problem (easy paths are planned very quickly, hard paths take time but are still solved).
Dynamic Re-planning: Path planning structures are maintained in memory after planning is complete. When changes are made to the desired path, an updated robot joint trajectory can be generated nearly instantaneously.
Offline Planning: Similar to MoveIt, but different than other planners, Descartes is primarily focused on offline or sense/plan/act applications. Real-time planning is not a feature of Descartes.
Applications
Descartes has already been used in several ROS-Industrial applications. The first application involved using Descartes as an offline path planner for a robotic routing.
The second application of Descartes was a automatic planner for a robotic grinding application.
Note that the GUIs in the videos are NOT part of descartes. They are proprietary software that may not be available opensource. For Cartesian offline planning, see moveit_cartesian_plan_plugin / fermi.
Structure
The Descartes stack is broken into the following packages:
descartes_core
The descartes_core package defines the interfaces for trajectory points, robot_models, and planners. See the docs for more information about the APIs associated with these concepts.
descartes_moveit
The descartes_moveit package offers a reference implementation of a Descartes robot_model that makes use of MoveIt! to provide its functionality. More details at descartes_moveit.
descartes_planner
The descartes_planner package contains reference planner implementations that can provide solutions to trajectories using different algorithms. More details at descartes_planner.
descartes_trajectory
The descartes_trajectory package contains reference implementations for common types of trajectory points such as points defining a certain Cartesian pose or a certain joint configuration. More details at descartes_trajectory.
Tutorials
See the Tutorials page for an overview of the available tutorials.
Contact us/Technical support
For questions about this package or ROS-Industrial in general, please contact the developers by posting a message in the ROS-Industrial category on ROS Discourse.
Report a Bug
Use GitHub to report bugs or submit feature requests. [View active issues]