天天看點

MoveIt 1 源碼建構: LinuxMoveIt 1 源碼建構: Linux

MoveIt 1 源碼建構: Linux

從源代碼安裝MoveIt是向開源項目提供新特性、優化和bug修複的第一步。

MoveIt主要在Linux上支援,特别是以下建構指令支援:

Ubuntu 20.04 / ROS Noetic
Ubuntu 18.04 / ROS Melodic
Ubuntu 16.04 / ROS Kinetic (不再被官方支援)
           

預備條件

安裝ROS

按照所有說明安裝ROS。請確定您遵循了所有步驟,并安裝了最新版本的軟體包:

rosdep update
sudo apt update
sudo apt dist-upgrade
           

源碼安裝需要wstool, catkin_tools和可選的clang-format:

sudo apt install python3-wstool python3-catkin-tools clang-format-10 python3-rosdep
           
Kinetic/Melodic 注意:對于Ubuntu 16.04和18.04,将’python3’替換為’python’來建立工作區和源

建立工作空間并source

最好選擇建立一個新的工作空間,你可以給它起任何名字:

mkdir ~/ws_moveit
cd ~/ws_moveit
           

接下來,根據您安裝的ROS版本,指定您的ROS工作區來加載必要的環境變量。

從三個選項中選擇一個:

source /opt/ros/noetic/setup.bash
source /opt/ros/melodic/setup.bash
source /opt/ros/kinetic/setup.bash
           

這将加載${ROS_DISTRO}變量,這是下一步所需要的。

下載下傳源代碼

預設情況下,我們會假設你正在建構Ubuntu 20.04: master的最新分支。這個分支是為ROS動力學和更新版本建構的,例如Ubuntu 16.04和更新版本。如果您想從源代碼建構MoveIt的舊版本,請參閱下面的小節。

從catkin工作區的根目錄下拉所需的存儲庫并建構:

wstool init src
wstool merge -t src https://raw.githubusercontent.com/ros-planning/moveit/master/moveit.rosinstall
wstool update -t src
rosdep install -y --from-paths src --ignore-src --rosdistro ${ROS_DISTRO}
catkin config --extend /opt/ros/${ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release
           

下載下傳完畢後src檔案夾中包含9個包,未下載下傳完的重複運作指令wstool update -t src

MoveIt 1 源碼建構: LinuxMoveIt 1 源碼建構: Linux

可選:從建構中排除包

MoveIt是一個大型項目,預設的編譯時間可以輕松地花費30分鐘左右。如果您希望減少編譯時間,或者隻需要建構所有包的一個子集,catkin允許您配置隻包含在建構中的包的一個子集。注意不要禁用其他人需要的包(即:是其他包的依賴)。你可以用幾種方法從建構中排除包:

catkin-tools --blacklist (recommended)
touch /path/to/package/directory/CATKIN_IGNORE
rm -rf /path/to/package/directory
           

這裡我們展示了一些使用catkin_tools的示例。注意:如果您已經在您的工作空間中建構了這些包,您将需要首先使用catkin clean。

禁用所有進階别使用者界面(可選)

catkin config --blacklist \
    moveit_commander \
    moveit_setup_assistant \
    moveit_ros_robot_interaction \
    moveit_ros_visualization \
    moveit_ros_benchmarks \
    moveit_controller_manager_example \
    moveit_ros_warehouse \
    moveit_ros_manipulation \
    moveit_visual_tools \
    rviz_visual_tools
           

禁用CHOMP運動規劃器(可選)

注意,catkin config–blacklist的每條指令都會預設覆寫之前的清單。使用選項–add -args,您可以擴大現有的黑名單。

catkin config --blacklist \
    moveit_chomp_optimizer_adapter \
    moveit_planners_chomp \
    chomp_motion_planner
           

可選:安裝編譯器緩存

從源代碼建構全部或甚至隻是部分MoveIt可能需要一個小時。編譯器緩存可以防止未修改的檔案被重新編譯,進而将這一時間減少到幾分鐘。最突出的編譯器緩存是ccache,它适用于gcc和其他類似的編譯器。

安裝

在Debian或Ubuntu系統上,安裝ccache很簡單:

sudo apt install ccache
           

對于其他作業系統,請咨詢包管理器或軟體存儲并搜尋ccache。有關下載下傳和安裝的更多資訊,請參閱ccache網站。

設定

要使用ccache,必須顯式配置—僅僅安裝包是不夠的。為了在所有支援的編譯器中自動使用ccache,将/usr/lib/ccache目錄添加到你的PATH(對于除Debian或Ubuntu之外的系統,這個目錄可能有所不同)。在bash中,很容易在啟動時啟用ccache。對于其他shell或系統,适當地調整這些指令。

echo 'export PATH=/usr/lib/ccache:$PATH' >> $HOME/.bashrc
source $HOME/.bashrc
           

要隻對特定的項目使用緩存,在調用make、cmake、catkin_make或catkin build之前,将CC和CXX環境變量設定為列在/usr/lib/ccache中的編譯器代理。

使用ccache

如果設定,則自動使用ccache。

使用下面的指令檢視命中率和緩存使用率的統計資訊

ccache --show-stats
           

注意:ccache隻能緩存編譯器的輸出,如果編譯器是實際觸發的。如果已經建構了catkin工作區,那麼啟用ccache并重新建構工作區将不會導緻任何緩存。要種子ccache,清理工作空間的build和devel空間,并從頭開始。這可以通過手動删除它們(rm -rf build devel)或使用catkin_tools (catkin clean -y)來實作。

編譯MoveIt

catkin build
           

Source Catkin工作空間

設定您的環境-您可以在每次使用這個特定的源代碼安裝代碼時這樣做,或者您可以将其添加到您的.bashrc(推薦):

安裝moveit

根據您的ros的版本安裝不同版本的 MoveIt :

sudo apt-get install ros-noetic-moveit
sudo apt-get install ros-melodic-moveit
sudo apt-get install ros-kinetic-moveit
           

安裝資源檔案:

sudo apt-get install ros-noetic-moveit-resources
sudo apt-get install ros-melodic-moveit-resources
sudo apt-get install ros-kinetic-moveit-resources
           

更新環境變量:

source /opt/ros/noetic/setup.bash
source /opt/ros/melodic/setup.bash
source /opt/ros/kinetic/setup.bash
           

啟動Setup Assistant

第一個終端裡面運作:

roscore
           

第二個終端裡面運作:

roslaunch moveit_setup_assistant setup_assistant.launch
           

或者運作下面這條指令,結果是相同的:

rosrun moveit_setup_assistant moveit_setup_assistant
           

出現Setup Assistant界面,表示ROS-Melodic裡面成功安裝了MoveIt。

MoveIt 1 源碼建構: LinuxMoveIt 1 源碼建構: Linux

最後順帶安裝一下moveit-visual-tools

sudo apt-get install ros-melodic-moveit-visual-tools
           

Advanced

建構MoveIt的舊版本

最好是為我們的最新分支做出貢獻,即使你還在使用Ubuntu的早期版本。然而,我們的最新分支不支援舊版本的ROS,如ROS Indigo。使用以下指令從源代碼建構舊版本:

wstool init src
wstool merge -t src https://raw.githubusercontent.com/ros-planning/moveit/${ROS_DISTRO}-devel/moveit.rosinstall
wstool update -t src
rosdep install -y --from-paths src --ignore-src --rosdistro ${ROS_DISTRO}
catkin config --extend /opt/ros/${ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release
catkin build
           

從源代碼建構依賴項

對于MongoDB, OMPL,或FCL的源代碼安裝,參見建構通用MoveIt依賴從源在Catkin。

最簡單的方法

1、安裝moveit

sudo apt-get install ros-melodic-moveit
           

2、配置環境

source /opt/ros/melodic/setup.bash
           

3、安裝資源檔案:

sudo apt-get install ros-melodic-moveit-resources
           

參考連結:

moveit官網:https://moveit.ros.org/install/source/

http://t.zoukankan.com/weixq351-p-14805327.html

繼續閱讀