1. 程式人生 > >基於Ubuntu 16.04和ros kinetc平臺原始碼編譯安裝moveit和ompl及編譯警告的解決方法

基於Ubuntu 16.04和ros kinetc平臺原始碼編譯安裝moveit和ompl及編譯警告的解決方法

安裝依賴項

rosdep update
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install python-wstool python-catkin-tools clang-format-3.8

下載moveit的原始碼

mkdir -p ~/ws_moveit/src
cd ~/ws_moveit
source /opt/ros/kinetic/setup.bash
wstool init src
wstool merge -t src https://raw.githubusercontent.com/ros-planning/moveit/kinetic-devel/moveit.rosinstall
wstool update -t src

下載ompl原始碼

cd ~/ws_moveit/src
git clone -b kinetic-devel https://github.com/ompl/ompl.git

下載由catkin build編譯ompl需要的package.xml檔案

cd ~/ws_moveit/src/ompl
wget https://raw.githubusercontent.com/ros-gbp/ompl-release/debian/kinetic/xenial/ompl/package.xml

修改moveit_planners的CMakeLists.txt檔案

gedit ~/ws_moveit/src/moveit/moveit_planners/ompl/CMakeLists.txt #找到include_directories的位置並互換${OMPL_INCLUDE_DIRS} 和 ${catkin_INCLUDE_DIRS}的位置, 讓${OMPL_INCLUDE_DIRS}變量出現在${catkin_INCLUDE_DIRS}變數之前

#安裝依賴

cd ~/ws_moveit/src
rosdep install -y --from-paths . --ignore-src --rosdistro kinetic

#開始編譯ompl和moveit

cd ~/ws_moveit
catkin config --extend /opt/ros/kinetic --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build

上述過程主要參考了官網教程,部分結合了知乎上的相關經驗。

如果一切順利的話,可能沒有警告,編譯一次通過。 但是,我在編譯的過程中出現了一次錯誤一次警告 錯誤的原因可能是沒有指定ompl版本:

#通過新增 -b kinetic-devel解決版本問題
git clone -b kinetic-devel https://github.com/ompl/ompl.git

警告的原因可能是cmake版本導致的:

之前我用的是cmake3.10.2,出現了警告,後來我換成了cmake3.12.4版本後,沒有了警告

我是通過上述兩步解決了編譯過程中遇到的所有問題。