Kinematics & Optimisation
Introduction
The EXtensible Optimization Toolset (EXOTica) is a library for easy creation of tools for optimisation, planning, and control. This library creates a framework within which the user can define tasks (representations) and task hierarchies in form of a stack of task variables. These are then used within planning algorithms such as iLQG, AICO or RRT for defining the problem. EXOTica makes minimal assumptions about the methods used for motion synthesis. It is modular and easily extensible with novel planning algorithms and representations (e.g. Writhe and Interation Mesh). It is backed by an efficient, batch-query Kinematics computation library based on the existing Orocos KDL project, extended to suite the more advanced needs of our group (e.g. underactuated and floating-base systems).
EXOTica is intended to be as standalone as possible, with minimal external dependencies. This allows them to be used virtually on any system. However, they are also developed for easy integration within the Robot Operating System (ROS) framework, allowing us to take advantage of the numerous tools developed by the ROS community.
- Modularity: The library is developed in a modular manner making use of C++’s object-oriented features (such as polymorphism). This allows users to define their own components and ’plug them into’ the existing framework. The end-effect is that an engineer need not implement a whole system whenever he needs to change a component, but rather can re-implement the specific functionality and as long as he follows certain guidelines, retain the use of the other modules.
- Extensibility: The library is also heavily extensible, mainly thanks to the modular design. In addition, the library makes very minimal prior assumptions about the form of the problem so that it can be as generic as possible.
- Platform Independence: The toolset is designed to operate on a variety of robotic platforms, and as such is written with platform independence in mind. It is entirely OS-agnostic and the only library dependencies are Eigen and Boost.
- Integration with ROS: Although it is not necessary, the library is designed to be fully integrated with ROS with minimal effort.
Applicability
System Overview

Source

- Providing a Jacobian and Forward Kinematics solver for arbitrary tree structures rather than just chains, including those with fixed, planar, and floating-base roots.
- Providing a more efficient Jacobian/Forward Kinematics solver for problems requiring the same set of queries repetitively (while maintaining support for one-off computations).
- Allowing the arbitrary specification of the root link, which is not necessarily the same as the URDF root.
Applicability
- Always have their origin frame at their base, oriented with the tip of the original parent.
- Always point in the same direction as defined by the original URDF/KDL Tree.
- Are always defined by the pose of their tip, whether this is in a global or local reference frame.
Contact
Dr. Vladimir Ivan (v.ivan@ed.ac.uk)