进入VS工程,我们先看看这些功能函数及其依赖库的分布关系:
rl命名空间下,主要有八大模块。
搞定VS后将逐个拆解。
1、编译运行
根据报错提示,配置相应错误的库(根据每个人安装位置不同而不同,我的路径如下:)
编译所有,Release版本耗时大约10分钟。
以rlPlan运动轨迹为例,设该项为启动项,运行。
2、API解析
Robotics Library是一个层次化组件集。运动规划接口建立在基本数学函数、运动学和动力学计算、场景图抽象、硬件抽象、XML解析和实用函数之上。
2.1 rl::math
RL的这一部分提供了基本的数学函数。向量和矩阵代数使用特征3为指定的实数表示提供方便的类型定义(在Real.h)
因此,数学表达式是指定与Eigen相同并且可以方便地描述各种向量和矩阵运算。
涉及三维旋转、四元数、变换的操作包括通过Eigen支持.
用法:
rl::math::Matrix33 r(rl::math::AngleAxis(90.0f * rl::math::DEG2RAD, rl::math::Vector3::UnitZ()) *rl::math::AngleAxis(0.0f * rl::math::DEG2RAD, rl::math::Vector3::UnitY()) *rl::math::AngleAxis(90.0f * rl::math::DEG2RAD, rl::math::Vector3::UnitX())
);
rl::math::Transform t(r);
rl::math::Vector3 xyz = t.rotation().eulerAngles(2, 1, 0).reverse();
rl::math::Quaternion q(r);
r = q.toRotationMatrix();
2.2 rl::xml
该组件充当XML库的C抽象层 libxml2和 库xslt。它支持XPath(XPath)(XML路径语言),并提供方便的XML文件解析。有关此主题的更多信息,请参阅XPath教程.
为了处理XML文档,需要创建解析器。然后可以使用此解析器加载给定文件名或内存中字符串的文档。
rl::xml::DomParser parser;
rl::xml::Document document = parser.readFile("foo.xml");
引用此示例文件:
<?xml version="1.0" encoding="UTF-8"?>
<model><name>Foo</name><world><rotation><x unit="deg">0</x><y unit="deg">90</y><z unit="deg">0</z></rotation><translation><x>0</x><y>0</y><z>2</z></translation></world>
</model>
对结果值的访问取决于特定的XPath表达式。为了读取节点的字符串值,使用以下语法:
std::string name = path<