前言
随着人工智能的不断发展,OMPLAPP机器人运动规划库应用范文越来越广,普遍使用在机器人路径规划等场景当中,下面介绍ubuntu18.04安装开源运动规划库omplapp库。
一、安装方法介绍
在ubuntu上安装opml主要有以下两种方法,第一种是使用官方脚本在线安装,该方法对网速依赖较大,且容易安装失败,第二种下载官网下载源码编译安装
二、安装步骤
1.方法1
1)在以下网址源码压缩包。
下载地址:http://www.mirrorservice.org/sites/distfiles.macports.org/ompl/?C=S;O=A
ompl-1.5.0.tar.gz
omplapp-1.5.0-Source.tar.gz
install-ompl-ubuntu.sh
./install-ompl-ubuntu.sh
will install the latest release of OMPL without Python bindings
./install-ompl-ubuntu.sh --python
will install the latest release of OMPL with Python bindings
./install-ompl-ubuntu.sh --app
will install the latest release of OMPL.app with Python bindings
./install-ompl-ubuntu.sh --github
will install the master branch of OMPL (this can be combined with the other flags above)
使用该方法安装时若没有科学上网,网速会非常慢,安装常常失败。因此可以使用下面的方法安装。
官方安装脚本install-ompl-ubuntu.sh如下所示:
#!/bin/bash
set -e
if [ `id -u` == 0 ]; then
SUDO=
export DEBIAN_FRONTEND=noninteractive
apt-get -y install lsb-release
else
SUDO="sudo -H"
fi
ubuntu_version=`lsb_release -rs | sed 's/\.//'`
install_common_dependencies()
{
# install most dependencies via apt-get
${SUDO} apt-get -y update
${SUDO} apt-get -y upgrade
# We explicitly set the C++ compiler to g++, the default GNU g++ compiler. This is
# needed because we depend on system-installed libraries built with g++ and linked
# against libstdc++. In case `c++` corresponds to `clang++`, code will not build, even
# if we would pass the flag `-stdlib=libstdc++` to `clang++`.
${SUDO} apt-get -y install g++ cmake pkg-config libboost-serialization-dev libboost-filesystem-dev libboost-system-dev libboost-program-options-dev libboost-test-dev libeigen3-dev libode-dev wget libyaml-cpp-dev
export CXX=g++
export MAKEFLAGS="-j `nproc`"
}
install_python_binding_dependencies()
{
${SUDO} apt-get -y install python${PYTHONV}-dev python${PYTHONV}-pip
# install additional python dependencies via pip
${SUDO} pip${PYTHONV} install -vU https://github.com/CastXML/pygccxml/archive/develop.zip pyplusplus
# install castxml
if [[ $ubuntu_version > 1910 ]]; then
${SUDO} apt-get -y install castxml
else
wget -q -O- https://data.kitware.com/api/v1/file/5e8b740d2660cbefba944189/download | tar zxf - -C ${HOME}
export PATH=${HOME}/castxml/bin:${PATH}
fi
${SUDO} apt-get -y install libboost-python-dev
if [[ $ubuntu_version > 1710 ]]; then
${SUDO} apt-get -y install libboost-numpy-dev python${PYTHONV}-numpy
fi
if [[ $ubuntu_version > 1904 ]]; then
${SUDO} apt-get -y install pypy3
fi
}
install_app_dependencies()
{
${SUDO} apt-get -y install python${PYTHONV}-pyqt5.qtopengl freeglut3-dev libassimp-dev python${PYTHONV}-opengl python${PYTHONV}-flask python${PYTHONV}-celery libccd-dev
# install additional python dependencies via pip
${SUDO} pip${PYTHONV} install -vU PyOpenGL-accelerate
# install fcl
if ! pkg-config --atleast-version=0.5.0 fcl; then
if [[ $ubuntu_version > 1604 ]]; then
${SUDO} apt-get -y install libfcl-dev
else
wget -O - https://github.com/flexible-collision-library/fcl/archive/0.6.1.tar.gz | tar zxf -
cd fcl-0.6.1; cmake .; ${SUDO} -E make install; cd ..
fi
fi
}
install_ompl()
{
if [ -z $APP ]; then
OMPL="ompl"
else
OMPL="omplapp"
fi
if [ -z $GITHUB ]; then
if [ -z $APP]; then
wget -O - https://github.com/ompl/${OMPL}/archive/1.5.2.tar.gz | tar zxf -
cd ${OMPL}-1.5.2
else
wget -O - https://github.com/ompl/${OMPL}/releases/download/1.5.2/${OMPL}-1.5.2-Source.tar.gz | tar zxf -
cd $OMPL-1.5.2-Source
fi
else
${SUDO} apt-get -y install git
git clone --recurse-submodules https://github.com/ompl/${OMPL}.git
cd $OMPL
fi
mkdir -p build/Release
cd build/Release
cmake ../.. -DPYTHON_EXEC=/usr/bin/python${PYTHONV}
if [ ! -z $PYTHON ]; then
# Check if the total memory is less than 6GB.
if [ `cat /proc/meminfo | head -1 | awk '{print $2}'` -lt 6291456 ]; then
echo "Python binding generation is very memory intensive. At least 6GB of RAM is recommended."
echo "Proceeding with binding generation using 1 core..."
make -j 1 update_bindings
else
make update_bindings
fi
fi
make
${SUDO} make install
}
for i in "$@"
do
case $i in
-a|--app)
APP=1
PYTHON=1
shift
;;
-p|--python)
PYTHON=1
shift
;;
-g|--github)
GITHUB=1
shift
;;
*)
# unknown option -> show help
echo "Usage: `basename $0` [-p] [-a]"
echo " -p: enable Python bindings"
echo " -a: enable OMPL.app (implies '-p')"
echo " -g: install latest commit from master branch on GitHub"
;;
esac
done
# the default version of Python in 17.10 and above is version 3
if [[ $ubuntu_version > 1704 ]]; then
PYTHONV=3
fi
install_common_dependencies
if [ ! -z $PYTHON ]; then
install_python_binding_dependencies
fi
if [ ! -z $APP ]; then
install_app_dependencies
fi
install_ompl
2.方法2
1、安装ubuntu所需的依赖库,个人经过安装整理安装库如下所示:
安装依赖的库:
apt-get -y install g++ cmake libboost-serialization-dev libboost-filesystem-dev libboost-system-dev libboost-program-options-dev libboost-test-dev libeigen3-dev libode-devlibyaml-cpp-dev
install_python_binding_dependencies:
apt-get -y install python3-dev python3-pip libboost-python-dev libboost-numpy-dev python3-numpy
install_app_dependencies:
sudo apt-get -y install python3-pyqt5.qtopengl freeglut3-dev libassimp-dev python3-opengl python3-flask python3-celery libccd-dev
sudo pip3 install -vU PyOpenGL-accelerate
sudo apt-get -y install libfcl-dev
2、解压源码到相应操作目录,在该目录下建立编译目录:
mkdir -p build/Release
cd build/Release
3、使用cmake工具生成makefile
cmake ../.. -DPYTHON_EXEC=/usr/bin/python${PYTHONV}
4、根据官方安装脚本目标板卡内存小于6G使用单线程编译,个人目标板卡2G内存,编译时间大概30分钟左右
make -j 1
Make install
安装成功如下图所示:
5、检查安装是否成功
安装成功后,在ompl/build/Release/bin目录下会有很多示例,执行一下示例,能成功运行那么安装就成功了。
./demo_RigidBodyPlanning
OMPL version:
Info: RRTConnect: Space information setup was not yet called. Calling now.
Debug: RRTConnect: Planner range detected to be 1.006980
Settings for the state space 'SE3CompoundSpace0'
- state validity check resolution: 1%
- valid segment count factor: 1
- state space:
总结
我使用方法1一直没有安装成功,主要是下载速度太慢了,一直安装不成功。使用方法2手动下载安装源码和修改安装脚本终于安装成功了。方法2安装需要以下文件,我已经分享到这里:
该方法并不能100%安装成功,遇到问题根据问题内容解决即可!
。