Robotic systems are often complex and depend on the integration of a large number of software components. One important component in robotic systems provides the calculation of forward kinematics, which is required by both motion-planning and perception related components. End-to-end learning systems based on deep learning require passing gradients across component boundaries.Typical software implementations of forward kinematics are not differentiable, and thus prevent the construction of gradient-based, end-to-end learning systems. In this paper we present a library compatible with ROS-URDF that computes forward kinematics while simultaneously giving access to the gradients w.r.t. joint configurations and model parameters, allowing gradient-based learning and model identification. Our Python library is based on Tensorflow~2 and is auto-differentiable. It supports calculating a large number of kinematic configurations on the GPU in parallel, yielding a considerable performance improvement compared to sequential CPU-based calculation. https://github.com/lumoe/dlkinematics.git
翻译:机器人系统通常具有复杂性,且依赖于大量软件组件的集成。其中,正运动学计算是机器人系统中的核心组件,既被运动规划相关组件所需,也被感知相关组件调用。基于深度学习的端到端学习系统需要跨组件边界传递梯度。传统正运动学的软件实现不具备可微性,因而阻碍了基于梯度的端到端学习系统的构建。本文提出一个兼容ROS-URDF的函数库,该库在计算正运动学的同时,能够提供关于关节构型和模型参数的梯度信息,从而支持基于梯度的学习与模型辨识。本Python库基于TensorFlow 2构建,具备自动微分能力,支持在GPU上并行计算大量运动学构型,相较于基于CPU的串行计算,显著提升了性能。详见:https://github.com/lumoe/dlkinematics.git