安装 moveit
sudo apt-get purge ros-melodic-moveit-*
删除二进制安装的moveit
sudo apt-get autoremove
删除二进制安装的moveit依赖,这里删除依赖的时候可能删除了一些需要的库,后面可能通过rosdep安装上,可是rosdep update一直连接超时,很烦,,原来是我上面两步将关于raw.githubusercontent.com的文件都删了重新装,而这个里面需要加代理参考:https://blog.youkuaiyun.com/leida_wt/article/details/115120940
rosdep update
安装一些依赖库
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install python-wstool python-catkin-tools clang-format-3.9
mkdir ~/ws_moveit
cd ~/ws_moveit
source /opt/ros/melodic/setup.bash
wstool init src
wstool merge -t src https://raw.githubusercontent.com/ros-planning/moveit/${ROS_DISTRO}-devel/moveit.rosinstall
下载资源
wstool update -t src 下载一些配置文件如cong,msg和一些库 和一些依赖
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 config --extend 就是指定编译环境为ros环境路径.
catkin build
source ~/ws_moveit/devel/setup.bash
echo "source ~/ws_moveit/devel/setup.bash" >> ~/.bashrc
安装 ompl
sudo apt-get purge ros-melodic-ompl
sudo apt-get autoremove
cd ~/moveit_ws/src
git clone https://github.com/ompl/ompl
cd ~/ws_moveit/src/ompl
wget https://raw.githubusercontent.com/ros-gbp/ompl-release/debian/kinetic/xenial/ompl/package.xml
cd ~/ws_moveit
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
source ~/ws_moveit/devel/setup.bash
添加自己的planner
1.为了快速走通整个流程,我直接在RRTstar算法的基础上修改了一下,复制RRT.h(~/ws_moveit/src/ompl/src/ompl/geomatric/planner/rrt)和RRT.cpp(~/ws_moveit/src/ompl/src/ompl/geomatric/planner/rrt/src),并重命名为myRRT.h和myRRT.cpp,保存路径与原文件相同。
打开并修改myRRT.h和myRRT.cpp的内容,将里面的RRT统统改为myRRT。
2.打开并修改planning_context_manager.cpp(~/ws_moveit/src/moveit/moveit_planners/ompl/ompl_interface/src)
include <>应需要包含完整的头文件路径,并仿照别的算法,定义registerPlannerAllocator()
这里有两处地方要改。
3.为了测试是否修改成功,我还装了一个能方便查看算法的demo,参考:
https://blog.youkuaiyun.com/onlyazir/article/details/106127360
打开并修改ompl_planning.yaml(~/catkin_ws/src/universal_robot/ur5_moveit_config/config),仿照RRT算法,添加myRRT算法的配置,myRRTkConfigDefault。这里有三处地方要改。
4.回到moveit工作空间,修改安装的目标文件夹。打开../ompl/src/ompl/CMakeList.txt,将第86行的${CMAKE_INSTALL_LIBDIR} 修改为 “/opt/ros/melodic/lib/x86_64_linux_gnu” 或者 "/opt/ros/melodic/lib/",台式电脑使用的是"/opt/ros/melodic/lib/",笔记本使用“/opt/ros/melodic/lib/x86_64_linux_gnu” ,这里将生成的目标文件保存到指定的目录,你也可以不修改。
5.编译
cd ws_moveit
sudo catkin build
编译报错参考了这个人https://www.zhihu.com/question/293386019将/opt/ros/melodic/lib/x86_64_linux_gnu。因为moveit编译的时候参考
下的三个libompl字样的文件都拷贝到
/opt/ros/melodic/lib/ 编译就能成功。
6.测试
roslaunch ur5_moveit_config demo.launch
参考连接:https://blog.youkuaiyun.com/asliyouas/article/details/105052068
https://blog.youkuaiyun.com/sinat_23853639/article/details/87854461
https://www.zhihu.com/question/293386019
https://blog.youkuaiyun.com/onlyazir/article/details/106127360