参考这位博主,成功解决!
前言
这个问题折磨我一天时间,特此记录一下,在很多教程中说直接运行: sudo apt-get install ros-noetic-moveit就可以安装成功,但是试过就知道,ROS melodic版本(包括 noetic 版本)下的Moveit需要首先下载Moveit源码并成功编译后才能够安装成功,否则无法运行roslaunch moveit_setup_assistant setup_assistant.launch。(也就是源码安装moveit方式)
本文实现主要参考的是:
ROS noetic,ROS melodic 安装 MoveIt 并运行_ros安装moveit_AGOLK的博客-CSDN博客
源码方式安装moveit和ompl库(Ubuntu18.04+ROS Melodic版本)_ompl安装 ros_猿小白~的博客-CSDN博客
更新功能包版本
首先需要确保已安装的软件包为最新版本:
rosdep update
sudo apt-get update
sudo apt-get dist-upgrade
下载依赖文件
Moveit源代码安装需要wstool,catkin_tools和可选的clang三类文件:
sudo apt-get install python3-wstool python3-catkin-tools clang-format-13
其中clang-format-13可能安装失败这里,我们可以直接单独安装随机版本的clang-format,如果想安装高版本的clang-format,可以参考以下网址,其中博客的StackOverflow链接里有全部详解:
Ubuntu下安装高版本clang-format 11, 12, 13_步丶丶的博客-CSDN博客
sudo apt-get install python3-wstool python3-catkin-tools
sudo apt install clang-format
创建工作区和软件源
首先创建一个名为ws_moveit的工作区,在该工作区中执行安装操作:
mkdir ~/ws_moveit
cd ~/ws_moveit
注意:下列命令行代码均在 ws_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文件中。
打开此网址https://raw.githubusercontent.com/ros-planning/moveit/master/moveit.rosinstall
# This file is intended for users who want to build MoveIt from source.
# Used with wstool, users can download source of all packages of MoveIt.
- git:
local-name: moveit_msgs
uri: https://github.com/ros-planning/moveit_msgs.git
version: master
- git:
local-name: moveit_resources
uri: https://github.com/ros-planning/moveit_resources.git
version: master
- git:
local-name: geometric_shapes
uri: https://github.com/ros-planning/geometric_shapes.git
version: noetic-devel
- git:
local-name: srdfdom
uri: https://github.com/ros-planning/srdfdom
version: noetic-devel
- git:
local-name: moveit
uri: https://github.com/ros-planning/moveit.git
version: master
- git:
local-name: rviz_visual_tools
uri: https://github.com/PickNikRobotics/rviz_visual_tools
version: master
- git:
local-name: moveit_visual_tools
uri: https://github.com/ros-planning/moveit_visual_tools.git
version: master
- git:
local-name: moveit_tutorials
uri: https://github.com/ros-planning/moveit_tutorials.git
version: master
- git:
local-name: panda_moveit_config
uri: https://github.com/ros-planning/panda_moveit_config.git
version: noetic-devel
这里一共有9个文件,直接点开对应的网址去下载就好了,下载后放在刚才的src文件夹下,需要注意的是,注意下载的文件版本和自己的ros版本要相匹配,在左侧的下拉菜单中进行选择。
注意:本步骤中的下载可能会因为网络问题漏掉某些软件包,每一步执行完毕后需要注意,若某个命令下有下载失败的软件包需要重复执行该命令
这样在依次执行以下命令,就能够完成源码的安装了
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
sodu catkin build
但是过程时间可能很长
安装编译器缓存(可选环节)
从源代码构建全部甚至部分MoveIt可能需要一个小时。 编译器缓存可以防止重新编译未更改的文件,从而可以将此时间减少到几分钟。 最常用的编译器缓存是适用于gcc和其他类似编译器的ccache。
sudo apt-get install ccache
安装后需要对ccache进行一系列的配置,要在所有受支持的编译器中自动使用ccache,需要将/ usr / lib / ccache目录放在PATH之前(对于Debian或Ubuntu以外的系统,此目录可能有所不同)
echo 'export PATH=/usr/lib/ccache:$PATH' >> $HOME/.bashrc
source $HOME/.bashrc
使用以下命令,可以利用ccache查看build过程中命中率和缓存使用情况的统计信息:
ccache --show-stats
编译Moveit!
catkin build
在该步骤中需要耗费较长时间(若成功配置ccache可能会缩短部分时间,根据电脑性能决定)
如果出现下面类似存在警告或失败的功能包提示,再次运行编译命令即可:
配置Catkin工作区环境变量:
source devel/setup.bash
安装Moveit!
执行完以上步骤后,运行以下命令即可安装Ros noetic版本下的Moveit!
sudo apt-get install ros-noetic-moveit
如果是ROS melodic,则运行 sudo apt-get install ros-melodic-moveit。
更新环境变量:
source /opt/ros/noetic/setup.bash
检测是否安装成功
启动Moveit-Setup-Assistant:
roslaunch moveit_setup_assistant setup_assistant.launch
启动成功后出现如下界面,恭喜你已经成功安装Ros Melodic下的Moveit!