Skip to content

Commit

Permalink
Update URLs after migration to moveit org (#901)
Browse files Browse the repository at this point in the history
Commands used:
fgrep -rl ros-planning/ | xargs -n1 sed -i 's@ros-planning/@moveit/@g'
fgrep -rl 'ros-planning.' | xargs -n1 sed -i 's@ros-planning\.@moveit.@g'

---------

Co-authored-by: Sebastian Jahr <[email protected]>
  • Loading branch information
v4hn and sjahr authored Jun 7, 2024
1 parent bf94204 commit 99b4203
Show file tree
Hide file tree
Showing 48 changed files with 104 additions and 103 deletions.
4 changes: 2 additions & 2 deletions .docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

services:
cpu:
image: ghcr.io/ros-planning/moveit2_tutorials:$DOCKER_IMAGE
image: ghcr.io/moveit/moveit2_tutorials:$DOCKER_IMAGE
container_name: moveit2_container
privileged: true
network_mode: host
Expand All @@ -18,7 +18,7 @@ services:
QT_X11_NO_MITSHM: 1
DISPLAY: $DISPLAY
gpu:
image: ghcr.io/ros-planning/moveit2_tutorials:$DOCKER_IMAGE
image: ghcr.io/moveit/moveit2_tutorials:$DOCKER_IMAGE
container_name: moveit2_container
privileged: true
network_mode: host
Expand Down
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ Please explain the changes you made, including a reference to the related issue

### Checklist
- [ ] **Required by CI**: Code is auto formatted using [clang-format](http://moveit.ros.org/documentation/contributing/code)
- [ ] While waiting for someone to review your request, please consider reviewing [another open pull request](https://github.com/ros-planning/moveit2/pulls) to support the maintainers
- [ ] While waiting for someone to review your request, please consider reviewing [another open pull request](https://github.com/moveit/moveit2/pulls) to support the maintainers

[//]: # "You can expect a response from a maintainer within 7 days. If you haven't heard anything by then, feel free to ping the thread. Thank you!"
4 changes: 2 additions & 2 deletions .github/upstream.repos
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
repositories:
moveit_task_constructor:
type: git
url: https://github.com/ros-planning/moveit_task_constructor.git
url: https://github.com/moveit/moveit_task_constructor.git
version: ros2
moveit_visual_tools:
type: git
url: https://github.com/ros-planning/moveit_visual_tools
url: https://github.com/moveit/moveit_visual_tools
version: ros2
rosparam_shortcuts:
type: git
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -144,12 +144,12 @@ jobs:
- name: Upload pages artifact
uses: actions/upload-pages-artifact@v3
if: github.repository_owner == 'ros-planning'
if: github.repository_owner == 'moveit'
with:
path: build/html

deploy:
if: github.repository_owner == 'ros-planning' && github.ref == 'refs/heads/main'
if: github.repository_owner == 'moveit' && github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs: collate_site_artifacts
environment:
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ local-with-api: Makefile
@echo Building local with API
@echo Step 1 of 2: Clone MoveIt 2 and build API using selected distro
mkdir -p build/html
cd build/html && if cd moveit2; then git pull; else git clone https://github.com/ros-planning/moveit2 -b $(MOVEIT_BRANCH) --depth 1 && cd moveit2; fi && \
cd build/html && if cd moveit2; then git pull; else git clone https://github.com/moveit/moveit2 -b $(MOVEIT_BRANCH) --depth 1 && cd moveit2; fi && \
sed -i "s/HTML_EXTRA_STYLESHEET =.*/HTML_EXTRA_STYLESHEET = ..\/..\/..\/theme.css/g" Doxyfile && DOXYGEN_OUTPUT_DIRECTORY="../api" doxygen && cd .. && rm -rf moveit2
@echo Step 2 of 2: Building html
make html
Expand All @@ -28,7 +28,7 @@ generate_api_artifacts: Makefile
@echo Step 1 of 3: Ensure build folder exists
mkdir -p build/html
@echo Step 2 of 3: generate CPP API Artifacts
cd build/html && if cd moveit2; then git pull; else git clone https://github.com/ros-planning/moveit2 -b $(BRANCH) --depth 1 && cd moveit2; fi && \
cd build/html && if cd moveit2; then git pull; else git clone https://github.com/moveit/moveit2 -b $(BRANCH) --depth 1 && cd moveit2; fi && \
sed -i "s/HTML_EXTRA_STYLESHEET =.*/HTML_EXTRA_STYLESHEET = ..\/..\/..\/theme.css/g" Doxyfile && DOXYGEN_OUTPUT_DIRECTORY="../api" doxygen && cd .. && rm -rf moveit2
@echo Step 3 of 3: Build Sphinx Artifacts
make html
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ This is the primary documentation for the MoveIt project.

This repository is built and deployed automatically by GitHub Actions:

- **Rolling** (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) [![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) [![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%3Amain)
- **Humble**: [![CI](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/ci.yaml/badge.svg?branch=humble)](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/ci.yaml?query=branch%3Ahumble) [![Format](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/format.yml/badge.svg?branch=humble)](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/format.yml?query=branch%3Ahumble) [![Deploy](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/deploy.yml/badge.svg?branch=humble)](https://github.com/ros-planning/moveit2_tutorials/actions/workflows/deploy.yml?query=branch%3Ahumble)
- **Rolling** (main): [![CI](https://github.com/moveit/moveit2_tutorials/actions/workflows/ci.yaml/badge.svg?branch=main)](https://github.com/moveit/moveit2_tutorials/actions/workflows/ci.yaml?query=branch%3Amain) [![Format](https://github.com/moveit/moveit2_tutorials/actions/workflows/format.yml/badge.svg?branch=main)](https://github.com/moveit/moveit2_tutorials/actions/workflows/format.yml?query=branch%3Amain) [![Deploy](https://github.com/moveit/moveit2_tutorials/actions/workflows/deploy.yml/badge.svg?branch=main)](https://github.com/moveit/moveit2_tutorials/actions/workflows/deploy.yml?query=branch%3Amain)
- **Humble**: [![CI](https://github.com/moveit/moveit2_tutorials/actions/workflows/ci.yaml/badge.svg?branch=humble)](https://github.com/moveit/moveit2_tutorials/actions/workflows/ci.yaml?query=branch%3Ahumble) [![Format](https://github.com/moveit/moveit2_tutorials/actions/workflows/format.yml/badge.svg?branch=humble)](https://github.com/moveit/moveit2_tutorials/actions/workflows/format.yml?query=branch%3Ahumble) [![Deploy](https://github.com/moveit/moveit2_tutorials/actions/workflows/deploy.yml/badge.svg?branch=humble)](https://github.com/moveit/moveit2_tutorials/actions/workflows/deploy.yml?query=branch%3Ahumble)

## Contributing

We strongly encourage you to help improve MoveIt's documentation. Please consider helping improve the tutorials, port old ones from ROS 1, and write new tutorials. We recommend you read the quality standards below as well as the [How to Write a MoveIt Tutorial](https://moveit.picknik.ai/main/doc/how_to_contribute/how_to_write_tutorials.html) page.

If you find an issue with the tutorials you are not able to fix yourself, please [open an issue on GitHub](https://github.com/ros-planning/moveit2_tutorials/issues/new) or open a PR with proposed changes.
If you find an issue with the tutorials you are not able to fix yourself, please [open an issue on GitHub](https://github.com/moveit/moveit2_tutorials/issues/new) or open a PR with proposed changes.

## Helping with Porting Tutorials to ROS 2

Expand All @@ -37,7 +37,7 @@ Open a command line to your colcon workspace:

Download the MoveIt Tutorials source code:

git clone https://github.com/ros-planning/moveit2_tutorials.git
git clone https://github.com/moveit/moveit2_tutorials.git
vcs import < moveit2_tutorials/moveit2_tutorials.repos
rosdep install -r --from-paths . --ignore-src --rosdistro rolling -y

Expand Down
2 changes: 1 addition & 1 deletion conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@

html_context = {
"display_github": True,
"github_user": "ros-planning",
"github_user": "moveit",
"github_repo": "moveit2_tutorials",
"github_version": "main/",
"conf_py_path": "",
Expand Down
2 changes: 1 addition & 1 deletion doc/concepts/moveit_task_constructor/connecting_stages.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Connect
-
- Default is TOTG (Time-Optimal Trajectory Generation). Information about TOTG is available in the :ref:`Time Parameterization tutorial <doc/examples/time_parameterization/time_parameterization_tutorial:Time Parameterization Algorithms>`

`API doc for Connect <https://ros-planning.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1Connect.html>`_.
`API doc for Connect <https://moveit.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1Connect.html>`_.

Code Example

Expand Down
8 changes: 4 additions & 4 deletions doc/concepts/moveit_task_constructor/generating_stages.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ Example code

auto current_state = std::make_unique<moveit::task_constructor::stages::CurrentState>("current_state");

`API doc for CurrentState <https://ros-planning.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1CurrentState.html>`_.
`API doc for CurrentState <https://moveit.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1CurrentState.html>`_.

FixedState
----------
Expand All @@ -49,7 +49,7 @@ FixedState
auto initial = std::make_unique<stages::FixedState>();
initial->setState(scene);

`API doc for FixedState <https://ros-planning.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1FixedState.html>`_.
`API doc for FixedState <https://moveit.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1FixedState.html>`_.

Monitoring Generators
---------------------
Expand Down Expand Up @@ -96,7 +96,7 @@ GenerateGraspPose
- Grasp pose

Refer the API docs for the latest state of code.
`API doc for GenerateGraspPose <https://ros-planning.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1GenerateGraspPose.html>`_.
`API doc for GenerateGraspPose <https://moveit.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1GenerateGraspPose.html>`_.

Example code

Expand Down Expand Up @@ -136,7 +136,7 @@ Example code
stage->setPose(p);
stage->setMonitoredStage(pick_stage_ptr); // hook into successful pick solutions

`API doc for GeneratePlacePose <https://ros-planning.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1GeneratePlacePose.html>`_.
`API doc for GeneratePlacePose <https://moveit.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1GeneratePlacePose.html>`_.


GenerateRandomPose
Expand Down
6 changes: 3 additions & 3 deletions doc/concepts/moveit_task_constructor/propagating_stages.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Example code to enable collision
auto stage = std::make_unique<stages::ModifyPlanningScene>("Allow collision between object and gripper");
stage->allowCollisions("object_name", "gripper_frame_name", true);

`API doc for ModifyPlanningScene <https://ros-planning.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1ModifyPlanningScene.html>`_.
`API doc for ModifyPlanningScene <https://moveit.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1ModifyPlanningScene.html>`_.

MoveRelative
------------
Expand Down Expand Up @@ -86,7 +86,7 @@ MoveRelative
- void setDirection(std::map<std::string, double> direction)
- Move specified joint variables by given amount

`API doc for MoveRelative <https://ros-planning.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1MoveRelative.html>`_.
`API doc for MoveRelative <https://moveit.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1MoveRelative.html>`_.

Example code

Expand Down Expand Up @@ -150,7 +150,7 @@ MoveTo
- void setPathConstraints(moveit_msgs:::Constraints path_constaints)
- Constraints to maintain during trajectory

`API doc for MoveTo <https://ros-planning.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1MoveTo.html>`_.
`API doc for MoveTo <https://moveit.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1MoveTo.html>`_.

Example code

Expand Down
4 changes: 2 additions & 2 deletions doc/concepts/moveit_task_constructor/wrappers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ The ``ComputeIK`` is a wrapper for any pose generator stage to compute the inver
- void setMinSolutionDistance(double distance)
- Minimum distance between separate IK solutions for the same target. Default is 0.1.

`API doc for ComputeIK <https://ros-planning.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1ComputeIK.html>`_.
`API doc for ComputeIK <https://moveit.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1ComputeIK.html>`_.

Code Example

Expand Down Expand Up @@ -78,7 +78,7 @@ PredicateFilter
- void setIgnoreFilter(bool ignore)
- Ignore predicate and forward all solutions

`API doc for PredicateFilter <https://ros-planning.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1PredicateFilter.html>`_.
`API doc for PredicateFilter <https://moveit.github.io/moveit_task_constructor/_static/classmoveit_1_1task__constructor_1_1stages_1_1PredicateFilter.html>`_.

Code Example

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ Low Level Controllers
=====================
MoveIt typically publishes manipulator motion commands to a `JointTrajectoryController <https://github.com/ros-controls/ros2_controllers/tree/master/joint_trajectory_controller>`_. This tutorial assumes MoveGroup is being used to control the robot rather than MoveItCpp or MoveIt Servo. A minimal setup is as follows:

#. A YAML config file. As best practice, we suggest naming this :code:`moveit_controllers.yaml`. It tells MoveIt which controllers are available, which joints are associated with each, and the MoveIt controller interface type (:code:`FollowJointTrajectory` or :code:`GripperCommand`). `Example controller config file <https://github.com/ros-planning/moveit_resources/blob/ros2/panda_moveit_config/config/moveit_controllers.yaml>`_.
#. A YAML config file. As best practice, we suggest naming this :code:`moveit_controllers.yaml`. It tells MoveIt which controllers are available, which joints are associated with each, and the MoveIt controller interface type (:code:`FollowJointTrajectory` or :code:`GripperCommand`). `Example controller config file <https://github.com/moveit/moveit_resources/blob/ros2/panda_moveit_config/config/moveit_controllers.yaml>`_.

#. A launch file. This launch file must load the :code:`moveit_controllers` yaml file and specify the :code:`moveit_simple_controller_manager/MoveItSimpleControllerManager`. After these yaml files are loaded, they are passed as parameters to the Move Group node. `Example Move Group launch file <https://github.com/ros-planning/moveit_resources/blob/ros2/panda_moveit_config/launch/demo.launch.py>`_.
#. A launch file. This launch file must load the :code:`moveit_controllers` yaml file and specify the :code:`moveit_simple_controller_manager/MoveItSimpleControllerManager`. After these yaml files are loaded, they are passed as parameters to the Move Group node. `Example Move Group launch file <https://github.com/moveit/moveit_resources/blob/ros2/panda_moveit_config/launch/demo.launch.py>`_.

#. Launch the corresponding :code:`ros2_control` JointTrajectoryControllers. This is separate from the MoveIt 2 ecosystem. `Example ros2_control launching <https://github.com/ros-controls/ros2_control_demos>`_. Each JointTrajectoryController provides an action interface. Given the yaml file above, MoveIt automatically connects to this action interface.

#. Note: it is not required to use :code:`ros2_control` for your robot. You could write a proprietary action interface. In practice, 99% of users choose :code:`ros2_control`.

MoveIt Controller Managers
--------------------------
The base class of controller managers is called MoveItControllerManager (MICM). One of the child classes of MICM is known as Ros2ControlManager (R2CM) and it is the best way to interface with ros2_control. The R2CM can parse the joint names in a trajectory command coming from MoveIt and activate the appropriate controllers. For example, it can automatically switch between controlling two manipulators in a single joint group at once to a single manipulator. To use a R2CM, just set :code:`moveit_manage_controllers = true` in the launch file. `Example R2CM launch file <https://github.com/ros-planning/moveit_resources/blob/ros2/panda_moveit_config/launch/demo.launch.py>`_.
The base class of controller managers is called MoveItControllerManager (MICM). One of the child classes of MICM is known as Ros2ControlManager (R2CM) and it is the best way to interface with ros2_control. The R2CM can parse the joint names in a trajectory command coming from MoveIt and activate the appropriate controllers. For example, it can automatically switch between controlling two manipulators in a single joint group at once to a single manipulator. To use a R2CM, just set :code:`moveit_manage_controllers = true` in the launch file. `Example R2CM launch file <https://github.com/moveit/moveit_resources/blob/ros2/panda_moveit_config/launch/demo.launch.py>`_.

MoveIt Controller Interfaces
----------------------------
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Hand-Eye Calibration
====================
The `MoveIt Calibration <http://www.github.com/ros-planning/moveit_calibration>`_ package provides plugins and a graphical
The `MoveIt Calibration <http://www.github.com/moveit/moveit_calibration>`_ package provides plugins and a graphical
interface for conducting a hand-eye camera calibration. Calibrations can be performed for cameras rigidly mounted in the
robot base frame (eye-to-hand) and for cameras mounted to the end effector (eye-in-hand). This tutorial presents the
eye-in-hand case.
Expand All @@ -28,7 +28,7 @@ Clone and Build the MoveIt Calibration Repo
-------------------------------------------
In your workspace ``src`` directory, clone MoveIt Calibration::

git clone [email protected]:ros-planning/moveit_calibration.git
git clone [email protected]:moveit/moveit_calibration.git

Then, make sure you have the appropriate dependencies and build the package::

Expand Down
2 changes: 1 addition & 1 deletion doc/examples/ikfast/ikfast_tutorial.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ Install the MoveIt IKFast package either from Debian packages or from source.

Inside your catkin workspace's ``./src`` directory: ::

git clone https://github.com/ros-planning/moveit.git
git clone https://github.com/moveit/moveit.git
rosdep install -y --from-paths . --ignore-src --rosdistro ${ROS_DISTRO}
catkin build

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"* A motion planning example\n",
"* A teleoperation example\n",
"\n",
"If you have suggestions or feedback for this tutorial please post an issue on GitHub (https://github.com/ros-planning/moveit2_tutorials) and tag @peterdavidfagan."
"If you have suggestions or feedback for this tutorial please post an issue on GitHub (https://github.com/moveit/moveit2_tutorials) and tag @peterdavidfagan."
]
},
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ The cache size can be controlled with an absolute cap (``max_cache_size``) or wi
- *cached_ik_kinematics_plugin/CachedTRACKinematicsPlugin*: a wrapper for the `TRAC IK solver <https://bitbucket.org/traclabs/trac_ik>`_. This solver is only available if the TRAC IK kinematics plugin is detected at compile time.
- *cached_ik_kinematics_plugin/CachedUR5KinematicsPlugin*: a wrapper for the analytic IK solver for the UR5 arm (similar solvers exist for the UR3 and UR10). This is only for illustrative purposes; the caching just adds extra overhead to the solver.

See the `Cached IK README <https://github.com/ros-planning/moveit/blob/master/moveit_kinematics/cached_ik_kinematics_plugin/README.md>`_ for more information.
See the `Cached IK README <https://github.com/moveit/moveit/blob/master/moveit_kinematics/cached_ik_kinematics_plugin/README.md>`_ for more information.

Position Only IK
----------------
Expand Down
2 changes: 1 addition & 1 deletion doc/examples/mobile_base_arm/mobile_base_arm_tutorial.rst
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ This's used to config the planar joint model, it can have two values:
min_translational_distance
++++++++++++++++++++++++++

If the distance between two states is less than ``min_translational_distance`` the motion will be pure rotation, the default value is ``1e-5``, for more info see `computeTurnDriveTurnGeometry <https://github.com/ros-planning/moveit2/blob/main/moveit_core/robot_model/src/planar_joint_model.cpp#L149>`_ for why this's needed
If the distance between two states is less than ``min_translational_distance`` the motion will be pure rotation, the default value is ``1e-5``, for more info see `computeTurnDriveTurnGeometry <https://github.com/moveit/moveit2/blob/main/moveit_core/robot_model/src/planar_joint_model.cpp#L149>`_ for why this's needed

.. code-block:: xml
Expand Down
Loading

0 comments on commit 99b4203

Please sign in to comment.