由于要通过ompl编写自己的算法进行路径规划,因此需要使用源码安装的moveit和ompl,于是就根据自己的一些实际问题和解决,写下这个过程。
1.卸载二进制的moveit!
sudo apt-get remove ros-melodic-moveit-*
2.更新工作环境及ros
rosdep update
sudo apt-get update
sudo apt-get dist-upgrade
3.安装需要用到的工具
sudo apt-get install python-wstool python-catkin-tools clang-format-3.9
4.建议建立独立的工作空间
mkdir ~/ws_moveit
cd ~/ws_moveit
5.进入工作空间后,更新一下环境
source /opt/ros/melodic/setup.bash
6.接下来根据官网的教程,执行下面的命令
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
sodu catkin build
这部分最好是通过手动的方式去下载好9个功能包到src文件夹下,因为是melodic,都下载melodic-devel版本的就行:
# 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: melodic-devel
- git:
local-name: moveit_resources
uri: https://github.com/ros-planning/moveit_resources.git
version: melodic-devel
- git:
local-name: geometric_shapes
uri: https://github.com/ros-planning/geometric_shapes.git
version: melodic-devel
- git:
local-name: srdfdom
uri: https://github.com/ros-planning/srdfdom
version: melodic-devel
- git:
local-name: moveit
uri: https://github.com/ros-planning/moveit.git
version: melodic-devel
- git:
local-name: rviz_visual_tools
uri: https://github.com/PickNikRobotics/rviz_visual_tools
version: melodic-devel
- git:
local-name: moveit_visual_tools
uri: https://github.com/ros-planning/moveit_visual_tools.git
version: melodic-devel
- git:
local-name: moveit_tutorials
uri: https://github.com/ros-planning/moveit_tutorials.git
version: melodic-devel
- git:
local-name: panda_moveit_config
uri: https://github.com/ros-planning/panda_moveit_config.git
version: melodic-devel
7.再执行下面的命令就可以完成编译了
wstool update -t src
rosdep install -y --from-paths src --ignore-src --rosdistro melodic
catkin config --extend /opt/ros/melodic --cmake-args -DCMAKE_BUILD_TYPE=Release
sodu catkin build
其中
rosdep install -y --from-paths src --ignore-src --rosdistro melodic
可以判断还缺少哪些包,对应使用,缺少什么msgs就把对应的msg名字替换掉<msgs name>:
sudo apt-get install ros-melodic-<msgs name>
8.接下来,进行ompl的安装,如果使用下面的语句下载失败,就直接去网站里下载,放在src文件中,实际测试只有下载ompl的master版本是最有用的,下载1.6.0可能会出现cmake版本问题或者yaml-cpp问题等:
cd ~/moveit_ws/src
git clone https://github.com/ompl/ompl
sudo catkin build
下载ompl进入src文件夹,再编译。
9.编译通过就可以使用了,可以使用以下语句验证是否安装成功:
source ~/ws_catkin/devel/setup.bash
roslaunch moveit_setup_assistant setup_assistant.launch
现在系统里一共有两个自建的ROS工作空间:
catkin_ws:用catkin_make编译,放一些自己写的packages,例如机器人的功能包
ws_moveit:用catkin build编译,放moveit相关的packages
注意,catkin_make和catkin build不能在同一个工作空间下混用。
在使用的时候就可以用catkin_ws里面的包去调用ws_moveit里面的moveit,所以,通常按照以下步骤操作,注意:
1、必须始终在一个terminal中
2、不要将source ~/ws_moveit/devel/setup.bash 放在 .bashrc文件中
cd ~/ws_moveit
catkin config --extend /opt/ros/${ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release
sudo catkin build
source ~/ws_moveit/devel/setup.bash
echo $ROS_PACKAGE_PATH #测试是否将moveit添加在环境路径中
cd ~/catkin_ws
catkin_make
source ~/catkin_ws/devel/setup.bash
完成以上操作后,运行以下命令来测试一下是否可以正常调用moveit:
roslaunch ur5_moveit_config demo.launch