Skip to content

Commit e5c9a4e

Browse files
authored
Merge branch 'moveit:main' into patch-3
2 parents 6b9bcc6 + f82cdcd commit e5c9a4e

File tree

1,205 files changed

+58682
-39132
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,205 files changed

+58682
-39132
lines changed

.github/mergify.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,15 @@ pull_request_rules:
1717
branches:
1818
- iron
1919

20+
- name: backport to jazzy at reviewers discretion
21+
conditions:
22+
- base=main
23+
- "label=backport-jazzy"
24+
actions:
25+
backport:
26+
branches:
27+
- jazzy
28+
2029
- name: ask to resolve conflict
2130
conditions:
2231
- conflict

.github/workflows/ci.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ jobs:
2828
ROS_DISTRO: humble
2929
- IMAGE: jazzy-ci
3030
ROS_DISTRO: jazzy
31-
- IMAGE: jazzy-ci-testing
32-
ROS_DISTRO: jazzy
3331
env:
3432
# TODO(andyz): When this clang-tidy issue is fixed, remove -Wno-unknown-warning-option
3533
# https://stackoverflow.com/a/41673702
@@ -41,7 +39,7 @@ jobs:
4139
moveit2.repos
4240
$(f="moveit2_$(sed 's/-.*$//' <<< "${{ matrix.env.IMAGE }}").repos"; test -r $f && echo $f)
4341
# Pull any updates to the upstream workspace (after restoring it from cache)
44-
AFTER_SETUP_UPSTREAM_WORKSPACE: vcs pull $BASEDIR/upstream_ws/src
42+
AFTER_SETUP_UPSTREAM_WORKSPACE: apt remove -y ros-$ROS_DISTRO-geometric-shapes; vcs pull $BASEDIR/upstream_ws/src
4543
AFTER_SETUP_DOWNSTREAM_WORKSPACE: vcs pull $BASEDIR/downstream_ws/src
4644
# Clear the ccache stats before and log the stats after the build
4745
AFTER_SETUP_CCACHE: ccache --zero-stats --max-size=10.0G

.github/workflows/docker.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
strategy:
2020
fail-fast: false
2121
matrix:
22-
ROS_DISTRO: [rolling, jazzy]
22+
ROS_DISTRO: [rolling]
2323
runs-on: ubuntu-latest
2424
permissions:
2525
packages: write
@@ -72,7 +72,7 @@ jobs:
7272
strategy:
7373
fail-fast: false
7474
matrix:
75-
ROS_DISTRO: [rolling, jazzy]
75+
ROS_DISTRO: [rolling]
7676
runs-on: ubuntu-latest
7777
permissions:
7878
packages: write
@@ -128,7 +128,7 @@ jobs:
128128
strategy:
129129
fail-fast: false
130130
matrix:
131-
ROS_DISTRO: [rolling, jazzy]
131+
ROS_DISTRO: [rolling]
132132
runs-on: ubuntu-latest
133133
permissions:
134134
packages: write

.github/workflows/tutorial_docker.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
strategy:
1717
fail-fast: false
1818
matrix:
19-
ROS_DISTRO: [rolling, jazzy]
19+
ROS_DISTRO: [rolling]
2020
runs-on: ubuntu-latest
2121
permissions:
2222
packages: write

MIGRATION.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
API changes in MoveIt releases
44

55
## ROS Rolling
6+
- [11/2024] All MoveIt 2 headers have been updated to use the .hpp extension. .h headers are now autogenerated with a deprecation warning, and may be removed in future releases. Please update your imports to use the .hpp headers.
67
- [11/2024] Added flags to control padding to CollisionRequest. This change deprecates PlanningScene::checkCollisionUnpadded(..) functions. Please use PlanningScene::checkCollision(..) with a req.pad_environment_collisions = false;
78

89
- [12/2023] `trajectory_processing::Path` and `trajectory_processing::Trajectory` APIs have been updated to prevent misuse.

moveit/CHANGELOG.rst

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22
Changelog for package moveit
33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44

5+
2.12.0 (2024-11-29)
6+
-------------------
7+
* Enhancement/use hpp for headers (`#3113 <https://github.com/ros-planning/moveit2/issues/3113>`_)
8+
* Contributors: Tom Noble
9+
510
2.11.0 (2024-09-16)
611
-------------------
712

moveit/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
44
<name>moveit</name>
5-
<version>2.11.0</version>
5+
<version>2.12.0</version>
66
<description>Meta package that contains all essential packages of MoveIt 2</description>
77
<maintainer email="[email protected]">Henning Kayser</maintainer>
88
<maintainer email="[email protected]">Tyler Weaver</maintainer>
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
#!/usr/bin/env python3
2+
# -*- coding: utf-8 -*-
3+
4+
# Copyright 2024 Tom Noble.
5+
#
6+
# Redistribution and use in source and binary forms, with or without
7+
# modification, are permitted provided that the following conditions are met:
8+
#
9+
# * Redistributions of source code must retain the above copyright
10+
# notice, this list of conditions and the following disclaimer.
11+
#
12+
# * Redistributions in binary form must reproduce the above copyright
13+
# notice, this list of conditions and the following disclaimer in the
14+
# documentation and/or other materials provided with the distribution.
15+
#
16+
# * Neither the name of the copyright holder nor the names of its
17+
# contributors may be used to endorse or promote products derived from
18+
# this software without specific prior written permission.
19+
#
20+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
24+
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27+
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28+
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29+
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30+
# POSSIBILITY OF SUCH DAMAGE.
31+
32+
# Author: Tom Noble
33+
34+
import sys
35+
import argparse
36+
import logging
37+
from typing import List, Tuple
38+
from pathlib import Path
39+
40+
41+
DISCLAIMER = """
42+
/*********************************************************************
43+
* All MoveIt 2 headers have been updated to use the .hpp extension.
44+
*
45+
* .h headers are now autogenerated via {},
46+
* and will import the corresponding .hpp with a deprecation warning.
47+
*
48+
* imports via .h files may be removed in future releases, so please
49+
* modify your imports to use the corresponding .hpp imports.
50+
*
51+
* See https://github.com/moveit/moveit2/pull/3113 for extra details.
52+
*********************************************************************/
53+
"""
54+
55+
56+
class NoIncludeGuard(Exception):
57+
ERROR = "No include guard found in {}.hpp. Unable to generate pretext."
58+
59+
def __init__(self, file: Path):
60+
super().__init__(self.ERROR.format(file))
61+
62+
63+
class NoIncludeDirectory(Exception):
64+
ERROR = "No include directory found for {}.hpp. Unable to generate relative .hpp include"
65+
66+
def __init__(self, file: Path):
67+
super().__init__(self.ERROR.format(file))
68+
69+
70+
class HppFile:
71+
def __init__(self, path: Path):
72+
self.path = path
73+
self.guard = "#pragma once"
74+
self.pretext = self.pretext()
75+
self.include = self.include()
76+
77+
def drop_data_after(self, data: str, match: str):
78+
return data[: data.find(match) + len(match)]
79+
80+
def read(self) -> str:
81+
data = open(self.path, "r").read()
82+
contains_guard = self.guard in data
83+
if not contains_guard:
84+
raise NoIncludeGuard(self.path)
85+
return data
86+
87+
def pretext(self) -> str:
88+
data = self.read()
89+
return self.drop_data_after(data, self.guard)
90+
91+
def include(self) -> str:
92+
ends_with_include = lambda p: str(p).endswith("include")
93+
include_paths = [p for p in self.path.parents if ends_with_include(p)]
94+
if not include_paths:
95+
raise NoIncludeDirectory(self.path)
96+
relative_import = self.path.relative_to(include_paths[0])
97+
return f"#include <{relative_import}>"
98+
99+
100+
class DeprecatedHeader:
101+
def __init__(self, hpp: HppFile):
102+
self.hpp = hpp
103+
self.path = hpp.path.with_suffix(".h")
104+
self.warn = '#pragma message(".h header is obsolete. Please use the .hpp header instead.")'
105+
self.contents = self.contents()
106+
107+
def contents(self) -> str:
108+
disclaimer = DISCLAIMER.format(Path(__file__).name).rstrip("\n")
109+
items = [disclaimer, self.hpp.pretext, self.warn, self.hpp.include]
110+
return "\n".join(items) + "\n"
111+
112+
113+
class HeaderSummary:
114+
def __init__(self, n_processed_hpps: int, bad_hpps: List[str]):
115+
self.n_processed_hpps = n_processed_hpps
116+
self.bad_hpps = bad_hpps
117+
118+
def were_all_hpps_processed(self) -> bool:
119+
return len(self.bad_hpps) == 0
120+
121+
def __repr__(self) -> str:
122+
summary = f"Can generate {self.n_processed_hpps} .h files."
123+
if self.bad_hpps:
124+
summary += f" Cannot generate {len(self.bad_hpps)} .h files:\n\n"
125+
summary += "\n".join([f"❌ {hpp}" for hpp in self.bad_hpps])
126+
summary += "\n"
127+
return summary
128+
129+
130+
class DeprecatedHeaderGenerator:
131+
def __init__(self, hpp_paths: List[str]):
132+
self.hpp_paths = hpp_paths
133+
self.processed_hpps = []
134+
self.bad_hpps = []
135+
136+
def __process_hpp(self, hpp: str) -> None:
137+
try:
138+
self.processed_hpps.append(HppFile(hpp))
139+
except (NoIncludeDirectory, NoIncludeGuard) as e:
140+
self.bad_hpps.append(str(hpp))
141+
142+
def process_all_hpps(self) -> HeaderSummary:
143+
print(f"\nProcessing {len(self.hpp_paths)} .hpp files...")
144+
_ = [self.__process_hpp(hpp) for hpp in self.hpp_paths]
145+
return HeaderSummary(len(self.processed_hpps), self.bad_hpps)
146+
147+
def create_h_files(self) -> None:
148+
print(f"Proceeding to generate {len(self.processed_hpps)} .h files...")
149+
h_files = [DeprecatedHeader(hpp) for hpp in self.processed_hpps]
150+
_ = [open(h.path, "w").write(h.contents) for h in h_files]
151+
152+
153+
if __name__ == "__main__":
154+
parser = argparse.ArgumentParser()
155+
# TODO: Add argument for skipping private headers
156+
parser.add_argument("--apply", action="store_true", help="Generates the .h files")
157+
args = parser.parse_args()
158+
generator = DeprecatedHeaderGenerator(list(Path.cwd().rglob("*.hpp")))
159+
summary = generator.process_all_hpps()
160+
print(summary)
161+
if args.apply and not summary.were_all_hpps_processed():
162+
args.apply = input("Continue? (y/n): ").lower() == "y"
163+
if args.apply:
164+
generator.create_h_files()
165+
else:
166+
print("Skipping file generation...")
167+
print("Done.\n")

moveit_common/CHANGELOG.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
Changelog for package moveit_common
33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44

5+
2.12.0 (2024-11-29)
6+
-------------------
7+
58
2.11.0 (2024-09-16)
69
-------------------
710

moveit_common/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
44
<name>moveit_common</name>
5-
<version>2.11.0</version>
5+
<version>2.12.0</version>
66
<description>Common support functionality used throughout MoveIt</description>
77
<maintainer email="[email protected]">Henning Kayser</maintainer>
88
<maintainer email="[email protected]">Tyler Weaver</maintainer>

moveit_configs_utils/CHANGELOG.rst

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
Changelog for package moveit_configs_utils
33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44

5+
2.12.0 (2024-11-29)
6+
-------------------
7+
* Added joint limits to rviz launch file. (`#3091 <https://github.com/ros-planning/moveit2/issues/3091>`_)
8+
* Switch to get for Dict lookup to prevent KeyError (`#3043 <https://github.com/ros-planning/moveit2/issues/3043>`_)
9+
* fix move_group_capabilities usage (`#3018 <https://github.com/ros-planning/moveit2/issues/3018>`_)
10+
* Contributors: Brendan Burns, Matthew Elwin, Michael Ferguson
11+
512
2.11.0 (2024-09-16)
613
-------------------
714

moveit_configs_utils/package.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
33
<package format="3">
44
<name>moveit_configs_utils</name>
5-
<version>2.11.0</version>
5+
<version>2.12.0</version>
66
<description>Python library for loading moveit config parameters in launch files</description>
77
<maintainer email="[email protected]">MoveIt Release Team</maintainer>
88
<license>BSD-3-Clause</license>

moveit_configs_utils/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setup(
77
name=package_name,
8-
version="2.11.0",
8+
version="2.12.0",
99
packages=find_packages(),
1010
data_files=[
1111
("share/ament_index/resource_index/packages", ["resource/" + package_name]),

moveit_core/CHANGELOG.rst

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,22 @@
22
Changelog for package moveit_core
33
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44

5+
2.12.0 (2024-11-29)
6+
-------------------
7+
* Enhancement/use hpp for headers (`#3113 <https://github.com/ros-planning/moveit2/issues/3113>`_)
8+
* Removes unused deprecation.h file (`#3128 <https://github.com/ros-planning/moveit2/issues/3128>`_)
9+
* Add use_padding flag + deprecate checkCollisionUnpadded() functions (`#3088 <https://github.com/ros-planning/moveit2/issues/3088>`_)
10+
* Fixes flaky RobotState test (`#3105 <https://github.com/ros-planning/moveit2/issues/3105>`_)
11+
* Allow RobotState::setFromIK to work with subframes (`#3077 <https://github.com/ros-planning/moveit2/issues/3077>`_)
12+
* Fix jacobian calculation (`#3069 <https://github.com/ros-planning/moveit2/issues/3069>`_)
13+
* Port fixes for handling orientation constraints (`#3052 <https://github.com/ros-planning/moveit2/issues/3052>`_)
14+
* Fix createTrajectoryMessage (`#3064 <https://github.com/ros-planning/moveit2/issues/3064>`_)
15+
* Fix flipped comments in `joint_model.h` (`#3047 <https://github.com/ros-planning/moveit2/issues/3047>`_)
16+
* add helper function to load robot from package name + urdf + srdf (`#3039 <https://github.com/ros-planning/moveit2/issues/3039>`_)
17+
* Fix Cartesian interpolation (`#3020 <https://github.com/ros-planning/moveit2/issues/3020>`_)
18+
* Update urdf/model.h -> urdf/model.hpp (`#3003 <https://github.com/ros-planning/moveit2/issues/3003>`_)
19+
* Contributors: Mario Prats, Paul Gesel, Robert Haschke, Sebastian Castro, Sebastian Jahr, Tom Noble
20+
521
2.11.0 (2024-09-16)
622
-------------------
723
* Fix RobotState::getRigidlyConnectedParentLinkModel() (`#2985 <https://github.com/moveit/moveit2/issues/2985>`_)

moveit_core/collision_detection/include/moveit/collision_detection/allvalid/collision_detector_allocator_allvalid.h

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
1+
2+
/*********************************************************************
3+
* All MoveIt 2 headers have been updated to use the .hpp extension.
4+
*
5+
* .h headers are now autogenerated via create_deprecated_headers.py,
6+
* and will import the corresponding .hpp with a deprecation warning.
7+
*
8+
* imports via .h files may be removed in future releases, so please
9+
* modify your imports to use the corresponding .hpp imports.
10+
*
11+
* See https://github.com/moveit/moveit2/pull/3113 for extra details.
12+
*********************************************************************/
113
/*********************************************************************
214
* Software License Agreement (BSD License)
315
*
@@ -35,19 +47,5 @@
3547
/* Author: Acorn Pooley, Ioan Sucan */
3648

3749
#pragma once
38-
39-
#include <moveit/collision_detection/collision_detector_allocator.h>
40-
#include <moveit/collision_detection/allvalid/collision_env_allvalid.h>
41-
42-
#include <moveit_collision_detection_export.h>
43-
44-
namespace collision_detection
45-
{
46-
/** \brief An allocator for AllValid collision detectors */
47-
class MOVEIT_COLLISION_DETECTION_EXPORT CollisionDetectorAllocatorAllValid
48-
: public CollisionDetectorAllocatorTemplate<CollisionEnvAllValid, CollisionDetectorAllocatorAllValid>
49-
{
50-
public:
51-
static const std::string NAME; // defined in collision_env_allvalid.cpp
52-
};
53-
} // namespace collision_detection
50+
#pragma message(".h header is obsolete. Please use the .hpp header instead.")
51+
#include <moveit/collision_detection/allvalid/collision_detector_allocator_allvalid.hpp>

0 commit comments

Comments
 (0)