Giter VIP home page Giter VIP logo

cartesian_ros_control's Introduction

ROS Industrial CI


++ Deprecation Notice ++

This repository has been split and restructured into individual packages to facilitate upstream merges into ROS mainline repositories. The development has been moved to the following places:

Please continue to file bugs and open pull requests there as usual.


Cartesian ROS Control

This package brings mechanisms for Cartesian control to the ROS-control framework.

Overview

New functionality (colored):

Colored: New contributions from this package

Rationale

As opposed to joint-based control, Cartesian control is often more intuitive for programmers to specify how a tool (robot end-effector) should move in their application. For instance, gluing, grinding, polishing and all sorts of other surface-related tasks benefit from a straight-forward task formulation with Cartesian coordinates.

It comes at a surprise that there hasn't been native support of Cartesian control in ROS. Yet, the number of OEMs, whose drivers support Cartesian control interfaces is growing. This set of packages aims at filling this gap and get you started with Cartesian control.

Major features at a glance

  • Add Cartesian functionality to ROS control. This brings new interfaces for controller design, such as a PoseCommandInterface, a TwistCommandInterface, and a new Cartesian trajectory definition. Example controllers include a TwistController and a CartesianTrajectoryController.

  • Enable Cartesian trajectory control in your applications. Specify your task comfortably with waypoints in task space. ROS-side interpolation and streaming of setpoints over the new interfaces is only one of several alternatives.

  • Use (conventional) ROS control for Cartesian trajectory execution. You don't need to change anything in the driver's HW-abstraction of your specific robot if that supports current ROS control.

  • Hand-over control to the robot by forwarding trajectories. Two new interfaces CartesianTrajectoryInterface and JointTrajectoryInterface let robots take care of driver-side interpolation to achieve best performance.

  • Speed-scale trajectory execution. All trajectory executions (both Cartesian and joint-based) can be speed-scaled within 0 to 100% at runtime. This gives you flexibility in setting-up new applications and during test runs. Changing this continuously even lets you reshape trajectory execution without re-teaching.

Robots Overview

In the spirit of ROS control, the implementation is robot-agnostic and shall support applications on a wide range of robots. The table below shows what features will be available with this enhancement.

Feature Robots with new interfaces Robots with current ROS control
Cartesian trajectory control
Cartesian trajectory forwarding
Joint trajectory forwarding
Speed-scale trajectories

Acknowledgement

Developed in collaboration between:

Universal Robots A/S   and   FZI Research Center for Information Technology.


rosin_logo

Supported by ROSIN - ROS-Industrial Quality-Assured Robot Software Components.
More information: rosin-project.eu

eu_flag

This project has received funding from the European Union’s Horizon 2020
research and innovation programme under grant agreement no. 732287.

cartesian_ros_control's People

Contributors

stefanscherzinger avatar fmauch avatar gavanderhoorn 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.