diff --git a/.docker/Dockerfile b/.docker/Dockerfile index e1362f930a..81e793544c 100644 --- a/.docker/Dockerfile +++ b/.docker/Dockerfile @@ -61,7 +61,7 @@ RUN --mount=type=cache,target=/root/.ccache/ \ # Enable ccache . "/opt/ros/${ROS_DISTRO}/setup.sh" &&\ . "install/setup.sh" &&\ - sudo apt update && rosdep install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y && \ + sudo apt update && rosdep update && rosdep install -r --from-paths src --ignore-src --rosdistro $ROS_DISTRO -y && \ colcon build \ --cmake-args -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ -DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \ diff --git a/.github/upstream.repos b/.github/upstream.repos index f09982304c..128d29d3db 100644 --- a/.github/upstream.repos +++ b/.github/upstream.repos @@ -7,10 +7,6 @@ repositories: type: git url: https://github.com/moveit/moveit_visual_tools version: ros2 - rosparam_shortcuts: - type: git - url: https://github.com/PickNikRobotics/rosparam_shortcuts - version: ros2 rviz_visual_tools: type: git url: https://github.com/PickNikRobotics/rviz_visual_tools.git @@ -30,3 +26,7 @@ repositories: type: git url: https://github.com/tylerjw/serial.git version: ros2 + picknik_controllers: + type: git + url: https://github.com/PickNikRobotics/picknik_controllers.git + version: main diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e8db9daea9..4ad001b68d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -23,49 +23,57 @@ jobs: env: - IMAGE: rolling-source - IMAGE: rolling-release + - IMAGE: lyrical-release + - IMAGE: jazzy-release env: DOCKER_IMAGE: moveit/moveit2:${{ matrix.env.IMAGE }} + # Use /root/ws_moveit/install as UNDERLAY in *-source images + UNDERLAY: ${{ endsWith(matrix.env.IMAGE, '-source') && '/root/ws_moveit/install' || '' }} UPSTREAM_WORKSPACE: .github/upstream.repos + BEFORE_SETUP_UPSTREAM_WORKSPACE: git config --global --add safe.directory "*" AFTER_SETUP_UPSTREAM_WORKSPACE: vcs pull $BASEDIR/upstream_ws/src TARGET_CMAKE_ARGS: -DCMAKE_BUILD_TYPE=Release CCACHE_DIR: ${{ github.workspace }}/.ccache BASEDIR: ${{ github.workspace }}/.work - CACHE_PREFIX: ${{ matrix.env.IMAGE }} name: ${{ matrix.env.IMAGE }} runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 - name: cache upstream_ws - uses: actions/cache@v4 + uses: rhaschke/cache@main with: - save-always: true path: ${{ env.BASEDIR }}/upstream_ws - key: upstream_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('.github/upstream.repos') }}-${{ github.run_id }} - restore-keys: | - upstream_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('.github/upstream.repos') }} + key: ${{ env.CACHE_PREFIX }}-${{ github.run_id }} + restore-keys: ${{ env.CACHE_PREFIX }} + env: + GHA_CACHE_SAVE: always + CACHE_PREFIX: upstream_ws-${{ matrix.env.IMAGE }}-${{ hashFiles('.github/upstream.repos') }} # The target directory cache doesn't include the source directory because # that comes from the checkout. See "prepare target_ws for cache" task below - name: cache target_ws - uses: actions/cache@v4 + uses: rhaschke/cache@main with: - save-always: true path: ${{ env.BASEDIR }}/target_ws - key: target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }}-${{ github.run_id }} - restore-keys: | - target_ws-${{ env.CACHE_PREFIX }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }} + key: ${{ env.CACHE_PREFIX }}-${{ github.run_id }} + restore-keys: ${{ env.CACHE_PREFIX }} + env: + GHA_CACHE_SAVE: always + CACHE_PREFIX: target_ws-${{ matrix.env.IMAGE }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }} - name: cache ccache - uses: actions/cache@v4 + uses: rhaschke/cache@main with: - save-always: true path: ${{ env.CCACHE_DIR }} - key: ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }} + key: ${{ env.CACHE_PREFIX }}-${{ github.sha }}-${{ github.run_id }} restore-keys: | - ccache-${{ env.CACHE_PREFIX }}-${{ github.sha }} - ccache-${{ env.CACHE_PREFIX }} + ${{ env.CACHE_PREFIX }}-${{ github.sha }} + ${{ env.CACHE_PREFIX }} + env: + GHA_CACHE_SAVE: always + CACHE_PREFIX: ccache-${{ matrix.env.IMAGE }}-${{ hashFiles('**/CMakeLists.txt', '**/package.xml') }} - name: industrial_ci uses: ros-industrial/industrial_ci@master env: ${{ matrix.env }} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 96777f2236..c9d88a0a4b 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -6,7 +6,6 @@ on: push: branches: - main - - humble permissions: contents: read @@ -19,7 +18,7 @@ jobs: container: image: moveit/moveit2:rolling-source steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Install Python dependencies shell: bash @@ -59,7 +58,7 @@ jobs: container: image: ${{ matrix.container }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 - name: Install Python dependencies shell: bash @@ -85,7 +84,7 @@ jobs: run: tar cvzf artifact.tar.gz --directory=build/html . - name: Upload HTML Artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: '${{ matrix.branch }}_html_artifacts' path: artifact.tar.gz @@ -94,15 +93,10 @@ jobs: runs-on: ubuntu-latest needs: upload_site_artifacts steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v7 with: fetch-depth: 0 - - uses: actions/setup-python@v5 - with: - python-version: '3.10' - cache: 'pip' - - name: Install Python dependencies run: | python -m pip install --upgrade pip @@ -117,7 +111,7 @@ jobs: # TODO (peterdavidfagan): don't hardcode branches for downloads - name: Download Rolling Artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: main_html_artifacts path: . @@ -129,7 +123,7 @@ jobs: rm artifact.tar.gz - name: Download Humble Artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: humble_html_artifacts path: . @@ -151,7 +145,7 @@ jobs: cp -rf python_api/ build/html/main/doc/api/ # restore artifact html - name: Upload pages artifact - uses: actions/upload-pages-artifact@v3 + uses: actions/upload-pages-artifact@v5 if: github.repository_owner == 'moveit' with: path: build/html @@ -166,4 +160,4 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v4 + uses: actions/deploy-pages@v5 diff --git a/.github/workflows/docker-images.yml b/.github/workflows/docker-images.yml index ad329222dd..f365eb488f 100644 --- a/.github/workflows/docker-images.yml +++ b/.github/workflows/docker-images.yml @@ -31,7 +31,7 @@ jobs: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build Tutorial Image - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: file: .docker/Dockerfile build-args: | diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 85c78ae86a..5adddeb4af 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Delete Untagged Images if: (github.event_name == 'schedule') - uses: actions/github-script@v7 + uses: actions/github-script@v9 with: github-token: ${{ secrets.DELETE_PACKAGES_TOKEN }} script: | diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index ab27e81765..95b7e12ba0 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -9,7 +9,6 @@ on: push: branches: - main - - humble permissions: contents: read # to fetch code (actions/checkout) @@ -17,12 +16,15 @@ permissions: jobs: pre-commit: name: Format - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.10' - - name: Install clang-format-14 - run: sudo apt-get install clang-format-14 + - uses: actions/checkout@v7 + - name: Install clang-format + run: sudo apt-get install clang-format - uses: pre-commit/action@v3.0.1 + id: precommit + - name: Upload pre-commit changes + if: failure() && steps.precommit.outcome == 'failure' + uses: rhaschke/upload-git-patch-action@main + with: + name: pre-commit diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 566d5c8132..5106399558 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,7 +15,7 @@ repos: # Standard hooks - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v5.0.0 + rev: v6.0.0 hooks: - id: check-added-large-files - id: check-case-conflict @@ -28,7 +28,7 @@ repos: - id: trailing-whitespace - repo: https://github.com/psf/black - rev: 24.10.0 + rev: 26.5.1 hooks: - id: black @@ -43,13 +43,13 @@ repos: - id: clang-format name: clang-format description: Format files with ClangFormat. - entry: clang-format-14 + entry: clang-format language: system files: \.(c|cc|cxx|cpp|frag|glsl|h|hpp|hxx|ih|ispc|ipp|java|js|m|proto|vert)$ args: ['-fallback-style=none', '-i'] - repo: https://github.com/codespell-project/codespell - rev: v2.4.0 + rev: v2.4.3 hooks: - id: codespell args: ['--write-changes', '--ignore-words=.codespell_words'] diff --git a/CMakeLists.txt b/CMakeLists.txt index 5ee2731168..23484f2ca2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,33 +9,24 @@ set(THIS_PACKAGE_INCLUDE_DIRS doc/interactivity/include ) -set(THIS_PACKAGE_INCLUDE_DEPENDS - ament_cmake - Boost - control_msgs - Eigen3 - interactive_markers - moveit_core - moveit_msgs - moveit_ros_planning - moveit_ros_planning_interface - moveit_ros_trajectory_cache - moveit_servo - moveit_task_constructor_core - moveit_visual_tools - pluginlib - rclcpp - rclcpp_action - rviz_visual_tools - tf2_geometry_msgs - tf2_geometry_msgs - tf2_ros - warehouse_ros_sqlite -) - -foreach(Dependency IN ITEMS ${THIS_PACKAGE_INCLUDE_DEPENDS}) - find_package(${Dependency} REQUIRED) -endforeach() +find_package(ament_cmake) +find_package(Boost CONFIG REQUIRED) +find_package(control_msgs) +find_package(Eigen3) +find_package(interactive_markers) +find_package(moveit_core) +find_package(moveit_ros_planning) +find_package(moveit_ros_planning_interface) +find_package(moveit_ros_trajectory_cache) +find_package(moveit_servo) +find_package(moveit_task_constructor_core) +find_package(moveit_visual_tools) +find_package(pluginlib) +find_package(rclcpp) +find_package(rclcpp_action) +find_package(rviz_visual_tools) +find_package(tf2_ros) +find_package(warehouse_ros_sqlite) include_directories(${THIS_PACKAGE_INCLUDE_DIRS}) @@ -77,9 +68,6 @@ add_subdirectory(doc/tutorials/pick_and_place_with_moveit_task_constructor) add_subdirectory(doc/tutorials/quickstart_in_rviz) add_subdirectory(doc/how_to_guides/pick_ik) -ament_export_dependencies( - ${THIS_PACKAGE_INCLUDE_DEPENDS} -) ament_export_include_directories(include) diff --git a/_scripts/tutorialformatter.py b/_scripts/tutorialformatter.py index 97e4ba7b8a..e10c328ada 100644 --- a/_scripts/tutorialformatter.py +++ b/_scripts/tutorialformatter.py @@ -1,69 +1,69 @@ """ - tutorialformatter - =========================== - - This extension provides a directive to include a source code file - in a document, but with certain comments from the file formatted - as regular document text. This allows code for a tutorial to look like: - - /// BEGIN_TUTORIAL - /// This next line adds one. - i = i + 1; - /// Then we need to double it. - i = i * 2; - /// END_TUTORIAL - - And have it formatted as - - This next line adds one.:: - i = i + 1; - - Then we need to double it.:: - i = i * 2; - - The special-looking comment character sequence at the start of - each text line can be anything not starting or ending with - whitespace. tutorialformatter starts by scanning the file for the - string BEGIN_TUTORIAL. When it finds it, it takes all the - characters before BEGIN_TUTORIAL on that line, strips whitespace - from the left, and uses that as the text marker. So this would - also be fine: - - #My Tutorial# BEGIN_TUTORIAL - #My Tutorial# This next line adds one. - i = i + 1 - #My Tutorial# Then we need to double it. - i = i * 2 - #My Tutorial# END_TUTORIAL - - Sometimes the order that makes sense in the tutorial is not - compatible with the computer language of the code, like when a - callback function in C++ is defined outside of the main tutorial - code. To support this, you can use the tags BEGIN_SUB_TUTORIAL, - END_SUB_TUTORIAL, and CALL_SUB_TUTORIAL. They look like this: - - # BEGIN_SUB_TUTORIAL callbackFunction - def callback(): - print("in callback") - # END_SUB_TUTORIAL - - # BEGIN_TUTORIAL - # Here we call a special callback: - callback() - # which is defined as: - # CALL_SUB_TUTORIAL callbackFunction - # and then we move on to the next topic. - - Both the BEGIN_SUB_TUTORIAL and CALL_SUB_TUTORIAL tags take an - argument, which is the name of the "sub-tutorial". That name does - not need to correspond to anything in the code. Sub-tutorials - cannot be nested, and they only work within a single source file - processed by tutorialformatter. They have no outside meaning. - The implementation simply slices out sub-tutorials from the input - lines and copies them into the output lines where-ever the - corresponding "call" tags are found. - - .. moduleauthor:: Dave Hershberger +tutorialformatter +=========================== + +This extension provides a directive to include a source code file +in a document, but with certain comments from the file formatted +as regular document text. This allows code for a tutorial to look like: + + /// BEGIN_TUTORIAL + /// This next line adds one. + i = i + 1; + /// Then we need to double it. + i = i * 2; + /// END_TUTORIAL + +And have it formatted as + +This next line adds one.:: + i = i + 1; + +Then we need to double it.:: + i = i * 2; + +The special-looking comment character sequence at the start of +each text line can be anything not starting or ending with +whitespace. tutorialformatter starts by scanning the file for the +string BEGIN_TUTORIAL. When it finds it, it takes all the +characters before BEGIN_TUTORIAL on that line, strips whitespace +from the left, and uses that as the text marker. So this would +also be fine: + + #My Tutorial# BEGIN_TUTORIAL + #My Tutorial# This next line adds one. + i = i + 1 + #My Tutorial# Then we need to double it. + i = i * 2 + #My Tutorial# END_TUTORIAL + +Sometimes the order that makes sense in the tutorial is not +compatible with the computer language of the code, like when a +callback function in C++ is defined outside of the main tutorial +code. To support this, you can use the tags BEGIN_SUB_TUTORIAL, +END_SUB_TUTORIAL, and CALL_SUB_TUTORIAL. They look like this: + + # BEGIN_SUB_TUTORIAL callbackFunction + def callback(): + print("in callback") + # END_SUB_TUTORIAL + + # BEGIN_TUTORIAL + # Here we call a special callback: + callback() + # which is defined as: + # CALL_SUB_TUTORIAL callbackFunction + # and then we move on to the next topic. + +Both the BEGIN_SUB_TUTORIAL and CALL_SUB_TUTORIAL tags take an +argument, which is the name of the "sub-tutorial". That name does +not need to correspond to anything in the code. Sub-tutorials +cannot be nested, and they only work within a single source file +processed by tutorialformatter. They have no outside meaning. +The implementation simply slices out sub-tutorials from the input +lines and copies them into the output lines where-ever the +corresponding "call" tags are found. + +.. moduleauthor:: Dave Hershberger """ # 0.1.0: First version. diff --git a/doc/examples/bullet_collision_checker/CMakeLists.txt b/doc/examples/bullet_collision_checker/CMakeLists.txt index 0b6832d299..0ea33beb4f 100644 --- a/doc/examples/bullet_collision_checker/CMakeLists.txt +++ b/doc/examples/bullet_collision_checker/CMakeLists.txt @@ -4,10 +4,4 @@ add_executable(bullet_collision_checker_tutorial target_link_libraries(bullet_collision_checker_tutorial ${interactive_markers_LIBRARIES} interactivity_utils - ${catkin_LIBRARIES} ${Boost_LIBRARIES}) - -install(TARGETS bullet_collision_checker_tutorial - DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) - -install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) diff --git a/doc/examples/collision_environments/CMakeLists.txt b/doc/examples/collision_environments/CMakeLists.txt index b92c24adce..09b3df00cc 100644 --- a/doc/examples/collision_environments/CMakeLists.txt +++ b/doc/examples/collision_environments/CMakeLists.txt @@ -2,8 +2,9 @@ add_executable(collision_scene_example src/collision_scene_example.cpp) target_include_directories(collision_scene_example PUBLIC include) -ament_target_dependencies(collision_scene_example - ${THIS_PACKAGE_INCLUDE_DEPENDS} Boost) +target_link_libraries(collision_scene_example PUBLIC + moveit_ros_planning_interface::moveit_move_group_interface +) install(TARGETS collision_scene_example ARCHIVE DESTINATION lib diff --git a/doc/examples/creating_moveit_plugins/lerp_motion_planner/CMakeLists.txt b/doc/examples/creating_moveit_plugins/lerp_motion_planner/CMakeLists.txt index 9a274b9d25..39c076a903 100644 --- a/doc/examples/creating_moveit_plugins/lerp_motion_planner/CMakeLists.txt +++ b/doc/examples/creating_moveit_plugins/lerp_motion_planner/CMakeLists.txt @@ -1,13 +1,11 @@ include_directories(include) include_directories( SYSTEM - ${catkin_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ) add_executable(lerp_example src/lerp_example.cpp) target_link_libraries(lerp_example - ${catkin_LIBRARIES} ${Boost_LIBRARIES} ) @@ -17,39 +15,8 @@ add_library(moveit_lerp_planner_plugin src/lerp_interface.cpp src/lerp_planning_context.cpp) set_target_properties(moveit_lerp_planner_plugin PROPERTIES VERSION "${${PROJECT_NAME}_VERSION}") -target_link_libraries(moveit_lerp_planner_plugin ${catkin_LIBRARIES} ${Boost_LIBRARIES}) +target_link_libraries(moveit_lerp_planner_plugin ${Boost_LIBRARIES}) ############# ## Install ## ############# - -# Mark executables and/or libraries for installation -install( - TARGETS - moveit_lerp_planner_plugin - ARCHIVE DESTINATION - ${CATKIN_PACKAGE_LIB_DESTINATION} - LIBRARY DESTINATION - ${CATKIN_PACKAGE_LIB_DESTINATION} - RUNTIME DESTINATION - ${CATKIN_PACKAGE_BIN_DESTINATION} -) - -# Mark cpp header files for installation -install( - DIRECTORY - include - DESTINATION - ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -) - -# Mark roslaunch files for installation -install( - DIRECTORY - launch - DESTINATION - ${CATKIN_PACKAGE_SHARE_DESTINATION} -) -#catkin_lint ignore uninstalled_plugin -install(FILES lerp_interface_plugin_description.xml - DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/doc/creating_moveit_plugins/lerp_motion_planner/) diff --git a/doc/examples/examples.rst b/doc/examples/examples.rst index 7f68fe8b2c..334317cde1 100644 --- a/doc/examples/examples.rst +++ b/doc/examples/examples.rst @@ -51,7 +51,7 @@ The MoveIt Python API binds a subset of the C++ API. The Python API is useful fo Integration with a New Robot ---------------------------- -Before attempting to integrate a new robot with MoveIt 2, check whether your robot has already been set up (see the `list of robots running MoveIt `_). Otherwise, follow the tutorials in this section to integrate your robot with MoveIt. +Before attempting to integrate a new robot with MoveIt 2, check whether your robot has already been set up (see the `list of robots running MoveIt `_). Otherwise, follow the tutorials in this section to integrate your robot with MoveIt. .. toctree:: :maxdepth: 1 diff --git a/doc/examples/interactivity/CMakeLists.txt b/doc/examples/interactivity/CMakeLists.txt index 06542c775a..f143f20bad 100644 --- a/doc/examples/interactivity/CMakeLists.txt +++ b/doc/examples/interactivity/CMakeLists.txt @@ -6,25 +6,6 @@ add_library(${INTERACTIVITY_LIB_NAME} src/pose_string.cpp ) -# add_executable(interactivity_tutorial - # src/interactivity_tutorial.cpp - # src/interactive_robot.cpp - # src/imarker.cpp - # src/pose_string.cpp -# ) -# target_link_libraries(interactivity_tutorial - # ${catkin_LIBRARIES} - # ${Boost_LIBRARIES} - # ${interactive_markers_LIBRARIES} -# ) -# -# add_executable(attached_body_tutorial - # src/attached_body_tutorial.cpp - # src/interactive_robot.cpp - # src/imarker.cpp - # src/pose_string.cpp -# ) - target_link_libraries( ${INTERACTIVITY_LIB_NAME} ${catkin_LIBRARIES} diff --git a/doc/examples/motion_planning_api/CMakeLists.txt b/doc/examples/motion_planning_api/CMakeLists.txt index 602e0aef03..9357b1fe50 100644 --- a/doc/examples/motion_planning_api/CMakeLists.txt +++ b/doc/examples/motion_planning_api/CMakeLists.txt @@ -1,9 +1,17 @@ +find_package(graph_msgs REQUIRED) +find_package(moveit_msgs REQUIRED) +find_package(moveit_ros_planning REQUIRED) +find_package(moveit_visual_tools REQUIRED) +find_package(rviz_visual_tools REQUIRED) add_executable(motion_planning_api_tutorial src/motion_planning_api_tutorial.cpp) target_include_directories(motion_planning_api_tutorial PUBLIC include) -ament_target_dependencies(motion_planning_api_tutorial - ${THIS_PACKAGE_INCLUDE_DEPENDS} Boost) +target_link_libraries(motion_planning_api_tutorial PUBLIC +${graph_msgs_TARGETS} +pluginlib::pluginlib moveit_ros_planning::moveit_robot_model_loader moveit_visual_tools::moveit_visual_tools +moveit_ros_planning_interface::moveit_move_group_interface +) install(TARGETS motion_planning_api_tutorial DESTINATION lib/${PROJECT_NAME} diff --git a/doc/examples/motion_planning_pipeline/CMakeLists.txt b/doc/examples/motion_planning_pipeline/CMakeLists.txt index cf944450f6..a60b5c3907 100644 --- a/doc/examples/motion_planning_pipeline/CMakeLists.txt +++ b/doc/examples/motion_planning_pipeline/CMakeLists.txt @@ -1,9 +1,11 @@ +find_package(moveit_visual_tools REQUIRED) + add_executable(motion_planning_pipeline_tutorial - src/motion_planning_pipeline_tutorial.cpp) -target_include_directories(motion_planning_pipeline_tutorial - PUBLIC include) -ament_target_dependencies(motion_planning_pipeline_tutorial - ${THIS_PACKAGE_INCLUDE_DEPENDS}) + src/motion_planning_pipeline_tutorial.cpp) +target_include_directories(motion_planning_pipeline_tutorial PUBLIC include) +target_link_libraries(motion_planning_pipeline_tutorial PUBLIC + moveit_ros_planning::moveit_planning_pipeline + moveit_visual_tools::moveit_visual_tools) install(TARGETS motion_planning_pipeline_tutorial DESTINATION lib/${PROJECT_NAME} diff --git a/doc/examples/motion_planning_python_api/CMakeLists.txt b/doc/examples/motion_planning_python_api/CMakeLists.txt index c36feb47a9..6f3f795b0a 100644 --- a/doc/examples/motion_planning_python_api/CMakeLists.txt +++ b/doc/examples/motion_planning_python_api/CMakeLists.txt @@ -1,3 +1,7 @@ +find_package(graph_msgs REQUIRED) +find_package(moveit_visual_tools REQUIRED) +find_package(rviz_visual_tools REQUIRED) + install(PROGRAMS scripts/motion_planning_python_api_tutorial.py scripts/motion_planning_python_api_planning_scene.py diff --git a/doc/examples/move_group_interface/CMakeLists.txt b/doc/examples/move_group_interface/CMakeLists.txt index b4e2c9128f..b6f392bca2 100644 --- a/doc/examples/move_group_interface/CMakeLists.txt +++ b/doc/examples/move_group_interface/CMakeLists.txt @@ -1,9 +1,13 @@ +find_package(graph_msgs REQUIRED) +find_package(moveit_visual_tools REQUIRED) +find_package(rviz_visual_tools REQUIRED) + add_executable(move_group_interface_tutorial src/move_group_interface_tutorial.cpp) target_include_directories(move_group_interface_tutorial PUBLIC include) -ament_target_dependencies(move_group_interface_tutorial - ${THIS_PACKAGE_INCLUDE_DEPENDS} Boost) +target_link_libraries(move_group_interface_tutorial PUBLIC moveit_ros_move_group::moveit_move_group_capabilities_base +moveit_ros_planning_interface::moveit_move_group_interface moveit_visual_tools::moveit_visual_tools) install(TARGETS move_group_interface_tutorial DESTINATION lib/${PROJECT_NAME} diff --git a/doc/examples/moveit_cpp/CMakeLists.txt b/doc/examples/moveit_cpp/CMakeLists.txt index 7f317918eb..7bea158739 100644 --- a/doc/examples/moveit_cpp/CMakeLists.txt +++ b/doc/examples/moveit_cpp/CMakeLists.txt @@ -1,6 +1,10 @@ +find_package(moveit_visual_tools REQUIRED) + add_executable(moveit_cpp_tutorial src/moveit_cpp_tutorial.cpp) target_include_directories(moveit_cpp_tutorial PUBLIC include) -ament_target_dependencies(moveit_cpp_tutorial ${THIS_PACKAGE_INCLUDE_DEPENDS} Boost) +target_link_libraries(moveit_cpp_tutorial PUBLIC + moveit_ros_planning::moveit_cpp + moveit_visual_tools::moveit_visual_tools) install(TARGETS moveit_cpp_tutorial DESTINATION lib/${PROJECT_NAME} diff --git a/doc/examples/ompl_interface/ompl_interface_tutorial.rst b/doc/examples/ompl_interface/ompl_interface_tutorial.rst index 0a39044da5..6eddbd80e7 100644 --- a/doc/examples/ompl_interface/ompl_interface_tutorial.rst +++ b/doc/examples/ompl_interface/ompl_interface_tutorial.rst @@ -133,7 +133,7 @@ You can adjust the amount of time MoveIt spends on smoothing by increasing the p Although not currently exposed at the top levels of MoveIt (TODO), more smoothing can be accomplished by setting the simplification duration to 0 (unlimited) in ``model_based_planning_context.cpp``. This will enable OMPL's ``simplifyMax()`` function. -Besides the internal OMPL smoothers, recent efforts have been made to do post-proccessing with STOMP/CHOMP. See `this blog post `_. +Besides the internal OMPL smoothers, post-processing can also be done with STOMP or CHOMP (see :doc:`CHOMP Planner ` and :doc:`STOMP Planner `). Persistent Roadmaps ------------------- diff --git a/doc/examples/planning_adapters/planning_adapters_tutorial.rst b/doc/examples/planning_adapters/planning_adapters_tutorial.rst index 6155ba1f6d..ca88d4de32 100644 --- a/doc/examples/planning_adapters/planning_adapters_tutorial.rst +++ b/doc/examples/planning_adapters/planning_adapters_tutorial.rst @@ -26,7 +26,7 @@ As you add and remove packages from your workspace you will need to clean your w cd ~/ws_moveit/src catkin clean -Now follow the instructions on the MoveIt homepage for `installing MoveIt Melodic from source `_. Note that you can skip the **Prerequisites** section since you should already have a Catkin workspace. +Now follow the instructions on the MoveIt homepage for `installing MoveIt from source `_. Note that you can skip the **Prerequisites** section since you should already have a Catkin workspace. Re-source the setup files: :: diff --git a/doc/examples/planning_scene/CMakeLists.txt b/doc/examples/planning_scene/CMakeLists.txt index 33cda665fa..1b0a6f7e7a 100644 --- a/doc/examples/planning_scene/CMakeLists.txt +++ b/doc/examples/planning_scene/CMakeLists.txt @@ -2,8 +2,7 @@ add_executable(planning_scene_tutorial src/planning_scene_tutorial.cpp) target_include_directories(planning_scene_tutorial PUBLIC include) -ament_target_dependencies(planning_scene_tutorial - ${THIS_PACKAGE_INCLUDE_DEPENDS} Boost) +target_link_libraries(planning_scene_tutorial PUBLIC rclcpp::rclcpp moveit_ros_planning::moveit_robot_model_loader) install(TARGETS planning_scene_tutorial DESTINATION lib/${PROJECT_NAME} diff --git a/doc/examples/planning_scene_ros_api/CMakeLists.txt b/doc/examples/planning_scene_ros_api/CMakeLists.txt index bcaee07178..941fcc7f56 100644 --- a/doc/examples/planning_scene_ros_api/CMakeLists.txt +++ b/doc/examples/planning_scene_ros_api/CMakeLists.txt @@ -1,9 +1,14 @@ +find_package(graph_msgs REQUIRED) +find_package(moveit_visual_tools REQUIRED) +find_package(rviz_visual_tools REQUIRED) + add_executable(planning_scene_ros_api_tutorial src/planning_scene_ros_api_tutorial.cpp) target_include_directories(planning_scene_ros_api_tutorial PUBLIC include) -ament_target_dependencies(planning_scene_ros_api_tutorial - ${THIS_PACKAGE_INCLUDE_DEPENDS} Boost) + +target_link_libraries(planning_scene_ros_api_tutorial PRIVATE rclcpp::rclcpp moveit_msgs::moveit_msgs__rosidl_typesupport_cpp rviz_visual_tools::rviz_visual_tools + moveit_core::moveit_planning_scene moveit_ros_planning::moveit_robot_model_loader ${geometry_msgs_TARGETS} moveit_visual_tools::moveit_visual_tools) install(TARGETS planning_scene_ros_api_tutorial DESTINATION lib/${PROJECT_NAME} diff --git a/doc/examples/realtime_servo/CMakeLists.txt b/doc/examples/realtime_servo/CMakeLists.txt index a33cf18998..d4e9bc70e7 100644 --- a/doc/examples/realtime_servo/CMakeLists.txt +++ b/doc/examples/realtime_servo/CMakeLists.txt @@ -1,6 +1,17 @@ +find_package(graph_msgs REQUIRED) +find_package(moveit_ros_planning REQUIRED) +find_package(moveit_visual_tools REQUIRED) +find_package(moveit_ros_planning REQUIRED) +find_package(moveit_servo REQUIRED) +find_package(rviz_visual_tools REQUIRED) + add_executable(pose_tracking_tutorial src/pose_tracking_tutorial.cpp) target_include_directories(pose_tracking_tutorial PUBLIC include) -ament_target_dependencies(pose_tracking_tutorial ${THIS_PACKAGE_INCLUDE_DEPENDS}) +target_link_libraries(pose_tracking_tutorial PUBLIC + ${graph_msgs_TARGETS} ${moveit_servo_TARGETS} tf2_eigen::tf2_eigen + moveit_ros_planning::moveit_planning_scene_monitor + rviz_visual_tools::rviz_visual_tools +) install( TARGETS diff --git a/doc/examples/realtime_servo/src/pose_tracking_tutorial.cpp b/doc/examples/realtime_servo/src/pose_tracking_tutorial.cpp index d0692e9ced..ddd91721d3 100644 --- a/doc/examples/realtime_servo/src/pose_tracking_tutorial.cpp +++ b/doc/examples/realtime_servo/src/pose_tracking_tutorial.cpp @@ -119,7 +119,7 @@ class Door rclcpp::Node::SharedPtr node_; Eigen::Vector3d hinge_, center_, dims_; - double angle_, step_, rotation_radius_; + double angle_, rotation_radius_; rclcpp::Publisher::SharedPtr collision_object_publisher_; moveit_msgs::msg::CollisionObject collision_object_; shape_msgs::msg::SolidPrimitive door_primitive_; diff --git a/doc/examples/robot_model_and_robot_state/CMakeLists.txt b/doc/examples/robot_model_and_robot_state/CMakeLists.txt index f4f85b787e..98508fdca0 100644 --- a/doc/examples/robot_model_and_robot_state/CMakeLists.txt +++ b/doc/examples/robot_model_and_robot_state/CMakeLists.txt @@ -2,8 +2,7 @@ add_executable(robot_model_and_robot_state_tutorial src/robot_model_and_robot_state_tutorial.cpp) target_include_directories(robot_model_and_robot_state_tutorial PUBLIC include) -ament_target_dependencies(robot_model_and_robot_state_tutorial - ${THIS_PACKAGE_INCLUDE_DEPENDS} Boost) +target_link_libraries(robot_model_and_robot_state_tutorial PUBLIC moveit_ros_planning::moveit_robot_model_loader) install(TARGETS robot_model_and_robot_state_tutorial DESTINATION lib/${PROJECT_NAME} diff --git a/doc/examples/state_display/CMakeLists.txt b/doc/examples/state_display/CMakeLists.txt index 267e105729..2871f5fe57 100644 --- a/doc/examples/state_display/CMakeLists.txt +++ b/doc/examples/state_display/CMakeLists.txt @@ -1,5 +1,5 @@ add_executable(state_display_tutorial src/state_display_tutorial.cpp) -target_link_libraries(state_display_tutorial ${catkin_LIBRARIES} ${Boost_LIBRARIES}) +target_link_libraries(state_display_tutorial ${Boost_LIBRARIES}) install(TARGETS state_display_tutorial DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) diff --git a/doc/examples/subframes/CMakeLists.txt b/doc/examples/subframes/CMakeLists.txt index 50d29ac6ad..c29044e44e 100644 --- a/doc/examples/subframes/CMakeLists.txt +++ b/doc/examples/subframes/CMakeLists.txt @@ -1,3 +1,3 @@ add_executable(subframes_tutorial src/subframes_tutorial.cpp) -target_link_libraries(subframes_tutorial ${catkin_LIBRARIES} ${Boost_LIBRARIES}) +target_link_libraries(subframes_tutorial ${Boost_LIBRARIES}) install(TARGETS subframes_tutorial DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) diff --git a/doc/examples/tests/CMakeLists.txt b/doc/examples/tests/CMakeLists.txt index 968aa40f21..a9c0e420d2 100644 --- a/doc/examples/tests/CMakeLists.txt +++ b/doc/examples/tests/CMakeLists.txt @@ -1,5 +1,5 @@ if(CATKIN_ENABLE_TESTING) catkin_add_gtest(tests_tutorial test/tests.cpp) target_link_libraries(tests_tutorial - ${catkin_LIBRARIES} ${Boost_LIBRARIES}) + ${Boost_LIBRARIES}) endif() diff --git a/doc/examples/visualizing_collisions/CMakeLists.txt b/doc/examples/visualizing_collisions/CMakeLists.txt index 8015ea5df4..22cab831c3 100644 --- a/doc/examples/visualizing_collisions/CMakeLists.txt +++ b/doc/examples/visualizing_collisions/CMakeLists.txt @@ -5,13 +5,5 @@ add_executable(visualizing_collisions_tutorial target_link_libraries(visualizing_collisions_tutorial ${interactive_markers_LIBRARIES} interactivity_utils - ${catkin_LIBRARIES} ${Boost_LIBRARIES} ) - -install( - TARGETS - visualizing_collisions_tutorial - DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}) - -install(DIRECTORY launch DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}) diff --git a/doc/how_to_guides/kinematics_cost_function/CMakeLists.txt b/doc/how_to_guides/kinematics_cost_function/CMakeLists.txt index 53ba3080bf..8cc48fb348 100644 --- a/doc/how_to_guides/kinematics_cost_function/CMakeLists.txt +++ b/doc/how_to_guides/kinematics_cost_function/CMakeLists.txt @@ -1,9 +1,14 @@ +find_package(graph_msgs REQUIRED) +find_package(moveit_visual_tools REQUIRED) +find_package(rviz_visual_tools REQUIRED) + add_executable(kinematics_cost_function_tutorial src/kinematics_cost_function_tutorial.cpp) target_include_directories(kinematics_cost_function_tutorial PUBLIC include) -ament_target_dependencies(kinematics_cost_function_tutorial - ${THIS_PACKAGE_INCLUDE_DEPENDS}) + +target_link_libraries(kinematics_cost_function_tutorial PUBLIC moveit_ros_move_group::moveit_move_group_capabilities_base +moveit_ros_planning_interface::moveit_move_group_interface moveit_visual_tools::moveit_visual_tools) install(TARGETS kinematics_cost_function_tutorial DESTINATION lib/${PROJECT_NAME} diff --git a/doc/how_to_guides/parallel_planning/CMakeLists.txt b/doc/how_to_guides/parallel_planning/CMakeLists.txt index 3078bbdd72..140de5f75f 100644 --- a/doc/how_to_guides/parallel_planning/CMakeLists.txt +++ b/doc/how_to_guides/parallel_planning/CMakeLists.txt @@ -1,6 +1,11 @@ +find_package(graph_msgs REQUIRED) +find_package(moveit_visual_tools REQUIRED) +find_package(rviz_visual_tools REQUIRED) +find_package(OpenSSL REQUIRED) + add_executable(parallel_planning_example src/parallel_planning_main.cpp) target_include_directories(parallel_planning_example PRIVATE include) -ament_target_dependencies(parallel_planning_example ${THIS_PACKAGE_INCLUDE_DEPENDS} Boost) +target_link_libraries(parallel_planning_example PUBLIC rclcpp::rclcpp moveit_ros_planning::moveit_cpp moveit_visual_tools::moveit_visual_tools moveit_ros_warehouse::moveit_warehouse) install(TARGETS parallel_planning_example DESTINATION lib/${PROJECT_NAME} diff --git a/doc/how_to_guides/pilz_industrial_motion_planner/CMakeLists.txt b/doc/how_to_guides/pilz_industrial_motion_planner/CMakeLists.txt index 5973acf864..9da90a5a6f 100644 --- a/doc/how_to_guides/pilz_industrial_motion_planner/CMakeLists.txt +++ b/doc/how_to_guides/pilz_industrial_motion_planner/CMakeLists.txt @@ -1,14 +1,19 @@ +find_package(graph_msgs REQUIRED) +find_package(moveit_task_constructor_core REQUIRED) +find_package(moveit_visual_tools REQUIRED) +find_package(rviz_visual_tools REQUIRED) + add_executable(pilz_move_group src/pilz_move_group.cpp) target_include_directories(pilz_move_group PUBLIC include) -ament_target_dependencies(pilz_move_group ${THIS_PACKAGE_INCLUDE_DEPENDS}) +target_link_libraries(pilz_move_group PUBLIC ${moveit_task_constructor_core_TARGETS} rclcpp::rclcpp rclcpp_action::rclcpp_action moveit_ros_planning_interface::moveit_move_group_interface moveit_visual_tools::moveit_visual_tools) add_executable(pilz_mtc src/pilz_mtc.cpp) target_include_directories(pilz_mtc PUBLIC include) -ament_target_dependencies(pilz_mtc ${THIS_PACKAGE_INCLUDE_DEPENDS}) +target_link_libraries(pilz_mtc PUBLIC rclcpp::rclcpp rclcpp_action::rclcpp_action moveit_ros_planning_interface::moveit_move_group_interface moveit_visual_tools::moveit_visual_tools ${moveit_task_constructor_core_TARGETS}) add_executable(pilz_sequence src/pilz_sequence.cpp) target_include_directories(pilz_sequence PUBLIC include) -ament_target_dependencies(pilz_sequence ${THIS_PACKAGE_INCLUDE_DEPENDS}) +target_link_libraries(pilz_sequence PUBLIC rclcpp::rclcpp rclcpp_action::rclcpp_action moveit_ros_planning_interface::moveit_move_group_interface moveit_visual_tools::moveit_visual_tools) install( TARGETS diff --git a/doc/how_to_guides/trajectory_cache/CMakeLists.txt b/doc/how_to_guides/trajectory_cache/CMakeLists.txt index 3d3dc093b0..f0a5f7413b 100644 --- a/doc/how_to_guides/trajectory_cache/CMakeLists.txt +++ b/doc/how_to_guides/trajectory_cache/CMakeLists.txt @@ -1,5 +1,14 @@ +find_package(graph_msgs REQUIRED) +find_package(moveit_visual_tools REQUIRED) +find_package(rviz_visual_tools REQUIRED) +find_package(OpenSSL REQUIRED) + add_executable(trajectory_cache_demo src/trajectory_cache_demo.cpp) -ament_target_dependencies(trajectory_cache_demo ${THIS_PACKAGE_INCLUDE_DEPENDS} Boost moveit_ros_trajectory_cache) +target_link_libraries(trajectory_cache_demo PUBLIC moveit_ros_planning_interface::moveit_move_group_interface + +moveit_ros_trajectory_cache::moveit_ros_trajectory_cache_utils_lib moveit_ros_trajectory_cache::moveit_ros_trajectory_cache_features_lib moveit_ros_trajectory_cache::moveit_ros_trajectory_cache_cache_insert_policies_lib moveit_ros_trajectory_cache::moveit_ros_trajectory_cache_lib + +moveit_visual_tools::moveit_visual_tools) install(TARGETS trajectory_cache_demo DESTINATION lib/${PROJECT_NAME}) install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) diff --git a/doc/how_to_guides/using_ompl_constrained_planning/CMakeLists.txt b/doc/how_to_guides/using_ompl_constrained_planning/CMakeLists.txt index 080fec44ff..e0ea909beb 100644 --- a/doc/how_to_guides/using_ompl_constrained_planning/CMakeLists.txt +++ b/doc/how_to_guides/using_ompl_constrained_planning/CMakeLists.txt @@ -1,9 +1,13 @@ +find_package(graph_msgs REQUIRED) +find_package(moveit_visual_tools REQUIRED) +find_package(rviz_visual_tools REQUIRED) add_executable(ompl_constrained_planning src/ompl_constrained_planning_tutorial.cpp) target_include_directories(ompl_constrained_planning PUBLIC include) -ament_target_dependencies(ompl_constrained_planning - ${THIS_PACKAGE_INCLUDE_DEPENDS} Boost) +target_link_libraries(ompl_constrained_planning PUBLIC +${graph_msgs_TARGETS} +moveit_ros_move_group::moveit_move_group_capabilities_base moveit_ros_planning_interface::moveit_move_group_interface moveit_visual_tools::moveit_visual_tools ) install(TARGETS ompl_constrained_planning DESTINATION lib/${PROJECT_NAME} diff --git a/doc/tutorials/pick_and_place_with_moveit_task_constructor/CMakeLists.txt b/doc/tutorials/pick_and_place_with_moveit_task_constructor/CMakeLists.txt index 9fd9a56713..38ddf3316f 100644 --- a/doc/tutorials/pick_and_place_with_moveit_task_constructor/CMakeLists.txt +++ b/doc/tutorials/pick_and_place_with_moveit_task_constructor/CMakeLists.txt @@ -1,8 +1,22 @@ +find_package(moveit_ros_planning REQUIRED) +find_package(moveit_core REQUIRED) +find_package(moveit_task_constructor_core REQUIRED) + add_executable(mtc_tutorial src/mtc_node.cpp) -ament_target_dependencies(mtc_tutorial ${THIS_PACKAGE_INCLUDE_DEPENDS}) + target_link_libraries(mtc_tutorial PUBLIC rclcpp::rclcpp moveit_core::moveit_planning_interface moveit_core::moveit_planning_scene + moveit_ros_planning::moveit_planning_pipeline + moveit_ros_planning::moveit_planning_pipeline_interfaces + moveit_ros_planning::moveit_planning_scene_monitor + moveit_ros_planning_interface::moveit_move_group_interface + ${moveit_task_constructor_core_TARGETS}) add_executable(minimal_mtc_tutorial src/minimal.cpp) -ament_target_dependencies(minimal_mtc_tutorial ${THIS_PACKAGE_INCLUDE_DEPENDS}) + target_link_libraries(minimal_mtc_tutorial PUBLIC rclcpp::rclcpp moveit_core::moveit_planning_interface moveit_core::moveit_planning_scene + moveit_ros_planning::moveit_planning_pipeline + moveit_ros_planning::moveit_planning_pipeline_interfaces + moveit_ros_planning::moveit_planning_scene_monitor + moveit_ros_planning_interface::moveit_move_group_interface + ${moveit_task_constructor_core_TARGETS}) install(TARGETS mtc_tutorial minimal_mtc_tutorial ARCHIVE DESTINATION lib diff --git a/doc/tutorials/pick_and_place_with_moveit_task_constructor/pick_and_place_with_moveit_task_constructor.rst b/doc/tutorials/pick_and_place_with_moveit_task_constructor/pick_and_place_with_moveit_task_constructor.rst index 09271fae80..30aeba37be 100644 --- a/doc/tutorials/pick_and_place_with_moveit_task_constructor/pick_and_place_with_moveit_task_constructor.rst +++ b/doc/tutorials/pick_and_place_with_moveit_task_constructor/pick_and_place_with_moveit_task_constructor.rst @@ -487,10 +487,10 @@ We return the task and finish with the ``createTask()`` function. return task; } -Finally, we have ``main``: the following lines create a node using the class defined above, and calls the class methods to set up and execute a basic MTC task. -In this example, we do not cancel the executor once the task has finished executing to keep the program running and thus to allow inspection of the solutions in RViz. +Finally, we have ``main``: the following lines create a node using the class defined above, and calls the class methods to set up and execute a basic MTC task. +In this example, we do not cancel the executor once the task has finished executing to keep the program running and thus to allow inspection of the solutions in RViz. Note that RViz only lazily caches submitted solutions. If you click on not yet viewed solutions in RViz' MTC Task Tree, RViz requests the solution information from the planning program. (Actually, it's the executor and node owned by the task's `Introspection` instance that respond to those requests.) -Thus, by keeping the program alive, one can inspect all solution in peace. The program will quit if you CTRL-C it. +Thus, by keeping the program alive, one can inspect all solutions in peace. The program will quit if you Ctrl-C it. .. code-block:: c++ diff --git a/doc/tutorials/quickstart_in_rviz/CMakeLists.txt b/doc/tutorials/quickstart_in_rviz/CMakeLists.txt index a18e04161c..5410b9f71e 100644 --- a/doc/tutorials/quickstart_in_rviz/CMakeLists.txt +++ b/doc/tutorials/quickstart_in_rviz/CMakeLists.txt @@ -1,18 +1,22 @@ -install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}) +install(DIRECTORY config launch DESTINATION share/${PROJECT_NAME}) if(BUILD_TESTING) find_package(ament_lint_auto REQUIRED) find_package(ament_cmake_gtest REQUIRED) find_package(ros_testing REQUIRED) - find_package(Boost REQUIRED COMPONENTS filesystem) + find_package(control_msgs REQUIRED) + find_package(moveit_msgs REQUIRED) + find_package(Boost CONFIG REQUIRED COMPONENTS filesystem) # Run all lint tests in package.xml ament_lint_auto_find_test_dependencies() + # Basic "quickstart_in_rviz" bringup test ament_add_gtest_executable(bringup_test test/bringup_test.cpp ) - ament_target_dependencies(bringup_test ${THIS_PACKAGE_INCLUDE_DEPENDS}) + target_link_libraries(bringup_test ${control_msgs_TARGETS} ${moveit_msgs_TARGETS} + rclcpp_action::rclcpp_action) add_ros_test(test/bringup_test.test.py TIMEOUT 120 ARGS "test_binary_dir:=${CMAKE_CURRENT_BINARY_DIR}") endif() diff --git a/doc/tutorials/quickstart_in_rviz/config/ros2_controllers.yaml b/doc/tutorials/quickstart_in_rviz/config/ros2_controllers.yaml new file mode 100644 index 0000000000..f3f9326ff4 --- /dev/null +++ b/doc/tutorials/quickstart_in_rviz/config/ros2_controllers.yaml @@ -0,0 +1,32 @@ +controller_manager: + ros__parameters: + update_rate: 1000 # Hz + + joint_state_broadcaster: + type: joint_state_broadcaster/JointStateBroadcaster + + joint_trajectory_controller: + type: joint_trajectory_controller/JointTrajectoryController + + robotiq_gripper_controller: + type: parallel_gripper_action_controller/GripperActionController + +joint_trajectory_controller: + ros__parameters: + joints: + - joint_1 + - joint_2 + - joint_3 + - joint_4 + - joint_5 + - joint_6 + - joint_7 + command_interfaces: + - position + state_interfaces: + - position + - velocity + +robotiq_gripper_controller: + ros__parameters: + joint: finger_joint diff --git a/doc/tutorials/quickstart_in_rviz/launch/demo.launch.py b/doc/tutorials/quickstart_in_rviz/launch/demo.launch.py index 169e1b4422..adc9133468 100644 --- a/doc/tutorials/quickstart_in_rviz/launch/demo.launch.py +++ b/doc/tutorials/quickstart_in_rviz/launch/demo.launch.py @@ -1,6 +1,7 @@ import os from launch import LaunchDescription from launch.actions import DeclareLaunchArgument +from launch.conditions import IfCondition from launch.substitutions import LaunchConfiguration, PathJoinSubstitution from launch_ros.actions import Node from launch_ros.substitutions import FindPackageShare @@ -43,7 +44,11 @@ def generate_launch_description(): ) # RViz for visualization - # Get the path to the RViz configuration file + launch_rviz_arg = DeclareLaunchArgument( + "launch_rviz", + default_value="true", + description="Launch RViz", + ) rviz_config_arg = DeclareLaunchArgument( "rviz_config", default_value="kinova_moveit_config_demo.rviz", @@ -67,6 +72,7 @@ def generate_launch_description(): moveit_config.planning_pipelines, moveit_config.joint_limits, ], + condition=IfCondition(LaunchConfiguration("launch_rviz")), ) # Static TF @@ -89,17 +95,14 @@ def generate_launch_description(): # ros2_control using mock hardware for trajectory execution ros2_controllers_path = os.path.join( - get_package_share_directory("kinova_gen3_7dof_robotiq_2f_85_moveit_config"), + get_package_share_directory("moveit2_tutorials"), "config", "ros2_controllers.yaml", ) ros2_control_node = Node( package="controller_manager", executable="ros2_control_node", - parameters=[ros2_controllers_path], - remappings=[ - ("/controller_manager/robot_description", "/robot_description"), - ], + parameters=[moveit_config.robot_description, ros2_controllers_path], output="both", ) @@ -116,17 +119,30 @@ def generate_launch_description(): arm_controller_spawner = Node( package="controller_manager", executable="spawner", - arguments=["joint_trajectory_controller", "-c", "/controller_manager"], + arguments=[ + "joint_trajectory_controller", + "-c", + "/controller_manager", + "--param-file", + ros2_controllers_path, + ], ) hand_controller_spawner = Node( package="controller_manager", executable="spawner", - arguments=["robotiq_gripper_controller", "-c", "/controller_manager"], + arguments=[ + "robotiq_gripper_controller", + "-c", + "/controller_manager", + "--param-file", + ros2_controllers_path, + ], ) return LaunchDescription( [ + launch_rviz_arg, rviz_config_arg, rviz_node, static_tf, diff --git a/doc/tutorials/quickstart_in_rviz/test/bringup_test.test.py b/doc/tutorials/quickstart_in_rviz/test/bringup_test.test.py index 849628875a..ad8a53b64a 100644 --- a/doc/tutorials/quickstart_in_rviz/test/bringup_test.test.py +++ b/doc/tutorials/quickstart_in_rviz/test/bringup_test.test.py @@ -21,6 +21,7 @@ def generate_test_description(): ) base_launch = IncludeLaunchDescription( PythonLaunchDescriptionSource(demo_path), + launch_arguments={"launch_rviz": "false"}.items(), ) # Launch the test diff --git a/doc/tutorials/visualizing_in_rviz/visualizing_in_rviz.rst b/doc/tutorials/visualizing_in_rviz/visualizing_in_rviz.rst index 9081c99a91..07b2c2cd23 100644 --- a/doc/tutorials/visualizing_in_rviz/visualizing_in_rviz.rst +++ b/doc/tutorials/visualizing_in_rviz/visualizing_in_rviz.rst @@ -27,15 +27,14 @@ Then in your ``CMakeLists.txt`` add this line to the section of ``find_package`` find_package(moveit_visual_tools REQUIRED) -Further down in the file extend the ``ament_target_dependencies`` macro call to include the new dependency like this: +Further down in the file extend the ``target_link_libraries`` macro call to include the new dependency like this: .. code-block:: cmake - ament_target_dependencies( + target_link_libraries( hello_moveit - "moveit_ros_planning_interface" - "moveit_visual_tools" - "rclcpp" + moveit_ros_planning_interface::moveit_move_group_interface + moveit_visual_tools::moveit_visual_tools ) To verify that you added the dependency correctly, add the required include to your source file ``hello_moveit.cpp``: diff --git a/doc/tutorials/your_first_project/your_first_project.rst b/doc/tutorials/your_first_project/your_first_project.rst index 32cc65ea70..5b45a70f96 100644 --- a/doc/tutorials/your_first_project/your_first_project.rst +++ b/doc/tutorials/your_first_project/your_first_project.rst @@ -268,7 +268,7 @@ Summary * You created a ROS 2 package and wrote your first program using MoveIt. * You learned about using the MoveGroupInterface to plan and execute moves. -* :codedir:`Here is a copy of the full hello_moveit.cpp source at the end of this tutorial`. +* :codedir:`Here is a copy of the full hello_moveit.cpp source at the end of this tutorial`. Further Reading --------------- diff --git a/htmlproofer.sh b/htmlproofer.sh index cbb0015e96..cfb5f43746 100755 --- a/htmlproofer.sh +++ b/htmlproofer.sh @@ -43,10 +43,11 @@ grep -rl 'https:\/\/moveit.picknik.ai\/rolling\/' ./build/ | \ # Run HTML tests on generated build output to check for 404 errors, etc # 429 or 403 - happens when GitHub rate-limits requests +# 415 - happens when servers (e.g. doxygen.nl) reject automated probes htmlproofer ./build \ - --only-4xx --check-html --http-status-ignore "429" --http-status-ignore "403" \ + --only-4xx --check-html --http-status-ignore "403,415,429" \ --file-ignore ./build/html/genindex.html,./build/html/search.html,/html/api/ \ - --alt-ignore '/.*/' --url-ignore '#' + --alt-ignore '/.*/' --url-ignore "/#/,/doxygen\.nl/" # Tell GitHub Pages (on deploy) to bypass Jekyll processing touch build/.nojekyll diff --git a/index.rst b/index.rst index 411fe56d98..f9d515c4e6 100644 --- a/index.rst +++ b/index.rst @@ -6,7 +6,7 @@ Welcome to the unified MoveIt documentation, which includes tutorials, how-to gu MoveIt 2 is the robotic manipulation platform for ROS 2 and incorporates the latest advances in motion planning, manipulation, 3D perception, kinematics, control, and navigation. MoveIt 2 was first released in 2019; for ROS 1 documentation, see `MoveIt 1 tutorials `_. For the commercially supported version see `MoveIt Pro tutorials `_. -.. image:: http://moveit.ros.org/assets/images/roadmap.png +.. image:: https://moveit.ai/assets/logo/moveit_logo-white.png :width: 400px How-To Use This Website @@ -42,5 +42,5 @@ Help us improve these docs and we'll be happy to include you here also! Corporate Sponsorship --------------------- -* The tutorials had a major update in 2018 during a code sprint sponsored by Franka Emika in collaboration with `PickNik Robotics `_ (`Check out the blog post! `_) +* The tutorials had a major update in 2018 during a code sprint sponsored by Franka Emika in collaboration with `PickNik Robotics `_ (`Check out the blog post! `_) * The tutorials had another major update in 2022 during a doc-a-thon sponsored by `PickNik Robotics `_. diff --git a/requirements.txt b/requirements.txt index 7aa8851125..81a04a45cc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ pip docutils -sphinx>=5.0.0 +sphinx>=5.0.0,<9.0.0 sphinx-tabs sphinx-multiversion sphinx-rtd-theme