Giter VIP home page Giter VIP logo

ros2_control_demos's Introduction

ros2_control Demos

Licence

This repository provides examples for functionalities and capabilities of ros2_control framework. It consists of simple implementations that demonstrate different concepts. Choose the right branch of this repository matching you ROS 2 distribution as well as the full documentation on control.ros.org, see this table.

If you want to have rather step by step manual how to do things with ros2_control checkout the ros-control/roscon2022_workshop repository.

Content

The following examples are part of this demo repository:

Getting started

The repository is structured into example_XY folders that fully contained packages with names ros2_control_demos_example_XY.

The packages have following structure of subfolders:

  • bringup - stores launch files and runtime configurations for demo robots.
  • description - stores URDF (and XACRO) description files, rviz configurations and meshes for the example robots.
  • hardware - stores implementations of example hardware components (interfaces).
  • controllers (optional) - stores implementation of example controllers.

The important files to check in each example are:

  • bringup/launch/<example_name>.launch.py - launch file for the example
  • bringup/config/<example_name>_controllers.yaml - parameters with controllers' setup for the example.
  • description/<example_name>.ros2_control.xacro - XACRO file with ros2_control-URDF-tag with hardware setup and parameters.
  • description/<example_name>.urdf.xacro - the main description for for the example used to generate URDF on the fly that is published on the /robot_description topic.
  • hardware/<example_name>.hpp - header file of the example hardware component implementation.
  • hardware/<example_name>.cpp - source file with the example hardware component implementation.
  • controllers/<example_name>.hpp - header file of the example controller implementation.
  • controllers/<example_name>.cpp - source file with the example controller implementation.

NOTE - The structure of packages, folders and files given in this repository is not recommended to be used for your robot. Usually you should have all of the above folders defined as separate packages with naming convention <robot_name_or_type>/[bringup|description|hardware|controllers]. More standard structure can be found in ros_control_boilerplate repository from Dave Coleman or documentation on ros_team_workspace from Stogl Robotics.

The concepts in this package are demonstrated on the examples of RRBot and DiffBot. Those two world-known imaginary robots are trivial simulations to demonstrate and test ros2_control concepts.

Build status

ROS 2 Distro Branch Build status Documentation
Rolling master Rolling Binary Build
Rolling Semi-Binary Build
Documentation
API Reference
Iron master Iron Binary Build
Iron Semi-Binary Build
Documentation
API Reference
Humble humble Humble Binary Build
Humble Semi-Binary Build
Documentation
API Reference
Galactic galactic Galactic Binary Build
Galactic Semi-Binary Build
Documentation
API Reference
Foxy foxy Foxy Binary Build
Foxy Semi-Binary Build
Documentation
API Reference

Explanation of different build types

NOTE: There are three build stages checking current and future compatibility of the package.

  1. Binary builds - against released packages (main and testing) in ROS distributions. Shows that direct local build is possible.

    Uses repos file: src/$NAME$/$NAME$-not-released.<ros-distro>.repos

  2. Semi-binary builds - against released core ROS packages (main and testing), but the immediate dependencies are pulled from source. Shows that local build with dependencies is possible and if fails there we can expect that after the next package sync we will not be able to build.

    Uses repos file: src/$NAME$/$NAME$.repos

  3. Source build - also core ROS packages are build from source. It shows potential issues in the mid future.

ros2_control_demos's People

Contributors

andyze avatar ark3r avatar bmagyar avatar borgesjvt avatar christophfroehlich avatar dependabot[bot] avatar destogl avatar emereum avatar fmros avatar ikamii avatar karsten1987 avatar kvkpraneeth avatar liushuya7 avatar livanov93 avatar luis-camero avatar mahaarbo avatar mamueluth avatar mauricesvp avatar mergify[bot] avatar muritane avatar nuclearsandwich avatar olivier-stasse avatar pac48 avatar saikishor avatar sangteak601 avatar svnrk avatar t3ch9 avatar timple avatar wmmc88 avatar xi-hhhm 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.