# moveit2_tutorials **Repository Path**: githubtogitee/moveit2_tutorials ## Basic Information - **Project Name**: moveit2_tutorials - **Description**: No description available - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2022-03-16 - **Last Updated**: 2022-08-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MoveIt 2 Tutorials **NOTE: This repository is a new fork from the [MoveIt 1 tutorials](https://ros-planning.github.io/moveit_tutorials/) and needs your help with porting old tutorials to ROS 2.** To claim a tutorial to support the port of, see the Issues list. Thanks! [See the live MoveIt 2 tutorials here](https://moveit.picknik.ai/) This is the primary documentation for the MoveIt project. We strongly encourage you to help improve MoveIt's documentation. Please consider reading the guidelines below for writing the best documentation and tutorials. However, if you are uncomfortable with any of the approaches, simply adding documentation text to your pull requests is better than nothing. These tutorials use the [reStructuredText](http://www.sphinx-doc.org/en/stable/rest.html) format commonly used in the Sphinx "Python Documentation Generator". This unfortunately differs from the common Markdown format, but its advantage is that it supports embedding code directly from source files for inline code tutorials. All content in this repository is open source and released under the [BSD License v3](https://opensource.org/licenses/BSD-3-Clause). Each individual source code file should contain a copy of the license. This repository is currently built automatically by Github Actions: - main: [![CI](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/ci.yaml?query=branch%3Amain) - main: [![Format](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/format.yml/badge.svg?branch=main)](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/format.yml?query=branch%3Amain) - galactic: [![CI](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/ci.yaml/badge.svg?branch=galactic)](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/ci.yaml?query=branch%3Agalactic) - galactic: [![Format](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/format.yml/badge.svg?branch=galactic)](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/format.yml?query=branch%3Agalactic) - foxy: [![CI](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/ci.yaml?query=branch%3Afoxy) (Foxy) - foxy: [![Format](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/format.yml/badge.svg?branch=main)](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/format.yml?query=branch%3Afoxy) (Foxy) - foxy: [![Deploy](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/deploy.yml/badge.svg?branch=main)](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/deploy.yml?query=branch%3Afoxy) (Foxy) - foxy: [Github Pages](https://moveit.picknik.ai/): (Foxy) ## Helping with Porting Tutorials to ROS 2 An issue has been created for each tutorial to be ported to Foxy. At the top of each tutorial there is a tag: ":moveit1:", remove the tag after the tutorial has been successfully updated. Below are some links to help with the ports. * [colcon](https://colcon.readthedocs.io/en/released/user/how-to.html) * [ament](https://index.ros.org/doc/ros2/Tutorials/Ament-CMake-Documentation/) * [rclcpp](http://docs.ros2.org/foxy/api/rclcpp/index.html) ## Versions - ``main`` latest, changes should target this branch ## MoveIt 2 Tutorials Source Build Follow the [MoveIt 2 Source Build](https://moveit.ros.org/install-moveit2/source/) instructions to setup a colcon workspace with moveit2 from source. Open a command line to your your moveit2 colcon workspace: cd $COLCON_WS/src Download Moveit2_tutorials Source Code git clone https://github.com/ros-planning/moveit2_tutorials.git vcs import < moveit2_tutorials/moveit2_tutorials.repos rosdep install -r --from-paths . --ignore-src --rosdistro rolling -y Configure and build the workspace: cd $COLCON_WS colcon build --event-handlers desktop_notification- status- --cmake-args -DCMAKE_BUILD_TYPE=Release ## Build HTML Pages Locally If you want to test the tutorials by generating the html pages locally on your machine, you can use the ``build_locally`` script by issuing the following commands in the root of the moveit2_tutorials package: export ROS_DISTRO=rolling # 20.04 cd $COLCON_WS/src/moveit2_tutorials source /opt/ros/$ROS_DISTRO/setup.bash ./build_locally.sh The local website ``/build/html/index.html`` should automatically open in your web browser. ### Optional build_locally Settings - *noinstall* skip the dependencies install step to speed up the script - *loop* automatically rebuild the html if a change is detected ## Contributing We rely on the community to keep these tutorials up to date and bug free. If you find an issue with the tutorials please [open an issue on GitHub](https://github.com/ros-planning/moveit2_tutorials/issues/new) or open a PR with proposed changes. ### Formatting and Style **Code Formatting** * These tutorials use the same [style guidelines](http://moveit.ros.org/documentation/contributing/code/) as the MoveIt project. When modifying or adding to these tutorials, it is required that code is auto formatted using [clang-format](http://moveit.ros.org/documentation/contributing/code/). To check and apply our style guidelines we use [pre-commit](https://pre-commit.com/). * Tutorials should exemplify best coding practices. If a contribution wouldn't pass review in the MoveIt project, then it shouldn't pass review in the tutorials. * Relevant code should be included and explained using the ``.. tutorial-formatter::`` tag. * Irrelevant code should be excluded from the generated html using the ``BEGIN_TUTORIAL``, ``END_TUTORIAL``, ``BEGIN_SUB_TUTORIAL``, and ``END_SUB_TUTORIAL`` tags. * Whenever possible, links should be created using the ``extlinks`` dictionary defined in ``conf.py``. * All demo code should be runnable from within the ``moveit2_tutorials`` package. * Python code should be run using ``ros2 run``. **Style** * Each tutorial should be focused on teaching the user one feature or interface within MoveIt. * Tutorials should flow from show to tell with videos and demos at the beginning followed by explanations. * New tutorials should match the formatting, style and flow of existing tutorials whenever possible. **pre-commit** pre-commit is a tool that is used in moveit2_tutorials to check and apply style guidelines automatically. To install pre-commit into your system: pip3 install pre-commit Then under moveit2_tutorials directory install the git hooks like this: cd $COLCON_WS/src/moveit2_tutorials && pre-commit install With this pre-commit will automatically run and check a list of styling including clang-format, end of files and trailing whitespaces whenever you run `git commit`. To run pre-commit any time other than `git commit`: cd $COLCON_WS/src/moveit2_tutorials && pre-commit run -a ### Including Images and Videos #### Images The standard way to include an image in reStructuredText is ``` .. image:: filename.png :width: 700px ``` This assumes that `filename.png` is in the same folder as the source `.rst` file. Images linked in this way will automatically be copied to the appropriate folder in the build. [External Documentation](https://sublime-and-sphinx-guide.readthedocs.io/en/latest/images.html) Do **not** include animated gifs as the file format leads to very large files. Use a video format like `webm` and see the section on local video below. #### YouTube and other External Video You can embed video with raw html, like in this example from the Pick and Place Tutorial. ``` .. raw:: html
``` This includes [Youtube's suggested embed html](https://support.google.com/youtube/answer/171780?hl=en). #### Local Video To embed a video that is included in this repository, you also will use raw html, like this example from the Quickstart in RViz tutorial. ``` .. raw:: html ``` Note that the video file is in the `_static/videos` folder instead of the same folder. [External Documentation on <video> tag](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/video)