源码Moveit运行官方算例出错及解决方案

源码Moveit运行官方算例出错及解决方案

代码运行及错误提示

利用源码安装的moveit测试官方教程motion_planning_api_tutorial算例

  1. cd ~/ws_moveit

  2. sudo catkin build

  3. source ~/ws_moveit/devel/setup.bash

  4. roslaunch panda_moveit_config demo.launch

    模型启动成功,但存在报错如下:[ERROR] [1619399040.492839997]: Exception while loading planning adapter plugin 'default_planner_request_adapters/ResolveConstraintFrames': According to the loaded plugin descriptions the class default_planner_request_adapters/ResolveConstraintFrames with base class type planning_request_adapter::PlanningRequestAdapter does not exist. Declared types are chomp/OptimizerAdapter default_planner_request_adapters/AddIterativeSplineParameterization default_planner_request_adapters/AddTimeOptimalParameterization default_planner_request_adapters/AddTimeParameterization default_planner_request_adapters/Empty default_planner_request_adapters/FixStartStateBounds default_planner_request_adapters/FixStartStateCollision default_planner_request_adapters/FixStartStatePathConstraints default_planner_request_adapters/FixWorkspaceBounds

  5. roslaunch moveit_tutorials motion_planning_api_tutorial.launch

    在点击RvizVisualtool可视化工具箱中的“Next”之前,没有报错提示,一切正常。但点击next开始规划后,程序终止,报错如下:

    1. [ERROR] [1619399096.097943751]: Found empty JointState message

    2. [ERROR] [1619399096.154928373]: RRTConnect: Motion planning start tree could not be initialized!

    3. [ERROR] [1619399096.327331502]: Could not compute plan successfully

Moveit安装源码说明

moveit_ws新源码包

对应的源设置:wstool merge -t src https://ghproxy.com/https://raw.githubusercontent.com/ros-planning/moveit/master/moveit.rosinstall,其中https://ghproxy.com/为免费代理

ws_moveit旧功能包

对应的源设置:wstool merge -t src https://ghproxy.com/https://raw.githubusercontent.com/ros-planning/moveit/melodic-devel/moveit.rosinstall

两个源码包的区别:二者从github官网中的下载分支分别为master和melodic-devel。推测master为主分支,melodic-dev为开发版分支,开发版分支的修改,最终可能会通过git merge的方式合并到主分支上。推荐下载master主分支版本的,稳定也保持维护,melodic-devel分支中的更改可能会被舍弃

解决方法

ws_moveit源码包编译成功,但是roslaunch运行官方moveit_tutorials文件失败的解决方法:

  1. cd ~/ws_moveit

  2. wstool merge -t src https://ghproxy.com/https://raw.githubusercontent.com/ros-planning/moveit/master/moveit.rosinstall 将更新源切换到melodic/master分支

  3. wstool update -t src

  4. catkin config --extend /opt/ros/<span data-formula="{ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release

  5. sudo catkin build

  • 重新编译后仍有报错,但是没有warning和致命的failed错误,具体如下:

    1. geometric_shapes: 功能包编译failed

    2. Abandoned: 33 packages were abandoned.

  • 按照上述方法编译后,可以成功运行。

说明:链接中对于类似错误的给出的说明是源码编译的panda_moveit_config功能包可能和二进制方式安装的moveit功能包不兼容。类似地,不同git源分支下载到的moveit源码存在差异,melodic-devel分支的panda_moveit_config功能包可能和moveit存在兼容性问题。" aria-hidden="true">{ROS_DISTRO} --cmake-args -DCMAKE_BUILD_TYPE=Release

  1. sudo catkin build

  • 重新编译后仍有报错,但是没有warning和致命的failed错误,具体如下:

    1. geometric_shapes: 功能包编译failed

    2. Abandoned: 33 packages were abandoned.

  • 按照上述方法编译后,可以成功运行。

说明:链接中对于类似错误的给出的说明是源码编译的panda_moveit_config功能包可能和二进制方式安装的moveit功能包不兼容。类似地,不同git源分支下载到的moveit源码存在差异,melodic-devel分支的panda_moveit_config功能包可能和moveit存在兼容性问题。


本文章使用limfx的vscode插件快速发布