坦白说,这个OMPL系列实际上就是翻译官方教程。我以前也翻译过一些库的官方教程,总是开工后才发现网络上已经有前辈做过了,如ROS、Moveit!等中文博客资料多如牛毛,不再需要什么教程,于是就不怎么做这种重复工作了。最近学习OMPL,发现虽然这个库用途广泛,但有关的中文教程却少得不像话。考虑到运动规划也是一个不小的研究领域,针对小白的入门介绍还是有必要的。于是简单翻译了官网教程,结合了我的踩坑过程发出来,希望对大家有些许帮助。如果相关的其它资料,也希望大家分享学习。
1 简介
开源运动规划库(OMPL)是一个包含许多常用运动规划算法(以基于采样的算法,如RRT、PRM为主)的C++库。也是大名鼎鼎的机器人工具集Moveit!所默认采用的运动规划算法库。
The default motion planners for move_group are configured using OMPL and the MoveIt interface to OMPL by the MoveIt Setup Assistant. —–Moveit! Concepts Documentation
通常进行ROS机器人研究时,我们直接使用Moveit!的接口就可以了。但Moveit!是一个同时集成运动学、运动规划、碰撞检测、3D 感知、导航等的庞大工具集,如果我们只需要研究和使用运动规划功能,那么单独使用OMPL也是不错的选择。
2 安装
本文所使用的系统版本:ubuntu 18.04
官方声称通过测试的版本:ubuntu 14.04, 15.10, 16.04, 17.10, 18.04
官方网站提供了源码安装和二进制安装两种方法。我采用二进制安装方法并未成功,因此只介绍源码安装。
2.1 下载安装脚本
从该链接下载脚本:https://ompl.kavrakilab.org/install-ompl-ubuntu.sh
得到名为install-ompl-ubuntu.sh
的脚本文件
2.2 修改权限
从脚本所在目录打开终端,执行以下命令:
chmod u+x install-ompl-ubuntu.sh
2.3 运行安装脚本
根据不同的需求,有三种可选的安装命令。
(1)仅C++版本
./install-ompl-ubuntu.sh
(2)C++版本并绑定了Python接口
./install-ompl-ubuntu.sh --python
(3)C++版本并绑定了Python接口,同时带有可视化界面OMPL.app
./install-ompl-ubuntu.sh --app
2.4 说明
运行脚本时,会下载源码包omplapp-[版本号]-Source.tar.gz
,该过程需要科学上网。如果没有条件,可用如下方法解决:
进入如下镜像网站下载最新版本的源码包(发文时为1.4.2),将其放置在install-ompl-ubuntu.sh
的同级目录下。
打开install-ompl-ubuntu.sh
,将install_ompl()
下的
wget -O - https://bitbucket.org/ompl/ompl/downloads/$OMPL-1.4.2-Source.tar.gz | tar zxf -
修改为(注意版本号对应)
tar zxf $OMPL-1.4.2-Source.tar.gz
接下来按照2.3节操作即可
2.5 测试
如果安装成功,在ompl-1.4.2-Source/build/Release/bin/
中将会看到大量示例可执行文件,在该目录下打开终端,运行:
./demo_RigidBodyPlanning
将会看到以如下信息开头的运行结果,信息的含义将会在下一章中讲到。
OMPL version: 1.4.2
Info: RRTConnect: Space information setup was not yet called. Calling now.
Debug: RRTConnect: Planner range detected to be 1.006980
...
3 简介
官方文档中提供了OMPL库常用基础类的关系图,机翻如下。
其中箭头表示类的包含关系,但不表示数据的传递关系,即使不存在箭头,不同类之间也存在函数的调用。类的颜色代表其在一个完整运动程序中的必要性,见图例。
下一篇文章中我们通过实例来说明上述接口的用法。
参考资料
[1] OMPL官方文档