从URDF到KDL(C++&Python)
毕竟我也是一个搞机器人的,今天就来写一些和机器人紧密相关的事情。
KDL 简介
PyKDL是一个神奇的库。里面包含了KDL库与vector,rotation, frame, kinematics, dynamics的相关函数和接口。计算机器人学中的运动学/动力学和坐标变换都是相当的彪悍。甚至可以加载urdf模型计算运动学,调用DH相关接口或者chain接口直接创建机器人模型。这个库主要是面向C++的,通过sig的形式做了相应的python接口。这里先讨论论c++中KDL的使用。
wiki tutorials
official site and git
python documentation
python kdl git
URDF模型
URDF模型是用于描述机器人运动学参数、动力学参数的配置文件。可以从多种来源获得,比如Solidworks可以直接保存出来。当然也可以自己编写,并不是很繁琐。
这篇教程清晰地写明了如何创建URDF模型。还是把最终的代码贴上来:
<robot name="test_robot">
<link name="link1" />
<link name="link2" />
<link name="link3" />
<link name="link4" />
<joint name="joint1" type="continuous">
<parent link="link1"/>
<child link="link2"/>
<origin xyz="5 3 0" rpy="0 0 0" />
<axis xyz="-0.9 0.15 0" />
</joint>
<joint name="joint2" type="continuous">
<parent link="link1"/>
<child link="link3"/>
<origin xyz="-2 5 0" rpy="0 0 1.57" />
<axis xyz="-0.707 0.707 0" />
</joint