GithubHelp home page GithubHelp logo

frankaemika / the_reference_platform Goto Github PK

View Code? Open in Web Editor NEW
40.0 6.0 5.0 1.5 MB

A Tutorial on The Reference Platform for AI and Robotics Research and Education

License: Apache License 2.0

CMake 33.63% C++ 54.98% Makefile 9.49% Shell 1.90%

the_reference_platform's Introduction

A Tutorial on the Reference Platform for AI and Robotics (AIR) from Franka Emika

The Franka Emika Panda Series is the first series of industrial AI-enabled tactile robot platforms. Beyond industrial use, the systems can be seamlessly expanded to fulfill the demands of research and education across all robotics and AI disciplines.

In this repository you will find the accompanying code of the Reference Platform Paper. If this code helps you in your research, please cite.

In addition, the researchers at Munich School of Robotics and Machine Learning (MSRM) have prepared a series of comprehensive tutorial videos which can be found here.

Three programming interfaces

The AIR Platfrom provides three different programming interfaces:

  • Desk, a high level App-based user interface for easy and fast task programming. Desk, together with the Research Apps is conceptualized to be the right interface for high-level programs, such as human-robot interaction studies or for rapid prototyping quick ideas.
  • RIDE, a command-based programming environment to create high performance robot skills that enables programming custom Apps and integrating external sensors. RIDE is the most suitable programming interface for research that does not require per-millisecond reactions, such as task and path planning or perception-based manipulation.
  • The FCI, a 1 kHz low-level torque and position control interface that exploits the also available Lagrangian dynamic robot model. It is the right interface to explore new low-level planning and control schemes.

System Architecture

Before getting started, get familiar with the system architecture shown in the following figure:

The Franka Operating System running on Franka Emika robots has the following main components:

  • State machines, which are the basic units of execution in the system. They call operations from services, execute scripts, and may contain other state machines. All Apps as seen in Desk are state machines. They are grouped together into bundles, which also store related resources such as icons. State machines are programmed in a domain-specific language called Lingua Franka and stored in .lf files.

  • Services are nodes which run on Control (internal services) or any external computer (external services). They communicate with the core via the race-com library and can provide operations and publish events periodically. The most relevant service is the robot service, which provides all operations to command the robot such as move or applyForce.

  • The Core orchestrates the execution of state machines, stores installed bundles and ensures that newly uploaded bundles are consistent with existing ones. It also implements three system interfaces:

    • The Franka Application Interface (FAI), the interface used by Desk to command and monitor the system.
    • The Franka Professional Interface (FPI), the interface used by ride-cli to manipulate, run and install state machines and Apps in the system.
    • The Franka Service Interface (FSI), the interface used by the race-com library to connect external services to the system.

The Application Software represent the access point for users. There are currently two clients in the system:

  • Desk, which can start the execution of timelines~(which are sequences of state machines) and trigger other specific functionalities such as opening the brakes or turning the power on or off.
  • ride-cli, the main App development tool, which provides a command-line interface to start, compile, install, monitor and debug the execution of state machines.

Note that the FCI, the low-level 1 kHz interface to the robot bypasses the Franka Operating System and represents a direct UDP-based connection to the real-time robot control.

The tutorial

This tutorial showcases the wide range of programming possibilities that the Franka Emika's AIR Platform offers. We strongly recommend to read first the Reference Platform Paper before continuing. The tutorial is divided in 4 lessons and built around a plug in task, solved with all three programming interfaces:

  • The first lesson, 1_Desk, shows how to quickly prototype the plug in task in Desk and how to start tasks from the web interface or the command line tool.
  • The second lesson, 2_RIDE, implements a custom and more capable plug in App with RIDE. It then adds an external service simulating the integration of a camera and incorporates it into the App.
  • The third lesson, 3_FCI, implements a custom plug in controller as a Cartesian impedance controller with an additional term regulating the contact force. It then integrates this custom controller into an App.
  • The fourth lesson, 4_Learning, implements an on robot learning algorithm that learns the optimal control parameters for the custom App and the custom controller presented in the second and third lesson respectively.

RIDE CLI

The following table lists some helpful commands that might be used during the tutorial.

Command Description
ride login <robot_ip> Connect to the core.
ride bundle list List installed bundles.
ride node list List root nodes (installed state machines).
ride service list List connected services.
ride execution start <state machine> Start execution of a state machine.
ride execution stop Stop execution gracefully.
ride log Display the log message feed from the core.
ride service echo <service> <event> Print service events relayed by the core.
ride execution trace Trace execution of a state machine.

Requirements

  • Ubuntu with PREEMP_RT patch according to Minimum System and Network Requirements
  • minumum cmake version: cmake >= 3.5
  • Robot System version 4.X
  • RIDE version 3.X
  • RaceCom version 14.X
  • libfranka version 0.8.X

Tutorial paper

The Franka Emika Robot: A Reference Platform for Robotics Research and Education paper is located here.

License

the_reference_platform is licensed under the Apache 2.0 license.

the_reference_platform's People

Contributors

andrejpan avatar falfab avatar sabaghian avatar winkma avatar

Stargazers

 avatar Peide Huang avatar  avatar  avatar  avatar Shawn avatar Jeff Wang avatar Denizhan avatar Zekai Chen avatar Dimosthenis Kontogiorgos avatar  avatar Belal Hmedan avatar Enrico Guerra avatar Stevewen avatar  avatar Xiong Heng avatar Junsu Kim avatar Younggyo Seo avatar Bolun Dai avatar  avatar Rui Li avatar Chen Wang avatar  avatar Giovanni Franzese avatar Zihan Ding avatar Can Zhao avatar yangchao avatar Jade Cong avatar Zhihao avatar Nikita Demin avatar Lucas Saldyt avatar Berkay Alp Cakal avatar Ðietrich ₸rautmann avatar  avatar Jimmy DA SILVA avatar Antoine Hoarau avatar Shivoh Chirayil Nandakumar avatar Joey Zhu avatar Mattia Racca avatar  avatar

Watchers

James Cloos avatar Peter So avatar  avatar Simon Gabl avatar  avatar Santhosh Kumar Vasudevan avatar

the_reference_platform's Issues

Building 3_FCI fails

3_FCI does not build when following the build instructions from the README.md.
There is a warning when calling the cmake command:

CMake Warning:
  Manually-specified variables were not used by the project:

    Franka_Dir

And an error when calling make:

fatal error: franka/duration.h: No such file or directory
 #include <franka/duration.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.

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.