Robotic KDL library

时间:2024-03-30 22:59:19

Robotic KDL library

我所了解到的机器人运动学动力学计算库包括:

来源:Roboticq


Orocos KDL

orocos KDL是一个开源的portable C++库,用于机器人运动学动力学解算和控制,是属于Orocos Project中的一个子项目。Orocos在机器人语境下表示“open robot control software”,在非机器人语境下则表示”open realtime control services”。2000年12月,Herman Bruyinckx产生了想要展开一个开放的机器人控制系统的想法。其失望于商业机器人控制软件对于先进机器人研究的作用,糟糕的底层开放程度使得基于传感器的控制研究十分低效而艰难。Orocos Project由Europen Union于2001年9月启动,项目仅允许再增加三个名额的研究伙伴,由此K.U.Leuven in Belgium ( [email protected] ), LAAS Toulouse in France ( [email protected] )和 KTH Stockholm in Sweden ( [email protected] )被选为了项目伙伴。按照项目规定,Europen Union仅支持该项目两年。KU Leuven方面的支持则由 Flemish IWT Project 提供。这种项目的组合让Herman Bruyninckx可以接受Peter Soetens作为他的研究生,全力投入该项目的进行。orocos real-time core的第一个版由Peter Soetens在2002年夏天发布,但该版本比较原始,难于使用。接着2002年11月,Orocos Project第一个版本发布,该版本包括一个六*度机械臂的位置和速度控制功能。

其余细节在此不再赘述,详细请看:Orocos Project History

Orocos Project包含以下几个部分:

  • Toolchain:The Orocos Toolchain is your primary tool to create real-time robotics applications using modular, run-time configurable software components.
  • iTasc:a framework to generate robot motions by specifying constraints between (parts of) the robots and their environment.
  • rFSM:rFSM is a small and powerful Statechart implementation. It is mainly designed for Coordination of complex systems but is not limited to that.
  • KDL:Library for robotic kinematic, dynamic, motion and trajectory calculation.
  • BFL:provides an application independent framework for inference in Dynamic Bayesian Networks, i.e., recursive information processing and estimation algorithms based on Bayes’ rule, such as (Extended) Kalman Filters, Particle Filters (or Sequential Monte Carlo methods), etc.

Open Robot Control Software包括KDL、BFL和ToolChain三部分。

本文重点关注Orocos KDL,其支持的内容如下:

  • Geometric primitives :point 、frame、twist…等内容的定义及运算库,如piont结构体,frame结构体以及结构体之间的运算。
  • Kinematic Tree:坐标系链和坐标系树结构定义。通常,对于运动学结构体存在多种定义:与所有类型的运动学结构体(链、树、图)等价的链和作为运动学串联形式的链。KDL使用后一种,即使用如下图形理论术语:
    • A closed-loop mechanism is a graph
    • an open-loop mechanism is a tree, and
    • an unbranched tree is a chain.
  • Kinematic and Dynamic Solvers:various generic forward and inverse kinematic algorithms, redundancy resolution, …
  • Instantaneous Motions:开发中 (Expected release, Spring 2011)
  • Motion Trajectory:笛卡尔坐标系轨迹、速度配置和笛卡尔坐标系轨迹规划。

其特点是:

  • Realtime-safe operations/functions whenever relevant: they do not lead to dynamic memory allocations and all of them are deterministic in time.
  • Python bindings
  • Typekits and transport-kits for Orocos/RTT
  • Integrated in ROS

Robotics Library

Robotics Library是一个独立的C++库,可用于机器人运动学、运动规划和控制,覆盖的内容包括了数学运算、运动学、动力学、硬件抽象、运动规划、碰撞检测和可视化。目前为止,它已被用于多个研究项目,如JAHIR,JAMES,JAST,SMErobotics,有BSD证书,可以被用于商业项目。RL能够在实时Linux和Windows中运行,使用CMAKE编译系统,也可以被GCC和Visual Studio编译。
RL的结构如图所示:

Robotic KDL library


MoveIt!

MoveIt!体现了移动机器人的发展水平,集合了运动规划、控制、3D感知、运动学、控制及导航技术。超过65种机器人应用了MoveIt!这个开源软件。MoveIt!已经集成进入ROS。
可以应用MoveIt!机器人还挺多的,包括UR5,Motoman,ABB IRB2400,PR2等等,详见MoveIt robot list

这里是MoveIt! Tutorials


OpenRave

OpenRAVE provides an environment for testing, developing, and deploying motion planning algorithms in real-world robotics applications. the main focus is on simulation and analysis of kinematic and geometric information related to motion planning. OpenRAVE’s stand-alone nature allows is to be easily integrated into existing robotics systems.

It provides many command line tools to work with robots and planners, and the run-time core is small enough to be used inside controllers and bigger frameworks. An important target application is industrial robotics automation.


Robonanlyzer

RobAnalyszer是一个用于机器人学教学的软件,可以拥有DH参数可视化、FK分析、IK分析、Inverse Dynaimcs、Forward Dynamics以及虚拟模型等功能,可以进行虚拟实验,可与Matlab robotic toolbox配合使用。


Robotics Toolbox

Matlab中的robotics toolbox工具箱,该工具箱能够很好地配合 《Robotics, Vision & Control》这本书,书中的代码还可以进行下载,作者是Peter Corke(因为人家就是开发者嘛)。