Git Product home page Git Product logo

trajopt_ros's Introduction

trajopt_ros

Platform CI Status
Linux (Focal) Build Status
Linux (Bionic) Build Status
Windows Build Status
Lint (Clang-Format) Build Status

Github Issues

license - apache 2.0 license - bsd 2 clause

support level: consortium

An optimizing path planner for ROS

PR2 Table

Solvers support

trajopt_ros implements sequential convex optimization to solve the motion planning problem. It implements a penalty method to optimize for joint velocities while satisfying a set of constraints. Internally, it makes use of convex solvers that are able to solve linearly constrained quadratic problems. At the moment, the following solvers are supported:

  • BPMPD (interior point method, free for non-commercial use only)
  • Gurobi (simplex and interior point/parallel barrier, license required)
  • OSQP (ADMM, BSD2 license)
  • qpOASES (active set, LGPL 2.1 license)

While the BPMPD library is bundled in the distribution, Gurobi, OSQP and qpOASES need to be installed in the system. To compile with Gurobi support, a GUROBI_HOME variable needs to be defined. Once trajopt_ros is compiled with support for a specific solver, you can select it by properly setting the TRAJOPT_CONVEX_SOLVER environment variable. Possible values are GUROBI, BPMPD, OSQP, QPOASES, AUTO_SOLVER. The selection to AUTO_SOLVER is the default and automatically picks the best between the available solvers.

TrajOpt Examples

If you're new to TrajOpt, a great place to start is tesseract_ros_examples. This contains a number of examples to get you started. This package is no longer part of this repository, but is maintained over at ros-industrial-consortium/tesseract_ros.

Additionally, there is an industrial training module that covers TrajOpt for a pick and place application. That module can be found HERE.

Pick and Place

The pick and place example is great place to start because it shows a complete end to end process using TrajOpt. While the code itself is quite long, this is because it is showing setting up and solving 2 problems (the pick and the place) as well as attaching and detaching objects in Tesseract. It makes use of the Tesseract TrajOpt Planner which simplifies some of the problem setup.

roslaunch tesseract_ros_examples pick_and_place_example.launch

Pick and Place

Basic Cartesian

Basic Cartesian shows how to use TrajOpt directly. It also shows doing collision checking against an octomap generated from a point cloud

roslaunch tesseract_ros_examples basic_cartesian_example.launch

Glass Upright

This example shows a robot avoiding a collision while keeping its end effector orientation upright. It demonstrates how competing costs and constraints can be combined to achieve the desired results

roslaunch tesseract_ros_examples glass_upright_example.launch

Glass Upright

Car Seat Demo

The car seat demo requires and external package. Clone the Motoman driver into your workspace to use it. While it is quite complex, it shows the power of TrajOpt to plan using external axes and redundancy to solve complex manipulation tasks.

roslaunch tesseract_ros_examples car_seat_example.launch

Car Seat Demo

Puzzle Piece Demos

The puzzle piece examples show a small collaborative robot manipulaing a puzzle piece to debur the edges with either a fixed grinder or one with extra axes.

roslaunch tesseract_ros_examples puzzle_piece_example.launch

roslaunch tesseract_ros_examples puzzle_piece_auxillary_axes_example.launch

Puzzle Piece Puzzle Piece Aux Axes

Building with Clang-Tidy Enabled

Must pass the -DTRAJOPT_ENABLE_CLANG_TIDY=ON to cmake when building. This is automatically enabled if cmake argument -DTRAJOPT_ENABLE_CLANG_TIDY=ON is passed.

Building TrajOpt Tests

Must pass the -DTRAJOPT_ENABLE_TESTING=ON to cmake when wanting to build tests. This is automatically enabled if cmake argument -DTRAJOPT_ENABLE_TESTING_ALL=ON is passed.

.. NOTE: If you are building using catkin tools, use catkin build --force-cmake -DTRAJOPT_ENABLE_TESTING=ON.

Running TrajOpt Tests

TrajOpt packages use ctest because it is ROS agnostic, so to run the test call catkin test --no-deps trajopt trajopt_sco

TrajOpt Benchmarks

TrajOpt's Google benchmarks can be built by building with the flag DTRAJOPT_ENABLE_BENCHMARKING=ON.

To run the benchmarks at compile time and save the results to a json file in the build directory, add the flag -DTRAJOPT_ENABLE_RUN_BENCHMARKING=ON

Build Branch Sphinx Documentation

cd gh_pages
sphinx-build . output

Now open gh_pages/output/index.rst and remove output directory before commiting changes.

trajopt_ros's People

Contributors

a-price avatar arocchi avatar gavanderhoorn avatar haudren avatar johnwason avatar levi-armstrong avatar marip8 avatar mohamedsayed18 avatar mpowelson avatar reidchristopher avatar schornakj avatar

Stargazers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.