# Category:NRMKFoundation

## Contents

## NRMKFoundation

**NRMKFoundation** consists of two components: **Engine** and **Framework**.

NRMKFoundation is the light-weight C++ template class library for realtime control and simulation of articulated multibody systems. It compiles and runs in MS Windows (including 64bits) and Linux (running on PC or embedded boards such as BeagleBone Black) as well as their realtime OS, e.g. RTX (including 64bit) and Xenomai. It facilitates easier development of hard realtime deterministic control algorithms on a number of different platforms.

### NRMKFoundation/Engine

**NRMKFoundation/Engine** is the light-weight C++ libraries for realtime control and simulation of articulated multibody systems such as robots, running on multiple OSes including Windows and Linux as well as their realtime extensions such as RTX/RTX64 and Xenomai. Engine consists of two modules: Simulation and Control. The followings are two simulation examples using NRMKFoundation.

#### NRMKFoundation/Engine Simulation

**NRMKFoundation/Engine Simulation** is composed of C++ template class library for realtime simulation of articulated multibody systems. It has the following distinctive features compared to other simulation engine:

- Based on open-source performance matrix and linear algebra library Eigen
- Lie group calculus and algebra for description of rigid body motion
- Eliminated dynamic memory allocation and virtual functions
- Efficient kinematic and dynamic modeling API including automatic modeling of modified DH parameters

It makes advantages of the following algorithms to implement stable and efficient simulation of articulated multi-body systems:

- Lie group theoretic rigid body dynamics (ref. Park 2005)
- Recursive kinematics algorithm
- Reformulation of Featherstone’s articulated body method on Lie groups
- Lie group integrators, e.g. Munthe-Kaas method, for integrating rigid body motions (ref. Park 2005)
- Semi-implicit joint damping and stiffness method (ref. Liu 2005)
- Semi-implicit task damping and stiffness method

### NRMKFoundation/Engine Control

**NRMKFoundation/Engine Control** is composed of C++ template class library for realtime control of articulated multibody systems. Its deterministic real-time performance is significant in implementing reliable realtime control system even for embedded systems e.g. NRMK/Target Embedded. It has the following distinctive features compared to other simulation engine:

- Based on open-source performance matrix and linear algebra library Eigen
- Lie group calculus and algebra for description of rigid body motion
- Eliminated dynamic memory allocation and virtual functions
- Optimized kinematics and dynamics computation
- Based on task class hierarchy for user-defined kinematics as well as predefined task kinematics such as absolute and relative kinematics
- Providing closed-loop inverse kinematics algorithm
- Implementing inverse dynamics based task control framework
- Inverse dynamics having two options: complete compensation of nonlinear dynamics and passivity-based inverse dynamics
- Impedance control and compliance control
- Nonlinear H-infinity optimal control (ref. Park 2005)

It makes advantages of the following algorithms to implement efficient control of articulated multi-body systems:

- Lie group theoretic rigid body motion control based on differential-of-exponential (ref. Park 2013)
- Recursive kinematics and Jacobian algorithm
- Reformulation of recursive Newton-Euler method on Lie groups
- Formulation of recursive passivity-based Newton-Euler method on Lie group
- Control of kinematic redundancy based on kinematically-decoupled joint space decomposition (equivalent to weighted pseudo-inverse control with gradient projection method)

In addition, it provides a number of standard task interpolation algorithms:

- Single segment polynomial algorithms (linear, parabolic, cubic, quintic and septic)
- Blended polynomial algorithms
- Trapezoidal algorithms: Offline and closed-loop algorithms
- Double S algorithms: Offline, online, and closed-loop algorithms

- Cspline interpolation guaranteeing continuity of velocities at intermediate points
- Bspline interpolation guaranteeing continuity of higher-order derivatives at intermediate points
- Rigid body task interpolation algorithms based on Lie group
- Rotation matrix interpolation
- Homogeneous transformation matrix interpolation
- Circular and linear displacement vector interpolation

## NRMKFoundation Tools

NRMKFoundation is provided with a set of standard softwares for developing realtime control applications. Most frequently used are CADKit Viewer and Data Scope. CADKit Viewer renders simulated scene in realtime as well as capturing physical interactivity with simulated robots (e.g. applying force/moment using mouse). Data Scope generates formatted plots of a variety of signals during control online and/or offline.

## Subcategories

This category has the following 2 subcategories, out of 2 total.

## Pages in category "NRMKFoundation"

The following 3 pages are in this category, out of 3 total.