moveit2_tutorials icon indicating copy to clipboard operation
moveit2_tutorials copied to clipboard

ros2-ify perception pipeline

Open 130s opened this issue 2 years ago • 16 comments

Issue aimed at

  • Main target: https://github.com/ros-planning/moveit2_tutorials/issues/583
  • https://github.com/ros-planning/moveit2_tutorials/issues/708

Description of changes

  • For https://github.com/ros-planning/moveit2_tutorials/issues/583, ROS2-ified the perception_pipeline sub-package.
  • For https://github.com/ros-planning/moveit2_tutorials/issues/708, manually cherry-picked the changes from the PRs listed in https://github.com/ros-planning/moveit2_tutorials/issues/708.
    • Changes from each PR is committed separately for the better visibility.
    • Initially I tried to git cherry-pick those changes, but some PRs included changes outside of perception tutorial, which is not my scope of this PR, so I gave up and went ahead manually applying changes.

Checklist

  • [ ] Required by CI: Code is auto formatted using clang-format
  • Blocked by:
    • [x] https://github.com/ros-planning/moveit_resources/pull/181, which is blocked by maintainers decision in https://github.com/ros-planning/moveit2_tutorials/issues/704
    • [x] (Optional) https://github.com/ros-planning/panda_moveit_config/pull/136 --> Unblocked by https://github.com/ros-planning/moveit2_tutorials/issues/704#issuecomment-1703137286
      • I'm unfamiliar with the process, but I assume once this is merged, the change will have to be copied into moveit_resources?
    • [ ] https://github.com/ros-planning/moveit_resources/pull/181

Peek 2023-06-28 14-37.webm

130s avatar Jun 07 '23 18:06 130s

Some dependency in ros2 are missing.

rosdep install failed for me:
# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.2 LTS
Release:        22.04
Codename:       jammy

# rosdep install --from-paths src --ignore-src -r -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
moveit2_tutorials: Cannot locate rosdep definition for [moveit_task_constructor_core]
Continuing to install resolvable dependencies...
executing command [apt-get install -y ros-humble-warehouse-ros-mongo]
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package ros-humble-warehouse-ros-mongo
ERROR: the following rosdeps failed to install
  apt: command [apt-get install -y ros-humble-warehouse-ros-mongo] failed
  apt: Failed to detect successful installation of [ros-humble-warehouse-ros-mongo]

# apt install ros-humble-moveit-task-constructor-core
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
E: Unable to locate package ros-humble-moveit-task-constructor-core

Indeed moveit_task_constructor_core is not in humble in rosdistro. Turned out it's never yet released into apt land at least for humble https://github.com/ros-planning/moveit_task_constructor/issues/400 so source build is needed to be added to the tutorial.

I confirmed the deb of warehouse_ros_mongo is missing. It is tracked in https://github.com/ros-planning/warehouse_ros_mongo/issues/75#issuecomment-1581396222.

That said, those missing 2 pkgs might not be necessary for the very tutorial in this PR.

130s avatar Jun 07 '23 19:06 130s

No it does, moveit2_tutorials doesn't build out of the box w/o this resolved. I should add source build anyway for now.
# export PATH_INSTALL_BASE=/opt/ros/$ROS_DISTRO && source $PATH_INSTALL_BASE/setup.bash && colcon build --parallel-workers 2 --packages-select panda_moveit_config moveit2_tutorials
Starting >>> panda_moveit_config
Starting >>> moveit2_tutorials                            
[0.457s] WARNING:colcon.colcon_core.shell:The following packages are in the workspace but haven't been built:
- moveit_visual_tools
They are being used from the following locations instead:
- /opt/ros/humble
To suppress this warning ignore these packages in the workspace:
--packages-ignore moveit_visual_tools
Finished <<< panda_moveit_config [0.10s]
--- stderr: moveit2_tutorials                         
moveit2_tutorials: You did not request a specific build type: Choosing 'Release' for maximum performance
CMake Error at CMakeLists.txt:35 (find_package):
  By not providing "Findmoveit_task_constructor_core.cmake" in
  CMAKE_MODULE_PATH this project has asked CMake to find a package
  configuration file provided by "moveit_task_constructor_core", but CMake
  did not find one.

  Could not find a package configuration file provided by
  "moveit_task_constructor_core" with any of the following names:

    moveit_task_constructor_coreConfig.cmake
    moveit_task_constructor_core-config.cmake

  Add the installation prefix of "moveit_task_constructor_core" to
  CMAKE_PREFIX_PATH or set "moveit_task_constructor_core_DIR" to a directory
  containing one of the above files.  If "moveit_task_constructor_core"
  provides a separate development package or SDK, be sure it has been
  installed.


---
Failed   <<< moveit2_tutorials [2.71s, exited with code 1]

Building MTC fails due to missing moveit_py. Indeed in MTC's source, there are some mentions on moveit_py (despite the lack of formal dependency declaration in package.xml :thinking). I'll keep looking into building moveit_py, but appreciate if anyone has suggestions for which directions this should go.

moveit_py used in MTC
$ git branch -vva
* ros2                                       45ff3ea [origin/ros2] Improve cmake

$ ack -ir moveit_py .
core/include/moveit/python/python_tools/ros_init.h
14:     static void init(const std::string& node_name = "moveit_python_wrapper",

core/python/src/python_tools/__init__.py
1:from pymoveit_python_tools import *

core/python/bindings/CMakeLists.txt
2:set(TOOLS_LIB_NAME moveit_python_tools)
22:pybind11_add_module(pymoveit_python_tools src/python_tools.cpp)
23:target_link_libraries(pymoveit_python_tools PRIVATE ${TOOLS_LIB_NAME})
40:install(TARGETS pymoveit_python_tools pymoveit_mtc

core/python/bindings/src/python_tools.cpp
43:PYBIND11_MODULE(pymoveit_python_tools, m) {
46:     m.def("roscpp_init", &InitProxy::init, "Initialize C++ ROS", py::arg("node_name") = "moveit_python_wrapper",
Failure log from colcon
# colcon build --parallel-workers 2 --packages-select moveit_py                                                            
Starting >>> moveit_py                                                                                                                       
--- stderr: moveit_py                             
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp: In function ‘std::shared_ptr<robot_trajectory::RobotTrajectory> moveit_py::bind_planning_interface::get_motion_plan_response_trajectory(std::shared_ptr<planning_interface::MotionPlanRes
ponse>&)’:                                                                                                                                                                                                                                                                                
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp:46:20: error: ‘using element_type = struct planning_interface::MotionPlanResponse’ {aka ‘struct planning_interface::MotionPlanResponse’} has no member named ‘trajectory’; did you mean ‘t
rajectory_’?                                                                                                                                 
   46 |   return response->trajectory;                                                                                                                                                                                                                                                    
      |                    ^~~~~~~~~~                                                                                                        
      |                    trajectory_                                                                                                                                                                                                                                                    
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp: In function ‘moveit_msgs::msg::RobotState moveit_py::bind_planning_interface::get_motion_plan_response_start_state(std::shared_ptr<planning_interface::MotionPlanResponse>&)’:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp:52:60: error: ‘using element_type = struct planning_interface::MotionPlanResponse’ {aka ‘struct planning_interface::MotionPlanResponse’} has no member named ‘start_state’
   52 |   moveit_msgs::msg::RobotState robot_state_msg = response->start_state;                                          
      |                                                            ^~~~~~~~~~~             
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp: In function ‘moveit_msgs::msg::MoveItErrorCodes moveit_py::bind_planning_interface::get_motion_plan_response_error_code(std::shared_ptr<planning_interface::MotionPlanResponse>&)’:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp:60:65: error: ‘using element_type = struct planning_interface::MotionPlanResponse’ {aka ‘struct planning_interface::MotionPlanResponse’} has no member named ‘error_code’; did you mean ‘e
rror_code_’?                                                   
   60 |       static_cast<moveit_msgs::msg::MoveItErrorCodes>(response->error_code);
      |                                                                 ^~~~~~~~~~                                                
      |                                                                 error_code_
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp: In function ‘double moveit_py::bind_planning_interface::get_motion_plan_response_planning_time(std::shared_ptr<planning_interface::MotionPlanResponse>&)’:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp:66:20: error: ‘using element_type = struct planning_interface::MotionPlanResponse’ {aka ‘struct planning_interface::MotionPlanResponse’} has no member named ‘planning_time’; did you mean
 ‘planning_time_’?
   66 |   return response->planning_time;
      |                    ^~~~~~~~~~~~~
      |                    planning_time_
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp: In function ‘std::string moveit_py::bind_planning_interface::get_motion_plan_response_planner_id(std::shared_ptr<planning_interface::MotionPlanResponse>&)’:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp:71:20: error: ‘using element_type = struct planning_interface::MotionPlanResponse’ {aka ‘struct planning_interface::MotionPlanResponse’} has no member named ‘planner_id’
   71 |   return response->planner_id;
      |                    ^~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp: In function ‘void moveit_py::bind_planning_interface::init_motion_plan_response(pybind11::module&)’:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp:86:79: error: ‘planning_time’ is not a member of ‘planning_interface::MotionPlanResponse’
   86 |       .def_readonly("planning_time", &planning_interface::MotionPlanResponse::planning_time,
      |                                                                               ^~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp:95:76: error: ‘planner_id’ is not a member of ‘planning_interface::MotionPlanResponse’
   95 |       .def_readonly("planner_id", &planning_interface::MotionPlanResponse::planner_id, py::return_value_policy::copy,
      |                                                                            ^~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp: In lambda function:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_core/planning_interface/planning_response.cpp:99:26: error: ‘using element_type = struct planning_interface::MotionPlanResponse’ {aka ‘struct planning_interface::MotionPlanResponse’} has no member named ‘error_code’; did you mean ‘e
rror_code_’?
   99 |         return response->error_code.val == moveit_msgs::msg::MoveItErrorCodes::SUCCESS;
      |                          ^~~~~~~~~~
      |                          error_code_
In file included from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:37:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:64:53: error: ‘MultiPipelinePlanRequestParameters’ is not a member of ‘moveit_cpp::PlanningComponent’
   64 |      std::shared_ptr<moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>& multi_plan_parameters,
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:64:87: error: template argument 1 is invalid
   64 |      std::shared_ptr<moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>& multi_plan_parameters,
      |                                                                                       ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:89: error: template argument 1 is invalid
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:89: error: template argument 1 is invalid
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:89: error: template argument 1 is invalid
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:6: error: invalid template-id
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
     |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:20: error: expected primary-expression before ‘const’
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                    ^~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:20: error: expected ‘>’ before ‘const’
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:6: error: class template placeholder ‘std::optional’ not permitted in this context
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:28: error: ‘planning_pipeline_interfaces’ is not a member of ‘moveit’; did you mean ‘planning_interface’?
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            planning_interface
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:83: error: template argument 1 is invalid
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                                                                                   ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:28: error: ‘planning_pipeline_interfaces’ is not a member of ‘moveit’; did you mean ‘planning_interface’?
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            planning_interface
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:83: error: template argument 1 is invalid
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                                                                                   ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:28: error: ‘planning_pipeline_interfaces’ is not a member of ‘moveit’; did you mean ‘planning_interface’?
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            planning_interface
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:83: error: template argument 1 is invalid
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                                                                                   ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:6: error: invalid template-id
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:28: error: ‘moveit::planning_pipeline_interfaces’ has not been declared
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:6: error: class template placeholder ‘std::optional’ not permitted in this context
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:47:53: error: ‘MultiPipelinePlanRequestParameters’ is not a member of ‘moveit_cpp::PlanningComponent’
   47 |      std::shared_ptr<moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>& multi_plan_parameters,
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:47:87: error: template argument 1 is invalid
   47 |      std::shared_ptr<moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>& multi_plan_parameters,
      |                                                                                       ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:48:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   48 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:48:89: error: template argument 1 is invalid
   48 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:48:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   48 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:48:89: error: template argument 1 is invalid
   48 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:48:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   48 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:48:89: error: template argument 1 is invalid
   48 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:48:6: error: invalid template-id
   48 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:48:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   48 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:48:20: error: expected primary-expression before ‘const’
   48 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                    ^~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:48:20: error: expected ‘>’ before ‘const’
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:48:6: error: class template placeholder ‘std::optional’ not permitted in this context
   48 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:49:28: error: ‘planning_pipeline_interfaces’ is not a member of ‘moveit’; did you mean ‘planning_interface’?
   49 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback)
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            planning_interface
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:49:83: error: template argument 1 is invalid
   49 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback)
      |                                                                                   ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:49:28: error: ‘planning_pipeline_interfaces’ is not a member of ‘moveit’; did you mean ‘planning_interface’?
   49 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback)
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            planning_interface
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:49:83: error: template argument 1 is invalid
   49 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback)
      |                                                                                   ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:49:28: error: ‘planning_pipeline_interfaces’ is not a member of ‘moveit’; did you mean ‘planning_interface’?
   49 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback)
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            planning_interface
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:49:83: error: template argument 1 is invalid
   49 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback)
      |                                                                                   ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:49:6: error: invalid template-id
   49 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback)
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:49:28: error: ‘moveit::planning_pipeline_interfaces’ has not been declared
   49 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback)
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:49:6: error: class template placeholder ‘std::optional’ not permitted in this context
   49 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback)
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp: In function ‘planning_interface::MotionPlanResponse moveit_py::bind_planning_component::plan(...)’:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:64:36: error: could not convert ‘moveit_cpp::PlanningComponent::plan(const moveit_cpp::PlanningComponent::PlanRequestParameters&)((* &((std::__shared_ptr_access<const moveit_cpp::PlanningCompone
nt::PlanRequestParameters, __gnu_cxx::_S_atomic, false, false>*)(& const_single_plan_parameters))->std::__shared_ptr_access<const moveit_cpp::PlanningComponent::PlanRequestParameters, __gnu_cxx::_S_atomic, false, false>::operator*()))’ from ‘moveit_cpp::PlanningComponent::PlanSolut
ion’ to ‘planning_interface::MotionPlanResponse’
   64 |     return planning_component->plan(*const_single_plan_parameters);
      |            ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                    |
      |                                    moveit_cpp::PlanningComponent::PlanSolution
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:69:27: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   69 |     std::shared_ptr<const moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters> const_multi_plan_parameters =
      |                           ^~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:69:92: error: template argument 1 is invalid
   69 |     std::shared_ptr<const moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters> const_multi_plan_parameters =
      |                                                                                            ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:70:39: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   70 |         std::const_pointer_cast<const moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>(
      |                                       ^~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:70:14: error: parse error in template argument list
   70 |         std::const_pointer_cast<const moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>(
      |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:70:105: error: no matching function for call to ‘const_pointer_cast<<expression error> >(int&)’
   70 |         std::const_pointer_cast<const moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
   71 |             multi_plan_parameters);
      |             ~~~~~~~~~~~~~~~~~~~~~~                                                                        
In file included from /usr/include/c++/11/bits/shared_ptr.h:53,
                 from /usr/include/c++/11/memory:77,
                 from /usr/include/pybind11/detail/common.h:253,
                 from /usr/include/pybind11/pytypes.h:12,
                 from /usr/include/pybind11/cast.h:13,
                 from /usr/include/pybind11/attr.h:13,
                 from /usr/include/pybind11/pybind11.h:13,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:37:
/usr/include/c++/11/bits/shared_ptr_base.h:1559:5: note: candidate: ‘template<class _Tp, class _Tp1, __gnu_cxx::_Lock_policy _Lp> std::__shared_ptr<_Tp1, _Lp> std::const_pointer_cast(const std::__shared_ptr<_Tp2, _Lp>&)’
 1559 |     const_pointer_cast(const __shared_ptr<_Tp1, _Lp>& __r) noexcept
      |     ^~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/shared_ptr_base.h:1559:5: note:   template argument deduction/substitution failed:                                                                                                                                                                     [387/1828]
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:70:105: error: template argument 1 is invalid
   70 |         std::const_pointer_cast<const moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
   71 |             multi_plan_parameters);
      |             ~~~~~~~~~~~~~~~~~~~~~~                                                                        
In file included from /usr/include/c++/11/memory:77,
                 from /usr/include/pybind11/detail/common.h:253,
                 from /usr/include/pybind11/pytypes.h:12,
                 from /usr/include/pybind11/cast.h:13,
                 from /usr/include/pybind11/attr.h:13,
                 from /usr/include/pybind11/pybind11.h:13,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:37:
/usr/include/c++/11/bits/shared_ptr.h:591:5: note: candidate: ‘template<class _Tp, class _Up> std::shared_ptr<_Tp> std::const_pointer_cast(const std::shared_ptr<_Tp>&)’
  591 |     const_pointer_cast(const shared_ptr<_Up>& __r) noexcept
      |     ^~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/shared_ptr.h:591:5: note:   template argument deduction/substitution failed:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:70:105: error: template argument 1 is invalid
   70 |         std::const_pointer_cast<const moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>(
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
   71 |             multi_plan_parameters);
      |             ~~~~~~~~~~~~~~~~~~~~~~                                                                        
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:73:9: error: ‘solution_selection_function’ was not declared in this scope
   73 |     if (solution_selection_function && stopping_criterion_callback)
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:73:40: error: ‘stopping_criterion_callback’ was not declared in this scope
   73 |     if (solution_selection_function && stopping_criterion_callback)
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:75:39: error: invalid type argument of unary ‘*’ (have ‘int’)
   75 |       return planning_component->plan(*const_multi_plan_parameters, std::ref(*solution_selection_function),
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:80:39: error: invalid type argument of unary ‘*’ (have ‘int’)
   80 |       return planning_component->plan(*const_multi_plan_parameters, std::ref(*solution_selection_function));
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:84:39: error: invalid type argument of unary ‘*’ (have ‘int’)
   84 |       return planning_component->plan(*const_multi_plan_parameters,
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:85:47: error: ‘moveit::planning_pipeline_interfaces’ has not been declared
   85 |                                       moveit::planning_pipeline_interfaces::getShortestSolution,
      |                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:90:39: error: invalid type argument of unary ‘*’ (have ‘int’)
   90 |       return planning_component->plan(*const_multi_plan_parameters);
      |                                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:95:36: error: could not convert ‘moveit_cpp::PlanningComponent::plan()()’ from ‘moveit_cpp::PlanningComponent::PlanSolution’ to ‘planning_interface::MotionPlanResponse’
   95 |     return planning_component->plan();
      |            ~~~~~~~~~~~~~~~~~~~~~~~~^~
      |                                    |
      |                                    moveit_cpp::PlanningComponent::PlanSolution
In file included from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.h:50,
                 from /cws/src/ros-planning/moveit_py/src/moveit/planning.cpp:37:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:64:53: error: ‘MultiPipelinePlanRequestParameters’ is not a member of ‘moveit_cpp::PlanningComponent’
   64 |      std::shared_ptr<moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>& multi_plan_parameters,
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:64:87: error: template argument 1 is invalid
   64 |      std::shared_ptr<moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>& multi_plan_parameters,
      |                                                                                       ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:89: error: template argument 1 is invalid
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:89: error: template argument 1 is invalid
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:89: error: template argument 1 is invalid
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:6: error: invalid template-id
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:20: error: expected primary-expression before ‘const’
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                    ^~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:20: error: expected ‘>’ before ‘const’
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:6: error: class template placeholder ‘std::optional’ not permitted in this context
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:28: error: ‘planning_pipeline_interfaces’ is not a member of ‘moveit’; did you mean ‘planning_interface’?
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            planning_interface
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:83: error: template argument 1 is invalid
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                                                                                   ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:28: error: ‘planning_pipeline_interfaces’ is not a member of ‘moveit’; did you mean ‘planning_interface’?
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            planning_interface
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:83: error: template argument 1 is invalid
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                                                                                   ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:28: error: ‘planning_pipeline_interfaces’ is not a member of ‘moveit’; did you mean ‘planning_interface’?
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                            planning_interface
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:83: error: template argument 1 is invalid
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                                                                                   ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:6: error: invalid template-id
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:28: error: ‘moveit::planning_pipeline_interfaces’ has not been declared
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:6: error: class template placeholder ‘std::optional’ not permitted in this context
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |      ^~~
gmake[2]: *** [CMakeFiles/core.dir/build.make:160: CMakeFiles/core.dir/src/moveit/moveit_core/planning_interface/planning_response.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:211: CMakeFiles/core.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
In file included from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.h:50,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.cpp:37:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:64:53: error: ‘MultiPipelinePlanRequestParameters’ is not a member of ‘moveit_cpp::PlanningComponent’
   64 |      std::shared_ptr<moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>& multi_plan_parameters,
      |                                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:64:87: error: template argument 1 is invalid
   64 |      std::shared_ptr<moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters>& multi_plan_parameters,
      |                                                                                       ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:89: error: template argument 1 is invalid
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:89: error: template argument 1 is invalid
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:62: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive]
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                              ^~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:89: error: template argument 1 is invalid
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,
      |                                                                                         ^
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:65:6: error: invalid template-id
   65 |      std::optional<const moveit::planning_pipeline_interfaces::SolutionSelectionFunction> solution_selection_function,

:

/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:66:6: error: class template placeholder ‘std::optional’ not permitted in this context
   66 |      std::optional<moveit::planning_pipeline_interfaces::StoppingCriterionFunction> stopping_criterion_callback);
      |      ^~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.cpp: In function ‘void moveit_py::bind_moveit_cpp::init_moveit_py(pybind11::module&)’:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.cpp:131:107: error: no match for call to ‘(const pybind11::detail::overload_cast_impl<const std::shared_ptr<robot_trajectory::RobotTrajectory>&, const std::vector<std::__cxx11::basic_string<char, std::char_
traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&>) (moveit_controller_manager::ExecutionStatus (moveit_cpp::MoveItCpp::*)(const string&, const RobotTrajectoryPtr&, bool))’
  131 |            py::overload_cast<const robot_trajectory::RobotTrajectoryPtr&, const std::vector<std::string>&>(
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  132 |                &moveit_cpp::MoveItCpp::execute),
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                             
In file included from /usr/include/pybind11/pytypes.h:12,
                 from /usr/include/pybind11/cast.h:13,
                 from /usr/include/pybind11/attr.h:13,
                 from /usr/include/pybind11/pybind11.h:13,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.cpp:37:
/usr/include/pybind11/detail/common.h:929:20: note: candidate: ‘template<class Return> constexpr decltype (pf) pybind11::detail::overload_cast_impl<Args>::operator()(Return (*)(Args ...)) const [with Return = Return; Args = {const std::shared_ptr<robot_trajectory::RobotTrajectory>&
, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&}]’
  929 |     constexpr auto operator()(Return (*pf)(Args...)) const noexcept
      |                    ^~~~~~~~
/usr/include/pybind11/detail/common.h:929:20: note:   template argument deduction/substitution failed:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.cpp:131:107: note:   mismatched types ‘Return (*)(const std::shared_ptr<robot_trajectory::RobotTrajectory>&, const std::vector<std::__cxx11::basic_string<char> >&)’ and ‘moveit_controller_manager::Execution
Status (moveit_cpp::MoveItCpp::*)(const string&, const RobotTrajectoryPtr&, bool)’ {aka ‘moveit_controller_manager::ExecutionStatus (moveit_cpp::MoveItCpp::*)(const std::__cxx11::basic_string<char>&, const std::shared_ptr<robot_trajectory::RobotTrajectory>&, bool)’}
  131 |            py::overload_cast<const robot_trajectory::RobotTrajectoryPtr&, const std::vector<std::string>&>(
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  132 |                &moveit_cpp::MoveItCpp::execute),
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                             
In file included from /usr/include/pybind11/pytypes.h:12,
                 from /usr/include/pybind11/cast.h:13,
                 from /usr/include/pybind11/attr.h:13,
                 from /usr/include/pybind11/pybind11.h:13,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.cpp:37:
/usr/include/pybind11/detail/common.h:933:20: note: candidate: ‘template<class Return, class Class> constexpr decltype (pmf) pybind11::detail::overload_cast_impl<Args>::operator()(Return (Class::*)(Args ...), std::false_type) const [with Return = Return; Class = Class; Args = {cons
t std::shared_ptr<robot_trajectory::RobotTrajectory>&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&}]’
  933 |     constexpr auto operator()(Return (Class::*pmf)(Args...), std::false_type = {}) const noexcept
      |                    ^~~~~~~~
/usr/include/pybind11/detail/common.h:933:20: note:   template argument deduction/substitution failed:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.cpp:131:107: note:   mismatched types ‘const std::shared_ptr<robot_trajectory::RobotTrajectory>’ and ‘const string’ {aka ‘const std::__cxx11::basic_string<char>’}
  131 |            py::overload_cast<const robot_trajectory::RobotTrajectoryPtr&, const std::vector<std::string>&>(
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  132 |                &moveit_cpp::MoveItCpp::execute),
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                             
In file included from /usr/include/pybind11/pytypes.h:12,
                 from /usr/include/pybind11/cast.h:13,
                 from /usr/include/pybind11/attr.h:13,
                 from /usr/include/pybind11/pybind11.h:13,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.cpp:37:
/usr/include/pybind11/detail/common.h:937:20: note: candidate: ‘template<class Return, class Class> constexpr decltype (pmf) pybind11::detail::overload_cast_impl<Args>::operator()(Return (Class::*)(Args ...) const, std::true_type) const [with Return = Return; Class = Class; Args = 
{const std::shared_ptr<robot_trajectory::RobotTrajectory>&, const std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&}]’
  937 |     constexpr auto operator()(Return (Class::*pmf)(Args...) const, std::true_type) const noexcept
      |                    ^~~~~~~~
/usr/include/pybind11/detail/common.h:937:20: note:   template argument deduction/substitution failed:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.cpp:131:107: note:   types ‘Return (Class::)(const std::shared_ptr<robot_trajectory::RobotTrajectory>&, const std::vector<std::__cxx11::basic_string<char> >&) const’ and ‘moveit_controller_manager::Executio
nStatus (moveit_cpp::MoveItCpp::)(const string&, const RobotTrajectoryPtr&, bool)’ {aka ‘moveit_controller_manager::ExecutionStatus (moveit_cpp::MoveItCpp::)(const std::__cxx11::basic_string<char>&, const std::shared_ptr<robot_trajectory::RobotTrajectory>&, bool)’} have incompatibl
e cv-qualifiers
  131 |            py::overload_cast<const robot_trajectory::RobotTrajectoryPtr&, const std::vector<std::string>&>(
      |            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  132 |                &moveit_cpp::MoveItCpp::execute),
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                             
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp: In lambda function:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:199:20: error: no matching function for call to ‘moveit_cpp::PlanningComponent::PlanRequestParameters::load(const SharedPtr&, const string&)’
  199 |         params.load(node, ns);
      |         ~~~~~~~~~~~^~~~~~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:242:16: error: ‘params’ was not declared in this scope
  242 |         return params;
      |                ^~~~~~
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp: In function ‘void moveit_py::bind_planning_component::init_multi_plan_request_parameters(pybind11::module&)’:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:238:20: error: no matching function for call to ‘init(moveit_py::bind_planning_component::init_multi_plan_request_parameters(pybind11::module&)::<lambda(std::shared_ptr<moveit_cpp::MoveItCpp>&, 
const std::vector<std::__cxx11::basic_string<char>, std::allocator<std::__cxx11::basic_string<char> > >&)>)’
  238 |       .def(py::init([](std::shared_ptr<moveit_cpp::MoveItCpp>& moveit_cpp,
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  239 |                        const std::vector<std::string>& planning_pipeline_names) {
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  240 |         const rclcpp::Node::SharedPtr& node = moveit_cpp->getNode();
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |         moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters params{ node, planning_pipeline_names };
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |         return params;
      |         ~~~~~~~~~~~~~~
  243 |       }))
      |       ~~            
In file included from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:37:
/usr/include/pybind11/pybind11.h:1690:68: note: candidate: ‘template<class ... Args> pybind11::detail::initimpl::constructor<Args ...> pybind11::init()’
 1690 | template <typename... Args> detail::initimpl::constructor<Args...> init() { return {}; }
      |                                                                    ^~~~
/usr/include/pybind11/pybind11.h:1690:68: note:   template argument deduction/substitution failed:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:238:20: note:   candidate expects 0 arguments, 1 provided
  238 |       .def(py::init([](std::shared_ptr<moveit_cpp::MoveItCpp>& moveit_cpp,
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  239 |                        const std::vector<std::string>& planning_pipeline_names) {
      |                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  240 |         const rclcpp::Node::SharedPtr& node = moveit_cpp->getNode();
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  241 |         moveit_cpp::PlanningComponent::MultiPipelinePlanRequestParameters params{ node, planning_pipeline_names };
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  242 |         return params;
      |         ~~~~~~~~~~~~~~
  243 |       }))
      |       ~~            
In file included from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:37:
/usr/include/pybind11/pybind11.h:1697:5: note: candidate: ‘template<class Func, class Ret> Ret pybind11::init(Func&&)’
 1697 | Ret init(Func &&f) { return {std::forward<Func>(f)}; }
      |     ^~~~
/usr/include/pybind11/pybind11.h:1697:5: note:   template argument deduction/substitution failed:
/usr/include/pybind11/pybind11.h:1702:5: note: candidate: ‘template<class CFunc, class AFunc, class Ret> Ret pybind11::init(CFunc&&, AFunc&&)’
 1702 | Ret init(CFunc &&c, AFunc &&a) {
      |     ^~~~
/usr/include/pybind11/pybind11.h:1417:22: note:   mismatched types ‘Return (Class::*)(Arg ...)’ and ‘planning_interface::MotionPlanResponse (*)(...)’                                                                                                                             [0/1828]
 1417 |         cpp_function cf(method_adaptor<type>(std::forward<Func>(f)), name(name_), is_method(*this),
      |                      ^~
In file included from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:37:
/usr/include/pybind11/pybind11.h:99:5: note: candidate: ‘template<class Func, class ... Extra, class> pybind11::cpp_function::cpp_function(Func&&, const Extra& ...)’
   99 |     cpp_function(Func &&f, const Extra&... extra) {
      |     ^~~~~~~~~~~~
/usr/include/pybind11/pybind11.h:99:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/11/bits/move.h:57,
                 from /usr/include/c++/11/bits/stl_pair.h:59,
                 from /usr/include/c++/11/bits/stl_algobase.h:64,
                 from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/c++/11/math.h:36,
                 from /usr/include/python3.10/pyport.h:210,
                 from /usr/include/python3.10/Python.h:50,
                 from /usr/include/pybind11/detail/common.h:215,
                 from /usr/include/pybind11/pytypes.h:12,
                 from /usr/include/pybind11/cast.h:13,
                 from /usr/include/pybind11/attr.h:13,
                 from /usr/include/pybind11/pybind11.h:13,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:37:
/usr/include/c++/11/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = void]’:
/usr/include/pybind11/pybind11.h:97:15:   required from ‘pybind11::class_<type_, options>& pybind11::class_<type_, options>::def(const char*, Func&&, const Extra& ...) [with Func = planning_interface::MotionPlanResponse (*)(...); Extra = {pybind11::arg_v, pybind11::arg_v, pybind11:
:arg_v, pybind11::arg_v, pybind11::return_value_policy, char [195]}; type_ = moveit_cpp::PlanningComponent; options = {std::shared_ptr<moveit_cpp::PlanningComponent>}]’
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:324:11:   required from here
/usr/include/c++/11/type_traits:2585:11: error: no type named ‘type’ in ‘struct std::enable_if<false, void>’
 2585 |     using enable_if_t = typename enable_if<_Cond, _Tp>::type;
      |           ^~~~~~~~~~~
In file included from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:37:
/usr/include/pybind11/pybind11.h: In instantiation of ‘pybind11::class_<type_, options>& pybind11::class_<type_, options>::def(const char*, Func&&, const Extra& ...) [with Func = planning_interface::MotionPlanResponse (*)(...); Extra = {pybind11::arg_v, pybind11::arg_v, pybind11::a
rg_v, pybind11::arg_v, pybind11::return_value_policy, char [195]}; type_ = moveit_cpp::PlanningComponent; options = {std::shared_ptr<moveit_cpp::PlanningComponent>}]’:
/cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:324:11:   required from here
/usr/include/pybind11/pybind11.h:91:5: note: candidate: ‘pybind11::cpp_function::cpp_function(Return (*)(Args ...), const Extra& ...) [with Return = planning_interface::MotionPlanResponse; Args = {}; Extra = {pybind11::name, pybind11::is_method, pybind11::sibling, pybind11::arg_v, 
pybind11::arg_v, pybind11::arg_v, pybind11::arg_v, pybind11::return_value_policy, char [195]}]’ (near match)
   91 |     cpp_function(Return (*f)(Args...), const Extra&... extra) {
      |     ^~~~~~~~~~~~
/usr/include/pybind11/pybind11.h:91:5: note:   conversion of argument 1 would be ill-formed:
In file included from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:37:
/usr/include/pybind11/pybind11.h:1417:22: error: invalid conversion from ‘planning_interface::MotionPlanResponse (*)(...)’ to ‘planning_interface::MotionPlanResponse (*)()’ [-fpermissive]
 1417 |         cpp_function cf(method_adaptor<type>(std::forward<Func>(f)), name(name_), is_method(*this),
      |                      ^~
      |                      |
      |                      planning_interface::MotionPlanResponse (*)(...)
In file included from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.h:39,
                 from /cws/src/ros-planning/moveit_py/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp:37:
/usr/include/pybind11/pybind11.h:86:5: note: candidate: ‘pybind11::cpp_function::cpp_function(std::nullptr_t)’
   86 |     cpp_function(std::nullptr_t) { }
      |     ^~~~~~~~~~~~
/usr/include/pybind11/pybind11.h:86:5: note:   candidate expects 1 argument, 10 provided
/usr/include/pybind11/pybind11.h:84:5: note: candidate: ‘pybind11::cpp_function::cpp_function()’
   84 |     cpp_function() = default;
      |     ^~~~~~~~~~~~
/usr/include/pybind11/pybind11.h:84:5: note:   candidate expects 0 arguments, 10 provided
/usr/include/pybind11/pybind11.h:82:7: note: candidate: ‘pybind11::cpp_function::cpp_function(const pybind11::cpp_function&)’
   82 | class cpp_function : public function {
      |       ^~~~~~~~~~~~
/usr/include/pybind11/pybind11.h:82:7: note:   candidate expects 1 argument, 10 provided
/usr/include/pybind11/pybind11.h:82:7: note: candidate: ‘pybind11::cpp_function::cpp_function(pybind11::cpp_function&&)’
/usr/include/pybind11/pybind11.h:82:7: note:   candidate expects 1 argument, 10 provided
gmake[2]: *** [CMakeFiles/planning.dir/build.make:76: CMakeFiles/planning.dir/src/moveit/planning.cpp.o] Error 1
gmake[2]: *** Waiting for unfinished jobs....
gmake[2]: *** [CMakeFiles/planning.dir/build.make:90: CMakeFiles/planning.dir/src/moveit/moveit_ros/moveit_cpp/moveit_cpp.cpp.o] Error 1
gmake[2]: *** [CMakeFiles/planning.dir/build.make:104: CMakeFiles/planning.dir/src/moveit/moveit_ros/moveit_cpp/planning_component.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:237: CMakeFiles/planning.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< moveit_py [8.23s, exited with code 2]

Summary: 0 packages finished [8.40s]
  1 package failed: moveit_py
  1 package had stderr output: moveit_py

Oh, I should also note that:

  • the version of moveit2 repo (that contains moveit_py) I'm using is main while my build env is on ROS humble, as moveit_py doesn't seem to be merged into humble branch.
    $ git branch -vv
    * main   de1610dc2 [origin/main] Fix Servo suddenHalt() to halt at previous state, not current (#2229)
    
    Does this explain the build errors I posted above?
  • For the rest of packages in moveit2 repo, I rely on the deb-installed versions as simply building the entire moveit2 repo would take too long, and tutorials readers may run into many unrelated issues I'm afraid.

130s avatar Jun 07 '23 19:06 130s

Ok, I'll just switch this PR to `rolling` and continue.

In moveit/moveit2:rolling-release that I just pulled I see pre-built moveit_py included.

# find /opt/ros/rolling/ -iname moveit_py
/opt/ros/rolling/include/moveit_py
/opt/ros/rolling/include/moveit_py/moveit_py
/opt/ros/rolling/share/ament_index/resource_index/packages/moveit_py
/opt/ros/rolling/share/ament_index/resource_index/parent_prefix_path/moveit_py
/opt/ros/rolling/share/ament_index/resource_index/package_run_dependencies/moveit_py
/opt/ros/rolling/share/moveit_py

Since in Getting' Started section rolling seems to be one of the targeted platforms of moveit tutorial, I came to the conclusion at the top.

130s avatar Jun 07 '23 21:06 130s

MoveGroup keeps dying.
[move_group-5] #11   Source "./moveit_cpp/src/moveit_cpp.cpp", line 56, in MoveItCpp [0x7fe048ab9375]                                                                                                                                                                                     
[move_group-5] #10   Source "./moveit_cpp/src/moveit_cpp.cpp", line 108, in loadPlanningSceneMonitor [0x7fe048ab8b31]                                                                                                                                                                     
[rviz2-2] [INFO] [1686345646.360814151] [rviz2]: Stereo is NOT SUPPORTED                                
[rviz2-2] [INFO] [1686345646.360955459] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[rviz2-2] [INFO] [1686345646.379865873] [rviz2]: Stereo is NOT SUPPORTED                                                                                                                                                                                                                  
[ros2_control_node-6] [INFO] [1686345646.382894711] [controller_manager]: Loading controller 'panda_arm_controller'                                                                                                                                                                       
[move_group-5] #9  | Source "./planning_scene_monitor/src/planning_scene_monitor.cpp", line 1248, in make_unique<occupancy_map_monitor::OccupancyMapMonitor, std::shared_ptr<rclcpp::Node>&, std::shared_ptr<tf2_ros::Buffer>&, const std::__cxx11::basic_string<char, std::char_traits<ch
ar>, std::allocator<char> >&>                                                                                                                
[move_group-5]       Source "/usr/include/c++/11/bits/unique_ptr.h", line 962, in startWorldGeometryMonitor [0x7fe048a018c1]
[move_group-5]         959:   template<typename _Tp, typename... _Args>                                                                      
[move_group-5]         960:     inline typename _MakeUniq<_Tp>::__single_object                                                                                                                                                                                                           
[move_group-5]         961:     make_unique(_Args&&... __args)                                                                               
[move_group-5]       > 962:     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }                                         
[move_group-5]         963:                                                                                                                  
[move_group-5]         964:   /// std::make_unique for arrays of unknown bound                                                               
[move_group-5]         965:   template<typename _Tp>                                                                                         
[spawner-8] [INFO] [1686345646.426243108] [spawner_panda_arm_controller]: Loaded panda_arm_controller                  
[ros2_control_node-6] [INFO] [1686345646.430025788] [controller_manager]: Configuring controller 'panda_arm_controller'                                                                                                                                                                   
[ros2_control_node-6] [INFO] [1686345646.430386554] [panda_arm_controller]: No specific joint names are used for command interfaces. Using 'joints' parameter.
[ros2_control_node-6] [INFO] [1686345646.430474029] [panda_arm_controller]: Command interfaces are [position] and state interfaces are [position velocity].
[ros2_control_node-6] [INFO] [1686345646.430513179] [panda_arm_controller]: Using 'splines' interpolation method.                            
[ros2_control_node-6] [INFO] [1686345646.439847502] [panda_arm_controller]: Action status changes will be monitored at 20.00 Hz.                                                                                                                                                          
[move_group-5] #8  | Source "./src/occupancy_map_monitor.cpp", line 66, in make_unique<occupancy_map_monitor::OccupancyMapMonitorMiddlewareHandle, const std::shared_ptr<rclcpp::Node>&, double&, const std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&> 
[move_group-5]       Source "/usr/include/c++/11/bits/unique_ptr.h", line 962, in OccupancyMapMonitor [0x7fe047cf5613]              
[move_group-5]         959:   template<typename _Tp, typename... _Args>                                                            
[move_group-5]         960:     inline typename _MakeUniq<_Tp>::__single_object                                                                                                                                                                                                           
[move_group-5]         961:     make_unique(_Args&&... __args)                                                                               
[move_group-5]       > 962:     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }                                         
[move_group-5]         963:                                                                                                                  
[move_group-5]         964:   /// std::make_unique for arrays of unknown bound                                                               
[move_group-5]         965:   template<typename _Tp>                                                                                                                                                                                                                                      
[move_group-5] #7  | Source "./src/occupancy_map_monitor_middleware_handle.cpp", line 74, in get_parameter<double>           
[move_group-5]     | Source "/opt/ros/rolling/include/rclcpp/rclcpp/node_impl.hpp", line 343, in get_value<double>
[move_group-5]     |   341:   bool result = get_parameter(sub_name, parameter_variant);                                                      
[move_group-5]     |   342:   if (result) {                                                                                                  
[move_group-5]     | > 343:     parameter = static_cast<ParameterT>(parameter_variant.get_value<ParameterT>());                              
[move_group-5]     |   344:   }                                                                                                                                                                                                                                                           
[move_group-5]       Source "/opt/ros/rolling/include/rclcpp/rclcpp/parameter.hpp", line 276, in OccupancyMapMonitorMiddlewareHandle [0x7fe047cec78a]
[move_group-5]         273:     // use the helper to specialize for the ParameterValue and Parameter cases.
[move_group-5]         274:     return detail::get_value_helper<T>(this);
[move_group-5]         275:   } catch (const ParameterTypeException & ex) {
[move_group-5]       > 276:     throw exceptions::InvalidParameterTypeException(this->name_, ex.what());
[move_group-5]         277:   }
[move_group-5]         278: }
[move_group-5]         279: /// \endcond
[move_group-5] #6    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fe048427517, in __cxa_throw
[move_group-5] #5    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fe0484272b6, in std::terminate()
[move_group-5] #4    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fe04842724b, in 
[move_group-5] #3    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fe04841bbbd, in 
[move_group-5] #2    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fe0481577f2, in abort
[move_group-5] #1    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fe048171475, in raise
[move_group-5] #0    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fe0481c5a7c, in pthread_kill
[move_group-5] Aborted (Signal sent by tkill() 617468 0)
[spawner-8] [INFO] [1686345646.466023023] [spawner_panda_arm_controller]: Configured and activated panda_arm_controller
[rviz2-2] [INFO] [1686345646.510494638] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00270741 seconds
[rviz2-2] [INFO] [1686345646.510587069] [moveit_robot_model.robot_model]: Loading robot model 'panda'...
[ERROR] [move_group-5]: process has died [pid 617468, exit code -6, cmd '/opt/ros/rolling/lib/moveit_ros_move_group/move_group --ros-args --log-level info --ros-args --params-file /tmp/launch_params_4xh7vusw --params-file /tmp/launch_params_3on85evv --params-file /tmp/launch_params
_cffkyb6d --params-file /tmp/launch_params_6qhisptp --params-file /tmp/launch_params_3dlfxzp1'].

UPDATE:

This must be the culprit.

[move_group-5] terminate called after throwing an instance of 'rclcpp::exceptions::InvalidParameterTypeException'
[move_group-5]   what():  parameter 'octomap_resolution' has invalid type: expected [double] got [string]                                    
[move_group-5] Stack trace (most recent call last):
[move_group-5] #16   Object "", at 0xffffffffffffffff, in

130s avatar Jun 09 '23 21:06 130s

Dep resolution on GitHub CI keeps failing at `libfranka`.

https://github.com/ros-planning/moveit2_tutorials/actions/runs/5226264734/jobs/9436731544#step:6:208

  $ ( source /opt/ros/rolling/setup.bash && rosdep install -q --from-paths /home/runner/work/moveit2_tutorials/moveit2_tutorials/.work/upstream_ws/src --ignore-src -y | grep -E '(executing command)|(Setting up)' ; )
  ERROR: the following packages/stacks could not have their rosdep keys resolved
  to system dependencies:
  franka_gripper: Cannot locate rosdep definition for [libfranka]

It is required in franka_ros2/franka_gripper.

franka_ros2$ ack -ir libfranka .
Dockerfile
36:RUN cd ~/source_code && git clone https://github.com/frankaemika/libfranka.git \
37:    && cd libfranka \

franka_gripper/package.xml
21:  <depend>libfranka</depend>

Then why did I add franka_ros2? It's because of a need on franka_description. NOTE these are existing code, NOT the code added in this PR.

$ cd moveit2_tutorials && ack -ir franka_description .
doc/examples/visualizing_collisions/launch/visualizing_collisions_tutorial.launch
4:  <param name="robot_description" command="$(find xacro)/xacro '$(find franka_description)/robots/panda_arm_hand.urdf.xacro'"/>

doc/examples/bullet_collision_checker/launch/bullet_collision_checker_tutorial.launch
4:  <param name="robot_description" command="$(find xacro)/xacro --inorder '$(find franka_description)/robots/panda_arm_hand.urdf.xacro'"/>

It's getting convoluted. Also the installer of libfranka doesn't seem to be available on ROS rolling as of now so we'd have to build by our own, which would add unnecessary burden if building it isn't straightforward. As a consequence, in an effort to separate this model file location saga out of this PR, I ended up filing https://github.com/ros-planning/moveit2_tutorials/issues/701.

130s avatar Jun 10 '23 11:06 130s

Octomap is not showing.

In sensors_kinect_{depthmap, pointcloud}.yaml,

sensors:
  - sensor_plugin: occupancy_map_monitor/PointCloudOctomapUpdater
    image_topic: /camera/depth_registered/image_raw
:    

This doesn't seem published. pointcloud is published (from the rosbag file). So use it.

sensors:
  - sensor_plugin: occupancy_map_monitor/PointCloudOctomapUpdater
    point_cloud_topic: /camera/depth_registered/points
:    
ros2 param get /move_group octomap_frame
ros2 param get /move_group octomap_resolution
ros2 param get /move_group image_topic

These prints expected values though.

Found a set of params that look suspecious.

With yaml:

/**:
  sensors:
    ros__parameters:
      sensor_plugin: occupancy_map_monitor/PointCloudOctomapUpdater
      point_cloud_topic: /camera/depth_registered/points
      max_range: 5.0
      point_subsample: 1
      padding_offset: 0.1
      padding_scale: 1.0
      max_update_rate: 1.0
      filtered_cloud_topic: filtered_cloud

Result on param server:

/move_group:                    
  /**.sensors.ros__parameters.filtered_cloud_topic
  /**.sensors.ros__parameters.max_range                            
  /**.sensors.ros__parameters.max_update_rate
  /**.sensors.ros__parameters.padding_offset    
  /**.sensors.ros__parameters.padding_scale
  /**.sensors.ros__parameters.point_cloud_topic
  /**.sensors.ros__parameters.point_subsample
  /**.sensors.ros__parameters.sensor_plugin
:
/moveit_simple_controller_manager:                
  /**.sensors.ros__parameters.filtered_cloud_topic
  /**.sensors.ros__parameters.max_range                            
  /**.sensors.ros__parameters.max_update_rate
  /**.sensors.ros__parameters.padding_offset    
  /**.sensors.ros__parameters.padding_scale
  /**.sensors.ros__parameters.point_cloud_topic
  /**.sensors.ros__parameters.point_subsample
  /**.sensors.ros__parameters.sensor_plugin

Maybe I should know how a code gets these params.


UPDATE:

All examples of ros2 parameter .yaml files I've seen so far use:

node_name
|- ros__parameters:
  |- param_a
  |- param_b

But in my case,

node_name
|- sensors
  |- ros__parameters:
    |- param_a
    |- param_b

I tried this but no good?

node_name
|- ros__parameters:
  |- sensors
    |- param_a
    |- param_b

Resulted in:

/move_group:                                                                                                                                 
  /**.ros__parameters.sensors.filtered_cloud_topic                                                                                           
  /**.ros__parameters.sensors.max_range                            
  /**.ros__parameters.sensors.max_update_rate
  /**.ros__parameters.sensors.padding_offset    
  /**.ros__parameters.sensors.padding_scale
  /**.ros__parameters.sensors.point_cloud_topic
  /**.ros__parameters.sensors.point_subsample
  /**.ros__parameters.sensors.sensor_plugin        

With yaml:

/**:
  sensors:
    ros__parameters:
      sensor_plugin: occupancy_map_monitor/PointCloudOctomapUpdater
      point_cloud_topic: /camera/depth_registered/points
      max_range: 5.0
      point_subsample: 1
      padding_offset: 0.1
      padding_scale: 1.0
      max_update_rate: 1.0
      filtered_cloud_topic: filtered_cloud

Result on param server:

/move_group:                    
  /**.sensors.ros__parameters.filtered_cloud_topic
  /**.sensors.ros__parameters.max_range                            
  /**.sensors.ros__parameters.max_update_rate
  /**.sensors.ros__parameters.padding_offset    
  /**.sensors.ros__parameters.padding_scale
  /**.sensors.ros__parameters.point_cloud_topic
  /**.sensors.ros__parameters.point_subsample
  /**.sensors.ros__parameters.sensor_plugin
:
/moveit_simple_controller_manager:                
  /**.sensors.ros__parameters.filtered_cloud_topic
  /**.sensors.ros__parameters.max_range                            
  /**.sensors.ros__parameters.max_update_rate
  /**.sensors.ros__parameters.padding_offset    
  /**.sensors.ros__parameters.padding_scale
  /**.sensors.ros__parameters.point_cloud_topic
  /**.sensors.ros__parameters.point_subsample
  /**.sensors.ros__parameters.sensor_plugin

Maybe I should know how a code gets these params.

Also noticed:

[move_group-5] [INFO] [1686948027.178408786] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.
:
[move_group-5] [ERROR] [1686948027.179315254] [moveit.ros.occupancy_map_monitor.middleware_handle]: No 3D sensor plugin(s) defined for octomap updates

Found someone already ported moveit_tutorial to ros2 answers.ros.org#389233/moveit2-add-pointcloud2-to-occupancymapmonitor/. Swapping sensor config to sensor_3d.yaml,

[move_group-5] [INFO] [1686948669.375460223] [moveit.ros.perception.pointcloud_octomap_updater]: Listening to '/camera/depth_registered/points' using message filter with target frame 'world '
[rviz2-2] [INFO] [1686948669.377183480] [rviz2]: Stereo is NOT SUPPORTED                                         
[move_group-5] [ERROR] [1686948669.378423502] [move_group]: Failed to load plugin image_transport/raw_pub, error string: could not create publisher: create_publisher() called for existing topic name rt/filtered_cloud with incompatible type sensor_msgs::msg::dds_::Image_, at ./src/p
ublisher.cpp:145, at ./src/rcl/publisher.c:116                                                                                               
[move_group-5]                                                                                                                               
[move_group-5] terminate called after throwing an instance of 'image_transport::Exception'         
[move_group-5]   what():  No plugins found! Does `rospack plugins --attrib=plugin image_transport` find any packages?
[move_group-5] Stack trace (most recent call last):                                                                                          
[move_group-5] #20   Object "", at 0xffffffffffffffff, in                                                                                    
[move_group-5] #19   Object "/opt/ros/rolling/lib/moveit_ros_move_group/move_group", at 0x55a9d131ac24, in _start
[move_group-5] #18   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f17dbee5e3f, in __libc_start_main                                                                                                                                                                                
[move_group-5] #17   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f17dbee5d8f, in                         
[move_group-5] #16 | Source "./src/move_group.cpp", line 280, in make_shared<moveit_cpp::MoveItCpp, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr.h", line 879, in allocate_shared<moveit_cpp::MoveItCpp, std::allocator<moveit_cpp::MoveItCpp>, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |   877:       typedef typename std::remove_cv<_Tp>::type _Tp_nc;                                                
[move_group-5]     |   878:       return std::allocate_shared<_Tp>(std::allocator<_Tp_nc>(),                                       
[move_group-5]     | > 879:                                    std::forward<_Args>(__args)...);                                             
[move_group-5]     |   880:     }                                                                                                            
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr.h", line 863, in shared_ptr<std::allocator<moveit_cpp::MoveItCpp>, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |   862:       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},                             
[move_group-5]     | > 863:                          std::forward<_Args>(__args)...);                                        
[move_group-5]     |   864:     }                                                                                                            
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr.h", line 409, in __shared_ptr<std::allocator<moveit_cpp::MoveItCpp>, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>                  
[move_group-5]     |   407:       template<typename _Alloc, typename... _Args>
[move_group-5]     |   408:     shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)                  
[move_group-5]     | > 409:     : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
[move_group-5]     |   410:     { }                                                                                                          
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr_base.h", line 1342, in __shared_count<moveit_cpp::MoveItCpp, std::allocator<moveit_cpp::MoveItCpp>, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |  1340:       template<typename _Alloc, typename... _Args>                
[move_group-5]     |  1341:     __shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
[move_group-5]     | >1342:     : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
[move_group-5]     |  1343:     { _M_enable_shared_from_this_with(_M_ptr); }                         
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr_base.h", line 650, in _Sp_counted_ptr_inplace<std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |   648:       auto __guard = std::__allocate_guarded(__a2);                                                                                                                                                                                                           
[move_group-5]     |   649:       _Sp_cp_type* __mem = __guard.get();                                                                                                                                                                                                                     
[move_group-5]     | > 650:       auto __pi = ::new (__mem)                                                                                  
[move_group-5]     |   651:         _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);                                      
[move_group-5]     |   652:       __guard = nullptr;                                                                                         
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr_base.h", line 519, in construct<moveit_cpp::MoveItCpp, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |   517:       // _GLIBCXX_RESOLVE_LIB_DEFECTS
[move_group-5]     |   518:       // 2070.  allocate_shared should use allocator_traits<A>::construct                       
[move_group-5]     | > 519:       allocator_traits<_Alloc>::construct(__a, _M_ptr(),                                  
[move_group-5]     |   520:           std::forward<_Args>(__args)...); // might throw                      
[move_group-5]     |   521:     }                                                                                                            
[move_group-5]     | Source "/usr/include/c++/11/bits/alloc_traits.h", line 516, in construct<moveit_cpp::MoveItCpp, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |   514:     {                                                                                                            
[move_group-5]     |   515: #if __cplusplus <= 201703L      
[move_group-5]     | > 516:       __a.construct(__p, std::forward<_Args>(__args)...);                                                                                                                                                                                                     
[move_group-5]     |   517: #else                          
[move_group-5]     |   518:       std::construct_at(__p, std::forward<_Args>(__args)...);       
[move_group-5]     | Source "/usr/include/c++/11/ext/new_allocator.h", line 162, in MoveItCpp   
[move_group-5]     |   160:     construct(_Up* __p, _Args&&... __args)                                                                       
[move_group-5]     |   161:     noexcept(std::is_nothrow_constructible<_Up, _Args...>::value)
[move_group-5]     | > 162:     { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }    
[move_group-5]     |   163:                                                                                                                  
[move_group-5]     |   164:       template<typename _Up>                                                                                     
[move_group-5]       Source "/opt/ros/rolling/include/moveit_ros_planning/moveit/moveit_cpp/moveit_cpp.h", line 119, in main [0x55a9d1319528]                                                                                                
[move_group-5]         116:   MoveItCpp(const rclcpp::Node::SharedPtr& node);                                                      
[move_group-5]         117:   [[deprecated("Passing tf2_ros::Buffer to MoveItCpp's constructor is deprecated")]] MoveItCpp(
[move_group-5]         118:       const rclcpp::Node::SharedPtr& node, const Options& options, const std::shared_ptr<tf2_ros::Buffer>& /* unused */)
[move_group-5]       > 119:     : MoveItCpp(node, options)                                                                                   
[move_group-5]         120:   {                                                                                                              
[move_group-5]         121:   }                                                                                                                                                                                                                                                           [move_group-5]         122:   MoveItCpp(const rclcpp::Node::SharedPtr& node, const Options& options);                                                                                                                                                                                     
[rviz2-2] [INFO] [1686948669.443673235] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00147983 seconds
Hm, now this.
# ros2 launch moveit2_tutorials obstacle_avoidance_demo.launch.xml
[INFO] [launch]: All log files can be found below /root/.ros/log/2023-06-16-17-32-26-667442-130s-p16s-168318   
[INFO] [launch]: Default logging verbosity is set to INFO                                                      
[INFO] [ros2-1]: process started with pid [168334]                                  
[INFO] [rviz2-2]: process started with pid [168336]                                 
[INFO] [static_transform_publisher-3]: process started with pid [168338]                                       
[INFO] [robot_state_publisher-4]: process started with pid [168340]                 
[INFO] [move_group-5]: process started with pid [168342]                            
[INFO] [ros2_control_node-6]: process started with pid [168344]                                                
[INFO] [spawner-7]: process started with pid [168346] 
[INFO] [spawner-8]: process started with pid [168348]                               
[INFO] [spawner-9]: process started with pid [168350]                               
[INFO] [static_transform_publisher-10]: process started with pid [168352]                                      
[INFO] [static_transform_publisher-11]: process started with pid [168354]           
[static_transform_publisher-3] [WARN] [1686951147.021646004] []: Old-style arguments are deprecated; see --help for new-style arguments      
[static_transform_publisher-11] [WARN] [1686951147.028994679] []: Old-style arguments are deprecated; see --help for new-style arguments
[static_transform_publisher-10] [WARN] [1686951147.030288925] []: Old-style arguments are deprecated; see --help for new-style arguments
[static_transform_publisher-3] [INFO] [1686951147.035127028] [static_transform_publisher]: Spinning until stopped - publishing transform     
[static_transform_publisher-3] translation: ('0.000000', '0.000000', '0.000000')    
[static_transform_publisher-3] rotation: ('0.000000', '0.000000', '0.000000', '1.000000')                      
[static_transform_publisher-3] from 'world' to 'panda_link0'                        
[robot_state_publisher-4] [WARN] [1686951147.039281827] [kdl_parser]: The root link panda_link0 has an inertia specified in the URDF, but KDL does not support a root link with an inertia.  As a workaround, you can add an extra dummy link to your URDF.
[robot_state_publisher-4] [INFO] [1686951147.039385865] [robot_state_publisher]: got segment panda_hand                             
[robot_state_publisher-4] [INFO] [1686951147.039437676] [robot_state_publisher]: got segment panda_leftfinger  
[robot_state_publisher-4] [INFO] [1686951147.039443328] [robot_state_publisher]: got segment panda_link0       
[robot_state_publisher-4] [INFO] [1686951147.039446968] [robot_state_publisher]: got segment panda_link1       [robot_state_publisher-4] [INFO] [1686951147.039450065] [robot_state_publisher]: got segment panda_link2       
[robot_state_publisher-4] [INFO] [1686951147.039453288] [robot_state_publisher]: got segment panda_link3       [robot_state_publisher-4] [INFO] [1686951147.039456588] [robot_state_publisher]: got segment panda_link4                           
[robot_state_publisher-4] [INFO] [1686951147.039459521] [robot_state_publisher]: got segment panda_link5                                    
[robot_state_publisher-4] [INFO] [1686951147.039462618] [robot_state_publisher]: got segment panda_link6      
[robot_state_publisher-4] [INFO] [1686951147.039465534] [robot_state_publisher]: got segment panda_link7                
[robot_state_publisher-4] [INFO] [1686951147.039468429] [robot_state_publisher]: got segment panda_link8                     
[robot_state_publisher-4] [INFO] [1686951147.039471334] [robot_state_publisher]: got segment panda_rightfinger   
[rviz2-2] QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'                      
[static_transform_publisher-10] [INFO] [1686951147.055698110] [to_panda]: Spinning until stopped - publishing transform
[static_transform_publisher-10] translation: ('0.000000', '0.000000', '0.000000')                              
[static_transform_publisher-10] rotation: ('0.000000', '0.000000', '0.000000', '1.000000')                     
[static_transform_publisher-10] from 'world' to 'panda_link0'                       
[static_transform_publisher-11] [INFO] [1686951147.055854849] [to_camera]: Spinning until stopped - publishing transform                                                
[static_transform_publisher-11] translation: ('0.115000', '0.427000', '0.570000')              
[static_transform_publisher-11] rotation: ('0.815099', '0.057256', '-0.081783', '0.570655')                                                  
[static_transform_publisher-11] from 'camera_rgb_optical_frame' to 'world'                                     
[ros2_control_node-6] [INFO] [1686951147.058564252] [resource_manager]: Loading hardware 'PandaFakeSystem' 
[ros2_control_node-6] [INFO] [1686951147.059251344] [resource_manager]: Initialize hardware 'PandaFakeSystem'          
[ros2_control_node-6] [WARN] [1686951147.059306397] [mock_generic_system]: Parsing of optional initial interface values failed or uses a deprecated format. Add initial values for every state interface in the ros2_control.xacro. For example:                                          
[ros2_control_node-6] <state_interface name="velocity">                                                        
[ros2_control_node-6]   <param name="initial_value">0.0</param>                     
[ros2_control_node-6] </state_interface>                                            
[ros2_control_node-6] [INFO] [1686951147.059321372] [resource_manager]: Successful initialization of hardware 'PandaFakeSystem'
[ros2_control_node-6] [INFO] [1686951147.059347919] [resource_manager]: Loading hardware 'PandaHandFakeSystem' 
[ros2_control_node-6] [INFO] [1686951147.059363429] [resource_manager]: Initialize hardware 'PandaHandFakeSystem'                                                       
[ros2_control_node-6] [INFO] [1686951147.059380861] [resource_manager]: Successful initialization of hardware 'PandaHandFakeSystem'
[ros2_control_node-6] [WARN] [1686951147.059424476] [controller_manager]: [Deprecated]: Automatic activation of all hardware components will not be supported in the future anymore. Use hardware_spawner instead.
[ros2_control_node-6] [INFO] [1686951147.059540314] [resource_manager]: 'configure' hardware 'PandaFakeSystem' 
[ros2_control_node-6] [INFO] [1686951147.059548901] [resource_manager]: Successful 'configure' of hardware 'PandaFakeSystem'
[ros2_control_node-6] [INFO] [1686951147.059556934] [resource_manager]: 'activate' hardware 'PandaFakeSystem'  
[ros2_control_node-6] [INFO] [1686951147.059562013] [resource_manager]: Successful 'activate' of hardware 'PandaFakeSystem'
[ros2_control_node-6] [INFO] [1686951147.059566830] [resource_manager]: 'configure' hardware 'PandaHandFakeSystem'                           
[ros2_control_node-6] [INFO] [1686951147.059570860] [resource_manager]: Successful 'configure' of hardware 'PandaHandFakeSystem'             
[ros2_control_node-6] [INFO] [1686951147.059575890] [resource_manager]: 'activate' hardware 'PandaHandFakeSystem'                  
[ros2_control_node-6] [INFO] [1686951147.059580047] [resource_manager]: Successful 'activate' of hardware 'PandaHandFakeSystem'                                         
[ros2_control_node-6] [INFO] [1686951147.065007078] [controller_manager]: update rate is 100 Hz
[ros2_control_node-6] [INFO] [1686951147.065173687] [controller_manager]: RT kernel is recommended for better performance    
[move_group-5] [INFO] [1686951147.103734695] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.0013754 seconds
[move_group-5] [INFO] [1686951147.103787094] [moveit_robot_model.robot_model]: Loading robot model 'panda'...
[move_group-5] [WARN] [1686951147.110457612] [kdl_parser]: The root link panda_link0 has an inertia specified in the URDF, but KDL does not support a root link with an inertia.  As a workaround, you can add an extra dummy link to your URDF.          
[move_group-5] [INFO] [1686951147.110551862] [moveit_kinematics_base.kinematics_base]: Joint weights for group 'panda_arm': 1 1 1 1 1 1 1
[move_group-5] [INFO] [1686951147.132729238] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Publishing maintained planning scene on 'monitored_planning_scene'   
[move_group-5] [INFO] [1686951147.132859606] [moveit.ros_planning_interface.moveit_cpp]: Listening to 'joint_states' for joint states
[move_group-5] [INFO] [1686951147.134054780] [moveit_ros.current_state_monitor]: Listening to joint states on topic 'joint_states'
[move_group-5] [INFO] [1686951147.134490933] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/attached_collision_object' for attached collision objects
[move_group-5] [INFO] [1686951147.134507413] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor
[move_group-5] [INFO] [1686951147.134820220] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/planning_scene'
[move_group-5] [INFO] [1686951147.134832262] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.
[move_group-5] [INFO] [1686951147.135159510] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'collision_object'
[move_group-5] [INFO] [1686951147.135587044] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'planning_scene_world' for planning scene world geometry
[ros2-1] stdin is not a terminal device. Keyboard handling disabled.[INFO] [1686951147.224534229] [rosbag2_storage]: Opened database '/cws/install/moveit2_tutorials/share/moveit2_tutorials/bags/perception_tutorial.bag/perception_tutorial.db3' for READ_ONLY.
[ros2-1] [INFO] [1686951147.224588757] [rosbag2_player]: Set rate to 1 
[rviz2-2] [INFO] [1686951147.291523282] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-2] [INFO] [1686951147.291669901] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[rviz2-2] [INFO] [1686951147.307688566] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-2] [INFO] [1686951147.369436913] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00130968 seconds
[rviz2-2] [INFO] [1686951147.369486132] [moveit_robot_model.robot_model]: Loading robot model 'panda'...
[move_group-5] [INFO] [1686951147.562696603] [moveit.ros.perception.pointcloud_octomap_updater]: Listening to '/camera/depth_registered/points' using message filter with target frame 'world '
[rviz2-2] [INFO] [1686951147.579677599] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00144278 seconds
[rviz2-2] [INFO] [1686951147.579754640] [moveit_robot_model.robot_model]: Loading robot model 'panda'...
[move_group-5] [ERROR] [1686951147.587684238] [move_group]: Failed to load plugin image_transport/raw_pub, error string: could not create publisher: create_publisher() called for existing topic name rt/filtered_cloud with incompatible type sensor_msgs::msg::dds_::Image_, at ./src/p
ublisher.cpp:145, at ./src/rcl/publisher.c:116
[move_group-5] 
[move_group-5] terminate called after throwing an instance of 'image_transport::Exception'
[move_group-5]   what():  No plugins found! Does `rospack plugins --attrib=plugin image_transport` find any packages?
[move_group-5] Stack trace (most recent call last):
[move_group-5] #20   Object "", at 0xffffffffffffffff, in 
[ros2_control_node-6] [INFO] [1686951147.597218634] [controller_manager]: Loading controller 'panda_hand_controller'
[ros2-1] [INFO] [1686951147.600028487] [rosbag2_player]: Adding keyboard callbacks.
[ros2-1] [INFO] [1686951147.603484671] [rosbag2_player]: Press SPACE for Pause/Resume
[ros2-1] [INFO] [1686951147.603591378] [rosbag2_player]: Press CURSOR_RIGHT for Play Next Message
[ros2-1] [INFO] [1686951147.603601783] [rosbag2_player]: Press CURSOR_UP for Increase Rate 10%
[ros2-1] [INFO] [1686951147.603609553] [rosbag2_player]: Press CURSOR_DOWN for Decrease Rate 10%
[ros2-1] [INFO] [1686951147.603794766] [rosbag2_player]: Playback until timestamp: -1
[rviz2-2] [WARN] [1686951147.606627975] [kdl_parser]: The root link panda_link0 has an inertia specified in the URDF, but KDL does not support a root link with an inertia.  As a workaround, you can add an extra dummy link to your URDF.
[rviz2-2] [INFO] [1686951147.606816979] [moveit_kinematics_base.kinematics_base]: Joint weights for group 'panda_arm': 1 1 1 1 1 1 1
[rviz2-2] [INFO] [1686951147.635752673] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor
[rviz2-2] [INFO] [1686951147.637898910] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/monitored_planning_scene'
[spawner-9] [INFO] [1686951147.640145811] [spawner_panda_hand_controller]: Loaded panda_hand_controller
[ros2_control_node-6] [INFO] [1686951147.641317178] [controller_manager]: Configuring controller 'panda_hand_controller'
[ros2_control_node-6] [INFO] [1686951147.641453969] [panda_hand_controller]: Action status changes will be monitored at 20Hz.
[move_group-5] #19   Object "/opt/ros/rolling/lib/moveit_ros_move_group/move_group", at 0x5595f3e46c24, in _start
[move_group-5] #18   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f804af96e3f, in __libc_start_main
[move_group-5] #17   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f804af96d8f, in 
[move_group-5] #16 | Source "./src/move_group.cpp", line 280, in make_shared<moveit_cpp::MoveItCpp, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr.h", line 879, in allocate_shared<moveit_cpp::MoveItCpp, std::allocator<moveit_cpp::MoveItCpp>, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |   877:       typedef typename std::remove_cv<_Tp>::type _Tp_nc;
[move_group-5]     |   878:       return std::allocate_shared<_Tp>(std::allocator<_Tp_nc>(),
[move_group-5]     | > 879:    std::forward<_Args>(__args)...);
[move_group-5]     |   880:     }
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr.h", line 863, in shared_ptr<std::allocator<moveit_cpp::MoveItCpp>, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |   862:       return shared_ptr<_Tp>(_Sp_alloc_shared_tag<_Alloc>{__a},
[move_group-5]     | > 863:          std::forward<_Args>(__args)...);
[move_group-5]     |   864:     }
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr.h", line 409, in __shared_ptr<std::allocator<moveit_cpp::MoveItCpp>, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |   407:       template<typename _Alloc, typename... _Args>
[move_group-5]     |   408:     shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
[move_group-5]     | > 409:     : __shared_ptr<_Tp>(__tag, std::forward<_Args>(__args)...)
[move_group-5]     |   410:     { }
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr_base.h", line 1342, in __shared_count<moveit_cpp::MoveItCpp, std::allocator<moveit_cpp::MoveItCpp>, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |  1340:       template<typename _Alloc, typename... _Args>
[move_group-5]     |  1341:     __shared_ptr(_Sp_alloc_shared_tag<_Alloc> __tag, _Args&&... __args)
[move_group-5]     | >1342:     : _M_ptr(), _M_refcount(_M_ptr, __tag, std::forward<_Args>(__args)...)
[move_group-5]     |  1343:     { _M_enable_shared_from_this_with(_M_ptr); }
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr_base.h", line 650, in _Sp_counted_ptr_inplace<std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |   648:       auto __guard = std::__allocate_guarded(__a2);
[move_group-5]     |   649:       _Sp_cp_type* __mem = __guard.get();
[move_group-5]     | > 650:       auto __pi = ::new (__mem)
[move_group-5]     |   651:         _Sp_cp_type(__a._M_a, std::forward<_Args>(__args)...);
[move_group-5]     |   652:       __guard = nullptr;
[move_group-5]     | Source "/usr/include/c++/11/bits/shared_ptr_base.h", line 519, in construct<moveit_cpp::MoveItCpp, std::shared_ptr<rclcpp::Node>&, moveit_cpp::MoveItCpp::Options&, const std::shared_ptr<tf2_ros::Buffer>&>
[move_group-5]     |   517:       // _GLIBCXX_RESOLVE_LIB_DEFECTS
[move_group-5]     |   518:       // 2070.  allocate_shared should use allocator_traits<A>::construct
[move_group-5]     | > 519:       allocator_traits<_Alloc>::construct(__a, _M_ptr(),
[move_group-5]     |   520:           std::forward<_Args>(__args)...); // might throw
[move_group-5]     |   521:     }
[move_group-5]     |   514:     {
[move_group-5]     |   515: #if __cplusplus <= 201703L
[move_group-5]     | > 516:       __a.construct(__p, std::forward<_Args>(__args)...);
[move_group-5]     |   517: #else
[move_group-5]     |   518:       std::construct_at(__p, std::forward<_Args>(__args)...);
[move_group-5]     | Source "/usr/include/c++/11/ext/new_allocator.h", line 162, in MoveItCpp
[move_group-5]     |   160:     construct(_Up* __p, _Args&&... __args)
[move_group-5]     |   161:     noexcept(std::is_nothrow_constructible<_Up, _Args...>::value)
[move_group-5]     | > 162:     { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); }
[move_group-5]     |   163: 
[move_group-5]     |   164:       template<typename _Up>
[move_group-5]       Source "/opt/ros/rolling/include/moveit_ros_planning/moveit/moveit_cpp/moveit_cpp.h", line 119, in main [0x5595f3e45528] 
[move_group-5]         116:   MoveItCpp(const rclcpp::Node::SharedPtr& node);
[move_group-5]         117:   [[deprecated("Passing tf2_ros::Buffer to MoveItCpp's constructor is deprecated")]] MoveItCpp(
[move_group-5]         118:       const rclcpp::Node::SharedPtr& node, const Options& options, const std::shared_ptr<tf2_ros::Buffer>& /* unused */)
[move_group-5]       > 119:     : MoveItCpp(node, options)
[move_group-5]         120:   {
[move_group-5]         121:   }
[move_group-5]         122:   MoveItCpp(const rclcpp::Node::SharedPtr& node, const Options& options);
[spawner-9] [INFO] [1686951147.656098256] [spawner_panda_hand_controller]: Configured and activated panda_hand_controller
[ros2_control_node-6] [INFO] [1686951147.669099933] [controller_manager]: Loading controller 'joint_state_broadcaster'
[move_group-5] #15   Source "./moveit_cpp/src/moveit_cpp.cpp", line 56, in MoveItCpp [0x7f804b8f7375]
[move_group-5] #14   Source "./moveit_cpp/src/moveit_cpp.cpp", line 108, in loadPlanningSceneMonitor [0x7f804b8f6b31]
[spawner-7] [INFO] [1686951147.704703122] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster
[ros2_control_node-6] [INFO] [1686951147.705949934] [controller_manager]: Configuring controller 'joint_state_broadcaster'
[ros2_control_node-6] [INFO] [1686951147.706039645] [joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published
[spawner-7] [INFO] [1686951147.726595118] [spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster
[move_group-5] #13   Source "./src/occupancy_map_monitor.cpp", line 329, in startMonitor [0x7f804ab2e0c4]
[move_group-5] #12   Source "./depth_image_octomap_updater/src/depth_image_octomap_updater.cpp", line 141, in start [0x7f80316369fc]
[move_group-5] #11   Object "/opt/ros/rolling/lib/x86_64-linux-gnu/libimage_transport.so", at 0x7f80315e3c04, in image_transport::ImageTransport::advertiseCamera(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, bool)
[move_group-5] #10   Object "/opt/ros/rolling/lib/x86_64-linux-gnu/libimage_transport.so", at 0x7f80315e3b3d, in image_transport::create_camera_publisher(rclcpp::Node*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rmw_qos_profile_s)
[move_group-5] #9    Object "/opt/ros/rolling/lib/x86_64-linux-gnu/libimage_transport.so", at 0x7f80315bf847, in image_transport::CameraPublisher::CameraPublisher(rclcpp::Node*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rmw_qos_profile_
s)
[move_group-5] #8    Object "/opt/ros/rolling/lib/x86_64-linux-gnu/libimage_transport.so", at 0x7f80315e36e4, in image_transport::create_publisher(rclcpp::Node*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rmw_qos_profile_s, rclcpp::Publi
sherOptionsWithAllocator<std::allocator<void> >)
[move_group-5] #7    Object "/opt/ros/rolling/lib/x86_64-linux-gnu/libimage_transport.so", at 0x7f80315a7e24, in 
[move_group-5] #6    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f804b265517, in __cxa_throw
[move_group-5] #5    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f804b2652b6, in std::terminate()
[move_group-5] #4    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f804b26524b, in 
[move_group-5] #3    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f804b259bbd, in 
[move_group-5] #2    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f804af957f2, in abort
[move_group-5] #1    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f804afaf475, in raise
[move_group-5] #0    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7f804b003a7c, in pthread_kill
[move_group-5] Aborted (Signal sent by tkill() 168342 0)
[INFO] [spawner-9]: process has finished cleanly [pid 168350]
[ERROR] [move_group-5]: process has died [pid 168342, exit code -6, cmd '/opt/ros/rolling/lib/moveit_ros_move_group/move_group --ros-args --log-level info --ros-args --params-file /tmp/launch_params_yjpav9q2 --params-file /tmp/launch_params_r5no5ujr'].
[INFO] [spawner-7]: process has finished cleanly [pid 168346]
[spawner-8] [INFO] [1686951149.655289496] [spawner_panda_arm_controller]: Waiting for '/controller_manager' node to exist
[ros2_control_node-6] [INFO] [1686951150.873120048] [controller_manager]: Loading controller 'panda_arm_controller'
[spawner-8] [INFO] [1686951150.906974376] [spawner_panda_arm_controller]: Loaded panda_arm_controller
[ros2_control_node-6] [INFO] [1686951150.909345040] [controller_manager]: Configuring controller 'panda_arm_controller'
[ros2_control_node-6] [INFO] [1686951150.909611903] [panda_arm_controller]: No specific joint names are used for command interfaces. Using 'joints' parameter.
[ros2_control_node-6] [INFO] [1686951150.909680154] [panda_arm_controller]: Command interfaces are [position] and state interfaces are [position velocity].
[ros2_control_node-6] [INFO] [1686951150.909708112] [panda_arm_controller]: Using 'splines' interpolation method.
[ros2_control_node-6] [INFO] [1686951150.912381869] [panda_arm_controller]: Action status changes will be monitored at 20.00 Hz.
[spawner-8] [INFO] [1686951150.936614554] [spawner_panda_arm_controller]: Configured and activated panda_arm_controller
[INFO] [spawner-8]: process has finished cleanly [pid 168348]
[rviz2-2] [INFO] [1686951152.640582192] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Failed to call service get_planning_scene, have you launched move_group or called psm.providePlanningSceneService()?
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
[static_transform_publisher-10] [INFO] [1686951167.845163400] [rclcpp]: signal_handler(signum=2)
[static_transform_publisher-3] [INFO] [1686951167.845166554] [rclcpp]: signal_handler(signum=2)
[robot_state_publisher-4] [INFO] [1686951167.845162936] [rclcpp]: signal_handler(signum=2)
[ros2-1] [INFO] [1686951167.845166570] [rclcpp]: signal_handler(signum=2)
[rviz2-2] [INFO] [1686951167.845166583] [rclcpp]: signal_handler(signum=2)
[ros2_control_node-6] [INFO] [1686951167.845204765] [rclcpp]: signal_handler(signum=2)
[static_transform_publisher-11] [INFO] [1686951167.845190129] [rclcpp]: signal_handler(signum=2)
[rviz2-2] [INFO] [1686951167.851459199] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Stopping planning scene monitor
[ERROR] [robot_state_publisher-4]: process has died [pid 168340, exit code -11, cmd '/opt/ros/rolling/lib/robot_state_publisher/robot_state_publisher --ros-args -r __node:=robot_state_publisher --params-file /tmp/launch_params_bskh5v1u'].
[INFO] [static_transform_publisher-3]: process has finished cleanly [pid 168338]
[INFO] [static_transform_publisher-10]: process has finished cleanly [pid 168352]
[INFO] [static_transform_publisher-11]: process has finished cleanly [pid 168354]
[ERROR] [rviz2-2]: process has died [pid 168336, exit code -11, cmd '/opt/ros/rolling/lib/rviz2/rviz2 -d /cws/install/moveit_resources_panda_moveit_config/share/moveit_resources_panda_moveit_config/launch/moveit.rviz --ros-args -r __node:=rviz2 --params-file /tmp/launch_params__7e8
yy_6 --params-file /tmp/launch_params_3afztatm --params-file /tmp/launch_params_ei6hbb0a --params-file /tmp/launch_params_bn3mtcrw --params-file /tmp/launch_params_mhr6w_r0'].
[INFO] [ros2_control_node-6]: process has finished cleanly [pid 168344]
[INFO] [ros2-1]: process has finished cleanly [pid 168334]

Beginning of failure seems these:

[move_group-5] [ERROR] [1686951147.587684238] [move_group]: Failed to load plugin image_transport/raw_pub, error string: could not create publisher: create_publisher() called for existing topic name rt/filtered_cloud with incompatible type sensor_msgs::msg::dds_::Image_, at ./src/publisher.cpp:145, at ./src/rcl/publisher.c:116
[move_group-5] 
[move_group-5] terminate called after throwing an instance of 'image_transport::Exception'
[move_group-5]   what():  No plugins found! Does `rospack plugins --attrib=plugin image_transport` find any packages?

Pkg does exist and is reachable by ros2:

# ros2 pkg xml image_transport
<package format="2">
  <name>image_transport</name>
  <version>4.3.0</version>
:

# ros2 pkg prefix image_transport
/opt/ros/rolling

For some reasons googling by Failed to load plugin image_transport/raw_pub, error string: could not create publisher: create_publisher() called for existing topic name rt with incompatible type sensor_msgs::msg::dds_::Image_, at ./src/publisher.cpp:145, at ./src/rcl/publisher.c:116 returns almost only from ros2/rmw_fastrtps repo e.g. https://github.com/ros2/rmw_fastrtps/issues/338. I don't think I've done anything to rmw.

So questions:

  • [x] Why does this error about image_transport occur?
  • [ ] Also, why "world "? What's the appended space?

130s avatar Jun 16 '23 20:06 130s

As ticketed https://github.com/ros-planning/moveit2_tutorials/issues/708, I found changes that are merged into moveit1's tutorial but not to moveit2's. Not sure if a culprit of the issue I'm seeing (i.e. no octomap shown) but I will test those as well.

130s avatar Jun 20 '23 19:06 130s

I tried https://github.com/RoboticsYY/moveit_tutorials/pull/1, which is referenced from answers.ros.org#389233 and seems to at least intend to ros2-ify the perception tutorial. But with it I still do not see octomap either.

Now with https://github.com/ros-planning/moveit2_tutorials/pull/700#commits-pushed-3f59fee I've stopped seeing image_transport::Exception https://github.com/ros-planning/moveit2_tutorials/pull/700#issuecomment-1595257186 But I still don't see octomap.

Log
[move_group-5] [INFO] [1687890839.820875202] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.0012917 seconds                                                                  
[move_group-5] [INFO] [1687890839.820920756] [moveit_robot_model.robot_model]: Loading robot model 'panda'...                                                                         
[move_group-5] [INFO] [1687890839.830857662] [moveit_kinematics_base.kinematics_base]: Joint weights for group 'panda_arm': 1 1 1 1 1 1 1                                             
[move_group-5] [INFO] [1687890839.854043209] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Publishing maintained planning scene on 'monitored_planning_scene'           
[move_group-5] [INFO] [1687890839.854191050] [moveit.ros_planning_interface.moveit_cpp]: Listening to 'joint_states' for joint states                                                 
[move_group-5] [INFO] [1687890839.855421972] [moveit_ros.current_state_monitor]: Listening to joint states on topic 'joint_states'                                                    
[move_group-5] [INFO] [1687890839.855763392] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/attached_collision_object' for attached collision objects     
[move_group-5] [INFO] [1687890839.855778439] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor                                              
[move_group-5] [INFO] [1687890839.856058445] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/planning_scene'                                               
[move_group-5] [INFO] [1687890839.856070849] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.                                                                                 
[move_group-5] [INFO] [1687890839.856342566] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'collision_object'                                              
[move_group-5] [INFO] [1687890839.856608494] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'planning_scene_world' for planning scene world geometry        
[move_group-5] [WARN] [1687890839.856867451] [moveit.ros.occupancy_map_monitor.middleware_handle]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead            
[move_group-5] [ERROR] [1687890839.856875566] [moveit.ros.occupancy_map_monitor.middleware_handle]: No 3D sensor plugin(s) defined for octomap updates                                
[move_group-5] [INFO] [1687890839.868855516] [moveit.ros_planning.planning_pipeline]: Using planning interface 'OMPL'                                                                 
[move_group-5] [INFO] [1687890839.870532147] [moveit_ros.add_time_optimal_parameterization]: Param 'ompl.path_tolerance' was not set. Using default value: 0.100000                   
[move_group-5] [INFO] [1687890839.870545286] [moveit_ros.add_time_optimal_parameterization]: Param 'ompl.resample_dt' was not set. Using default value: 0.100000                      
[move_group-5] [INFO] [1687890839.870547758] [moveit_ros.add_time_optimal_parameterization]: Param 'ompl.min_angle_change' was not set. Using default value: 0.001000                 
[move_group-5] [INFO] [1687890839.870559587] [moveit_ros.fix_workspace_bounds]: Param 'ompl.default_workspace_bounds' was not set. Using default value: 10.000000                     
[move_group-5] [INFO] [1687890839.870567956] [moveit_ros.fix_start_state_bounds]: Param 'ompl.start_state_max_bounds_error' was set to 0.100000                                       
[move_group-5] [INFO] [1687890839.870570468] [moveit_ros.fix_start_state_bounds]: Param 'ompl.start_state_max_dt' was not set. Using default value: 0.500000                          
[move_group-5] [INFO] [1687890839.870575686] [moveit_ros.fix_start_state_collision]: Param 'ompl.start_state_max_dt' was not set. Using default value: 0.500000
[move_group-5] [INFO] [1687890839.870577587] [moveit_ros.fix_start_state_collision]: Param 'ompl.jiggle_fraction' was not set. Using default value: 0.020000                          
[move_group-5] [INFO] [1687890839.870579848] [moveit_ros.fix_start_state_collision]: Param 'ompl.max_sampling_attempts' was not set. Using default value: 100                         
[move_group-5] [INFO] [1687890839.870585271] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Add Time Optimal Parameterization'                              
[move_group-5] [INFO] [1687890839.870589776] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Resolve constraint frames to robot links'                       
[move_group-5] [INFO] [1687890839.870591643] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Workspace Bounds'                                           
[move_group-5] [INFO] [1687890839.870593032] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Bounds'                                         
[move_group-5] [INFO] [1687890839.870594245] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State In Collision'                                   
[move_group-5] [INFO] [1687890839.870595573] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Path Constraints'                               
[move_group-5] [INFO] [1687890839.874797069] [moveit.ros_planning.planning_pipeline]: Using planning interface 'CHOMP'                                                                
[move_group-5] [INFO] [1687890839.875715021] [moveit_ros.add_time_optimal_parameterization]: Param 'chomp.path_tolerance' was not set. Using default value: 0.100000                  
[move_group-5] [INFO] [1687890839.875726425] [moveit_ros.add_time_optimal_parameterization]: Param 'chomp.resample_dt' was not set. Using default value: 0.100000                      
[move_group-5] [INFO] [1687890839.875729558] [moveit_ros.add_time_optimal_parameterization]: Param 'chomp.min_angle_change' was not set. Using default value: 0.001000                
[move_group-5] [INFO] [1687890839.875738001] [moveit_ros.fix_workspace_bounds]: Param 'chomp.default_workspace_bounds' was not set. Using default value: 10.000000                    
[move_group-5] [INFO] [1687890839.875745076] [moveit_ros.fix_start_state_bounds]: Param 'chomp.start_state_max_bounds_error' was set to 0.100000                                      
[move_group-5] [INFO] [1687890839.875747295] [moveit_ros.fix_start_state_bounds]: Param 'chomp.start_state_max_dt' was not set. Using default value: 0.500000                         
[move_group-5] [INFO] [1687890839.875752974] [moveit_ros.fix_start_state_collision]: Param 'chomp.start_state_max_dt' was not set. Using default value: 0.500000
[move_group-5] [INFO] [1687890839.875754909] [moveit_ros.fix_start_state_collision]: Param 'chomp.jiggle_fraction' was not set. Using default value: 0.020000                         
[move_group-5] [INFO] [1687890839.875756632] [moveit_ros.fix_start_state_collision]: Param 'chomp.max_sampling_attempts' was not set. Using default value: 100

UPDATE: Now, octomap finally appears on RViz. Robot doesn't start moving yet.

2023-06-28_02-26-17_moveit2_perception_octomap

  • Why does this error about image_transport occur?

I think because moveit was configured to activate sensor_plugin: occupancy_map_monitor/DepthImageOctomapUpdater (in sensors_3d.yaml) but there was no topics being published that are of subscribable type? I'm not sure. I just resolved this issue by disabling such sensor in sensors_3d.yaml.

130s avatar Jun 27 '23 18:06 130s

CI html proofer job? is failing.

The path /doc/tutorials/quickstart_in_rviz/quickstart_in_rviz_tutorial is not in this PR so likely unrelated?

https://github.com/ros-planning/moveit2_tutorials/actions/runs/5404568701/jobs/9818898321?pr=700

:
copying images... [ 99%] doc/tutorials/your_first_project/rviz_1.png
copying images... [100%] doc/tutorials/your_first_project/rviz_2.png

copying static files... done
copying extra files... done
dumping search index in English (code: en)... done
dumping object inventory... done
build succeeded.

The HTML pages are in build/html.
Running ["ScriptCheck", "LinkCheck", "ImageCheck", "HtmlCheck"] on ["./build"] on *.html... 


Checking 231 external links...
- ./build/html/doc/examples/perception_pipeline/perception_pipeline_tutorial.html
  *  internally linking to /doc/tutorials/quickstart_in_rviz/quickstart_in_rviz_tutorial, which does not exist (line 292)
     <a class="reference external" href="/doc/tutorials/quickstart_in_rviz/quickstart_in_rviz_tutorial">MoveIt Quickstart in RViz</a>

HTML-Proofer found 1 failure!
Ran on 91 files!


Error: Process completed with exit code 1.

130s avatar Jun 28 '23 18:06 130s

@sjahr I see you're active on this repo recently. Would you mind reviewing, or assigning appropriate reviewers?

130s avatar Jul 21 '23 10:07 130s

@130s Thanks for your work here! I'll take a look at it next week

sjahr avatar Jul 21 '23 14:07 sjahr

First of all, thank you very much for attempting to ROS2-ify this tutorial page! I do not yet have a rolling environment where I can test this tutorial completely, but I have commented on some things that I could find by just reading the first half related to configuration. These are some points I found a little confusing myself.

Okay so I tried this out in my humble workspace. I was indeed able to visualize the point cloud, and even plan around the obstacles it inserts, but this was not entirely straightforward. I had to make a couple of tweaks (ex: remove world->panda_link0 static tf from launch xml because its already published, and run the rosbag play separately after starting up everything else otherwise rviz would just crash).

My biggest concern is the following messages :

[move_group-4] [ERROR] [1695826256.398988365] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 2
[move_group-4] [ERROR] [1695826256.399085964] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 3
[move_group-4] [ERROR] [1695826256.399060125] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 4
[move_group-4] [ERROR] [1695826256.399073164] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 5

which goes up to handle 11.

We can see it comes from here and here, but I am not sure what exactly this complains about. Missing TF for robot links? I can see in TF that robot frames are well published. I increased the robot_description_planning.shape_transform_cache_lookup_wait_time to 2.0 just to be generous as well.

@130s Any thoughts?

Tejas-Shastha avatar Sep 27 '23 15:09 Tejas-Shastha

Thanks for the review and testing! @Tejas-Shastha It's been a while since I made the PR and I still haven't fully recalled what I did, but I updated the PR. ATM I have not just yet tested myself the latest changes.

this was not entirely straightforward. I had to make a couple of tweaks (ex: remove world->panda_link0 static tf from launch xml because its already published,

Ok...Not sure why it fails on your env, but I removed that static publisher.

run the rosbag play separately after starting up everything else otherwise rviz would just crash).

I'm unsure what's going on. If you can spot particular error output, would you mind posting (Can that look similar to https://github.com/ros-planning/moveit_resources/issues/170?)?

My biggest concern is the following messages :

[move_group-4] [ERROR] [1695826256.398988365] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 2
[move_group-4] [ERROR] [1695826256.399085964] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 3
[move_group-4] [ERROR] [1695826256.399060125] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 4
[move_group-4] [ERROR] [1695826256.399073164] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 5

Hm, no idea yet. An easy thing to say is that this is tutorial, so we can ticket it and move forward?

130s avatar Sep 27 '23 18:09 130s

this was not entirely straightforward. I had to make a couple of tweaks (ex: remove world->panda_link0 static tf from launch xml because its already published,

Ok...Not sure why it fails on your env, but I removed that static publisher.

I think the entity responsible for publishing this TF changes somewhere between all the configs. I would keep whatever works for the instructions of the tutorial (I did not test the tutorial environment, rather a custom environment of my own, so I am not sure what is correct either). Apologies if this created too much confusion!

I also found out that the error I mentioned above:


[move_group-4] [ERROR] [1695826256.398988365] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 2
[move_group-4] [ERROR] [1695826256.399085964] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 3
[move_group-4] [ERROR] [1695826256.399060125] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 4
[move_group-4] [ERROR] [1695826256.399073164] [moveit.ros.perception.shape_mask]: Missing transform for shape mesh with handle 5

is caused by TF issues. I guess that since the bag contains only 1 msg and it is being relaunched at a pretty high rate, it messes up TF? I recorded my own bag and tried it and got the same results. However, on a real robot with a live feed from an Intel realsense D435, I did not have this issue at all (except once when the camera dropped some frames I think, which is what led me to conclude this is a TF issue). So, as you suggested, maybe it is sufficient to declare this phenomenon as a warning and move on? A separate issue can be raised to investigate this better.

Overall, I tested the configuration suggestions you made with a real Panda FER1 and it works very well! (Again, my environment is somewhat different from what is prescribed in the tutorial). I think this PR adds sufficient value that it can be merged, I'm sure it would help many moveit users!

P.S. : I am apparently unable to change my review from "Changes requested" for some reason. Please consider this as approved.

Tejas-Shastha avatar Oct 16 '23 09:10 Tejas-Shastha

closes #708

tylerjw avatar Dec 01 '23 16:12 tylerjw

@henningkayser Could you please review or push for a review of this PR?

Tejas-Shastha avatar Apr 16 '24 11:04 Tejas-Shastha

Closing as the similar work (that started after this PR) got merged and addressed the same issue https://github.com/moveit/moveit2_tutorials/issues/25. See more in https://github.com/moveit/moveit2_tutorials/pull/906#issuecomment-2299660670

130s avatar Aug 20 '24 20:08 130s