Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge develop into master #1028

Merged
merged 105 commits into from
Feb 18, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
82da526
Merge pull request #780 from cyberbotics/sync-master-006a96f
ygoumaz Jun 20, 2023
a07e4af
Sync submodule (#784)
github-actions[bot] Jun 22, 2023
4274267
Merge branch 'develop' into sync-master-76dfdf2
ygoumaz Jun 26, 2023
f135da9
Merge pull request #786 from cyberbotics/sync-master-76dfdf2
ygoumaz Jun 26, 2023
5b3453f
Merge branch 'develop' into sync-master-ff0d63a
ygoumaz Jun 27, 2023
b68537e
Merge pull request #790 from cyberbotics/sync-master-ff0d63a
ygoumaz Jun 27, 2023
ff4ca93
Sync submodule
Jun 29, 2023
13e8015
Merge branch 'develop' into sync-master-5bdb813
ygoumaz Jun 29, 2023
e081c2d
Merge pull request #797 from cyberbotics/sync-develop-ed75ec0c4290589…
omichel Jun 29, 2023
71a0bcc
Merge branch 'develop' into sync-master-5bdb813
ygoumaz Jun 29, 2023
f1edfd8
Merge pull request #798 from cyberbotics/sync-master-5bdb813
ygoumaz Jun 29, 2023
f7078d2
Merge branch 'develop' into sync-master-e3299e4
ygoumaz Jun 30, 2023
45d8eef
Merge pull request #802 from cyberbotics/sync-master-e3299e4
ygoumaz Jun 30, 2023
7f84a5c
fix wbt (#803)
ygoumaz Jun 30, 2023
14a22ad
Merge master into develop (#806)
github-actions[bot] Jul 4, 2023
d0ba360
Merge branch 'develop' into sync-master-3f15289
omichel Jul 5, 2023
ba38209
Update CHANGELOG.rst
omichel Jul 5, 2023
264e4f6
Merge pull request #808 from cyberbotics/sync-master-3f15289
ygoumaz Jul 5, 2023
e3517c0
update develop branch (#813)
ygoumaz Jul 6, 2023
edc0e06
Sync submodule
Jul 7, 2023
9870f1b
Merge branch 'develop' into sync-master-fdf3111
ygoumaz Jul 7, 2023
fe164e4
Merge pull request #817 from cyberbotics/sync-master-fdf3111
ygoumaz Jul 7, 2023
13a0d2e
Merge branch 'develop' into sync-develop-8079d6f6185f99dac9b6fc3507a7…
ygoumaz Jul 7, 2023
2621c43
Merge pull request #816 from cyberbotics/sync-develop-8079d6f6185f99d…
omichel Jul 7, 2023
85e91ef
Merge branch 'develop' into sync-master-fa0c82e
omichel Jul 10, 2023
cd860ba
Merge pull request #820 from cyberbotics/sync-master-fa0c82e
omichel Jul 10, 2023
540bb88
Merge branch 'develop' into sync-master-549d842
ygoumaz Jul 12, 2023
411be66
Sync submodule (#825)
github-actions[bot] Jul 12, 2023
f022fba
Merge branch 'develop' into sync-master-549d842
ygoumaz Jul 12, 2023
aadf0f7
Merge pull request #826 from cyberbotics/sync-master-549d842
ygoumaz Jul 12, 2023
5793c6f
Merge branch 'develop' into sync-master-e8e9e25
ygoumaz Jul 13, 2023
7203ae4
Merge pull request #828 from cyberbotics/sync-master-e8e9e25
ygoumaz Jul 13, 2023
6e74d93
Merge branch 'develop' into sync-master-f8006a5
ygoumaz Jul 18, 2023
a13f089
Merge pull request #832 from cyberbotics/sync-master-f8006a5
ygoumaz Jul 18, 2023
e7ae291
Merge branch 'develop' into sync-master-c7a5f08
ygoumaz Jul 19, 2023
7efd8a6
Merge pull request #836 from cyberbotics/sync-master-c7a5f08
ygoumaz Jul 19, 2023
ea19ede
ROSbot 2R, XL webots_ros2 support (#770)
delihus Aug 2, 2023
f17e13a
Merge branch 'develop' into sync-master-f3045ad
omichel Aug 3, 2023
4f270f7
Merge pull request #840 from cyberbotics/sync-master-f3045ad
omichel Aug 3, 2023
7596ca4
Merge branch 'develop' into sync-master-e5f890e
omichel Aug 11, 2023
4ddf11a
Merge pull request #842 from cyberbotics/sync-master-e5f890e
omichel Aug 11, 2023
4c32c02
Sync submodule
Sep 27, 2023
0f22d5c
Merge pull request #851 from cyberbotics/sync-develop-be022be5009d1d8…
omichel Sep 27, 2023
b8a3575
Sync submodule
Oct 3, 2023
a8f1da6
Merge pull request #855 from cyberbotics/sync-develop-779ffd098ed71db…
omichel Oct 3, 2023
14c8e4e
Merge branch 'develop' into sync-master-b65c5ae
omichel Nov 21, 2023
402761b
Merge pull request #866 from cyberbotics/sync-master-b65c5ae
omichel Nov 21, 2023
8c03af2
Add crazyflie webots packages (#872)
knmcguire Jan 3, 2024
84654c8
Merge branch 'develop' into sync-master-6038a45
omichel Jan 17, 2024
092993e
Merge pull request #884 from cyberbotics/sync-master-6038a45
omichel Jan 17, 2024
16e0330
Sync submodule
Jan 20, 2024
979b1ab
Merge branch 'develop' into sync-master-399a0eb
omichel Jan 21, 2024
b2144be
Merge pull request #886 from cyberbotics/sync-develop-a811190f78a88f4…
omichel Jan 21, 2024
fe6bc0f
Merge branch 'develop' into sync-master-399a0eb
omichel Jan 21, 2024
17c700e
Merge pull request #887 from cyberbotics/sync-master-399a0eb
omichel Jan 22, 2024
6471854
Merge branch 'develop' into sync-master-1812230
omichel Jan 30, 2024
8e0407c
Merge pull request #890 from cyberbotics/sync-master-1812230
omichel Jan 30, 2024
bc2ef9a
Merge branch 'develop' into sync-master-929c45c
omichel Feb 16, 2024
955fd26
Merge pull request #900 from cyberbotics/sync-master-929c45c
omichel Feb 16, 2024
f8b2c18
Merge branch 'develop' into sync-master-97a007f
omichel Feb 21, 2024
1106d6a
Merge pull request #902 from cyberbotics/sync-master-97a007f
omichel Feb 21, 2024
75542b2
Merge branch 'develop' into sync-master-7b0e501
omichel Feb 27, 2024
07f4dba
Merge pull request #904 from cyberbotics/sync-master-7b0e501
omichel Feb 27, 2024
3079eef
Merge branch 'develop' into sync-master-457f111
omichel Mar 15, 2024
96400e7
Merge pull request #912 from cyberbotics/sync-master-457f111
omichel Mar 16, 2024
2a51908
Merge branch 'develop' into sync-master-5f6b408
omichel Mar 26, 2024
f30d5a8
Merge pull request #915 from cyberbotics/sync-master-5f6b408
omichel Mar 26, 2024
3147a05
Merge branch 'develop' into sync-master-997b237
omichel Apr 9, 2024
ff24fa7
Merge pull request #918 from cyberbotics/sync-master-997b237
omichel Apr 9, 2024
e30b65c
Sync submodule
Jun 1, 2024
2642477
Merge pull request #925 from cyberbotics/sync-develop-e2b0a1e530f6071…
omichel Jun 1, 2024
7c68c06
Sync submodule
Jun 24, 2024
acf66b0
Merge pull request #933 from cyberbotics/sync-develop-37d5deb39064b83…
omichel Jun 24, 2024
a38be99
Merge branch 'develop' into sync-master-9a4c8d9
omichel Jun 24, 2024
3e67cac
Merge pull request #934 from cyberbotics/sync-master-9a4c8d9
omichel Jun 24, 2024
b0bcb72
Merge branch 'develop' into sync-master-3286211
omichel Jul 11, 2024
69d6b14
Merge pull request #941 from cyberbotics/sync-master-3286211
omichel Jul 11, 2024
9d2df7c
Sync submodule
Jul 12, 2024
9076c8d
Merge pull request #942 from cyberbotics/sync-develop-840379233529f5a…
omichel Jul 12, 2024
518237e
Merge branch 'develop' into sync-master-f137797
omichel Jul 12, 2024
a309abd
Merge pull request #943 from cyberbotics/sync-master-f137797
omichel Jul 12, 2024
4ea26c5
Sync submodule
Jul 23, 2024
74db63e
Merge branch 'develop' into sync-master-4448c16
omichel Jul 23, 2024
bae1a16
Merge pull request #947 from cyberbotics/sync-master-4448c16
omichel Jul 23, 2024
ff3a0e2
Merge branch 'develop' into sync-develop-77ecccc82338c06cb640857709fe…
omichel Jul 23, 2024
d5a012d
Merge pull request #946 from cyberbotics/sync-develop-77ecccc82338c06…
omichel Jul 23, 2024
7245ed9
Merge branch 'develop' into sync-master-0e70d81
lukicdarkoo Aug 1, 2024
a7e050d
Sync submodule
Aug 4, 2024
2c0bb97
Merge pull request #954 from cyberbotics/sync-develop-a7596c75fdaf073…
omichel Aug 4, 2024
4d97394
Merge branch 'develop' into sync-master-0e70d81
omichel Aug 4, 2024
71493b2
Merge pull request #952 from cyberbotics/sync-master-0e70d81
omichel Aug 4, 2024
244784f
Merge branch 'develop' into sync-master-e06572d
omichel Aug 5, 2024
4a868f8
Merge pull request #956 from cyberbotics/sync-master-e06572d
omichel Aug 5, 2024
16df1c5
Sync submodule
Aug 7, 2024
32fb482
Merge branch 'develop' into sync-master-950cb03
omichel Aug 7, 2024
67d20f8
Merge pull request #958 from cyberbotics/sync-develop-22c9c8a807c961a…
omichel Aug 7, 2024
58ba66a
Merge branch 'develop' into sync-master-950cb03
omichel Aug 7, 2024
1442d78
Merge pull request #959 from cyberbotics/sync-master-950cb03
omichel Aug 7, 2024
27507c3
Sync submodule
Dec 23, 2024
ac07cd4
Merge branch 'develop' into sync-master-be9c9ce
lukicdarkoo Dec 26, 2024
0b06a79
Merge pull request #1021 from cyberbotics/sync-master-be9c9ce
lukicdarkoo Dec 26, 2024
6893c53
Merge branch 'develop' into sync-develop-21d2782e296090815d417996d84f…
lukicdarkoo Dec 26, 2024
d49bb5e
Merge pull request #1019 from cyberbotics/sync-develop-21d2782e296090…
lukicdarkoo Dec 26, 2024
d1e09f1
Fix Webots R2025a compability (#1022)
lukicdarkoo Dec 27, 2024
de89a67
Fix CI (develop branch) (#1029)
lukicdarkoo Feb 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
35 changes: 14 additions & 21 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ ARG DOCKERUSER=
ARG DOCKERUSERCOMMENT=
ARG ROS_DISTRO=jazzy
ARG ROS_TESTING=0
ARG WEBOTS_VERSION=2023b
ARG WEBOTS_VERSION=2025a

RUN if [ "${ROS_DISTRO}" != "humble" ]; then userdel -r ubuntu; fi
RUN useradd -d /${DOCKERUSER} -m \
Expand All @@ -19,8 +19,9 @@ RUN useradd -d /${DOCKERUSER} -m \
usermod -a -G video ${DOCKERUSER} && \
usermod -a -G dialout ${DOCKERUSER}

RUN apt update && apt install -y wget && \
wget https://github.com/cyberbotics/webots/releases/download/R${WEBOTS_VERSION}/webots_${WEBOTS_VERSION}_amd64.deb -O /tmp/webots.deb && \
RUN echo $WEBOTS_VERSION | grep -q "nightly" && export WEBOTS_URL="https://github.com/cyberbotics/webots/releases/download/${WEBOTS_VERSION}_amd64.deb" || export WEBOTS_URL="https://github.com/cyberbotics/webots/releases/download/R${WEBOTS_VERSION}/webots_${WEBOTS_VERSION}_amd64.deb" && \
apt update && apt install -y wget && \
wget ${WEBOTS_URL} -O /tmp/webots.deb && \
apt install -y /tmp/webots.deb && \
rm /tmp/webots.deb

Expand All @@ -29,27 +30,19 @@ RUN [ "$ROS_TESTING" -eq "1" ] && echo "deb [ signed-by=/usr/share/keyrings/ros2
RUN apt-get update && apt-get install -y \
ros-${ROS_DISTRO}-vision-msgs \
ros-${ROS_DISTRO}-xacro \
ros-${ROS_DISTRO}-backward-ros \
ros-${ROS_DISTRO}-control-msgs \
ros-${ROS_DISTRO}-ackermann-msgs \
ros-${ROS_DISTRO}-realtime-tools \
ros-${ROS_DISTRO}-kinematics-interface \
ros-${ROS_DISTRO}-kinematics-interface-kdl \
ros-${ROS_DISTRO}-control-toolbox \
ros-${ROS_DISTRO}-ros2-control \
ros-${ROS_DISTRO}-ros2-controllers \
ros-${ROS_DISTRO}-robot-localization \
ros-${ROS_DISTRO}-laser-filters \
ros-${ROS_DISTRO}-tf-transformations \
ros-${ROS_DISTRO}-rmw-cyclonedds-cpp \
gdb \
git

# Comment for compiled ros2_control
RUN apt-get update && apt-get install -y \
ros-${ROS_DISTRO}-ros2-control \
ros-${ROS_DISTRO}-ros2-controllers

# Uncomment for compiled ros2_control
# RUN git clone --branch=${ROS_DISTRO} https://github.com/ros-controls/ros2_control.git /${DOCKERUSER}/ros2_libs_ws/src/ros2_control && \
# git clone --branch=${ROS_DISTRO} https://github.com/ros-controls/ros2_controllers.git /${DOCKERUSER}/ros2_libs_ws/src/ros2_controllers && \
# . /opt/ros/humble/setup.sh && \
# cd /${DOCKERUSER}/ros2_libs_ws && \
# colcon build --symlink-install
# HOTFIX: https://github.com/ros-controls/ros2_control/pull/1960
RUN [ "${ROS_DISTRO}" = "humble" ] && wget -O /tmp/hotfix.deb http://snapshots.ros.org/humble/2024-08-28/ubuntu/pool/main/r/ros-humble-hardware-interface/ros-humble-hardware-interface_2.43.0-1jammy.20240823.145349_amd64.deb && \
apt install -y --allow-downgrades /tmp/hotfix.deb && \
rm -f /tmp/hotfix.deb || true

COPY ./docker/bashrc /tmp/bashrc
COPY ./docker/webots.conf /${DOCKERUSER}/.config/Cyberbotics/Webots-R${WEBOTS_VERSION}.conf
Expand Down
12 changes: 6 additions & 6 deletions docker/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ BASENAME:=webots_ros2
DOCKERUSERCOMMENT:="Cyberbotics"
ROS_DISTRO?=jazzy
ROS_TESTING?=0
WEBOTS_VERSION?=2023b
WEBOTS_VERSION?=2025a

build:
echo "ROS_TESTING=${ROS_TESTING}"
docker build ${ROOT_DIR} \
-f ${ROOT_DIR}/docker/Dockerfile \
-t ${BASENAME}-image ${DOCKER_ARGS} \
-t ${BASENAME} ${DOCKER_ARGS} \
--build-arg UID=${UID} \
--build-arg DOCKERUSER=${DOCKERUSER} \
--build-arg DOCKERUSERCOMMENT=${DOCKERUSERCOMMENT} \
Expand All @@ -21,12 +21,12 @@ build:
--build-arg ROS_DISTRO=${ROS_DISTRO}

run:
@docker container rm -f ${BASENAME}-container
@docker container rm -f ${BASENAME}
docker run \
--net=host \
--ipc=host \
--cap-add SYS_ADMIN \
--name ${BASENAME}-container \
--name ${BASENAME} \
--privileged \
--restart unless-stopped \
-e NVIDIA_DRIVER_CAPABILITIES=all ${NVIDIA_GPU} \
Expand All @@ -37,8 +37,8 @@ run:
-v ${ROOT_DIR}:/${DOCKERUSER}/ros2_ws/src/${BASENAME} \
-v /dev:/dev:rw \
--entrypoint bash \
-d -it ${BASENAME}-image
-d -it ${BASENAME}


exec:
docker exec -it ${BASENAME}-container bash
docker exec -it ${BASENAME} bash
10 changes: 9 additions & 1 deletion docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,18 @@ curl -sSL https://get.docker.com | sh && sudo usermod -aG docker $USER

You need to build & run the container only the first time:
```bash
ROS_DISTRO=jazzy ROS_TESTING=1 WEBOTS_VERSION=2023b make build run exec
ROS_DISTRO=jazzy ROS_TESTING=0 WEBOTS_VERSION=2025a make build run exec
```

if you want to test a nightly build:
```bash
ROS_DISTRO=jazzy ROS_TESTING=0 WEBOTS_VERSION=nightly_25_12_2024/webots_2025a make build run exec
```

After that, you can just attach to the container with:
```bash
make exec
```

> [!NOTE]
> In case you get an error something like `qt.qpa.xcb: could not connect to display :0` then please run `xhost local:root` on the host.
1 change: 1 addition & 0 deletions docker/bashrc
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ alias teleop='ros2 run teleop_twist_keyboard teleop_twist_keyboard --ros-args -p
# For debugging
export WEBOTS_HOME=/usr/local/webots
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/cyberbotics/ros2_ws/src/webots_ros2/webots_ros2_driver/webots/lib/controller
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
17 changes: 7 additions & 10 deletions scripts/ci_after_init.bash
Original file line number Diff line number Diff line change
Expand Up @@ -41,17 +41,14 @@ fi

# TODO: Revert once the https://github.com/ros-planning/navigation2/issues/3033 issue is fixed.
# Fast-DDS is not working properly with the Nav2 package on Humble and Iron. Using Cyclone DDS instead.
if [[ "${ROS_DISTRO}" != "rolling" ]]; then
apt install -y ros-${ROS_DISTRO}-rmw-cyclonedds-cpp
fi
apt install -y ros-${ROS_DISTRO}-rmw-cyclonedds-cpp

# Setup Qt plugins for RViz (can be used once RViz does not randomly crash anymore in GitHub CI).
#export QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins

# export QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins

# Fixes:
# MESA: error: ZINK: failed to choose pdev
# 2024-07-27T19:23:20.1063344Z [webots-4] glx: failed to create drisw screen
if [[ "${ROS_DISTRO}" == "rolling" ]]; then
apt-get install -y libqt5quickcontrols2-5 qtquickcontrols2-5-dev
# HOTFIX: https://github.com/ros-controls/ros2_control/pull/1960
if [[ "${ROS_DISTRO}" == "humble" ]]; then
wget -O /tmp/hotfix.deb http://snapshots.ros.org/humble/2024-08-28/ubuntu/pool/main/r/ros-humble-hardware-interface/ros-humble-hardware-interface_2.43.0-1jammy.20240823.145349_amd64.deb && \
apt install -y --allow-downgrades /tmp/hotfix.deb && \
rm -f /tmp/hotfix.deb
fi
8 changes: 3 additions & 5 deletions scripts/ci_before_init_embed.bash
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

ROS_DISTRO=$1

export TEST_WITH_WEBOTS_NIGTHLY=0
export WEBOTS_RELEASE_VERSION=2023b
export TEST_WITH_WEBOTS_NIGTHLY=1
export WEBOTS_RELEASE_VERSION=2025a
export WEBOTS_OFFSCREEN=1
export CI=1
export DEBIAN_FRONTEND=noninteractive
Expand All @@ -15,6 +15,4 @@ fi

# TODO: Revert once the https://github.com/ros-planning/navigation2/issues/3033 issue is fixed.
# Fast-DDS is not working properly with the Nav2 package on Humble. Using Cyclone DDS instead.
if [[ "${ROS_DISTRO}" != "rolling" ]]; then
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
fi
export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
1 change: 1 addition & 0 deletions tests/sources/test_clang_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ def test_sources_are_clang_format_compliant(self):
'webots_ros2_control',
'webots_ros2_driver',
'webots_ros2_epuck',
'webots_ros2_husarion',
'webots_ros2_importer',
'webots_ros2_mavic',
'webots_ros2_msgs',
Expand Down
5 changes: 4 additions & 1 deletion tests/sources/test_pep8.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,10 @@
skippedDirectories = [
'.git',
'webots_ros2_importer/webots_ros2_importer/urdf2webots/',
'webots_ros2_driver/webots/lib'
'webots_ros2_driver/webots/lib',
'webots_ros2_husarion/rosbot_ros',
'webots_ros2_husarion/rosbot_xl_ros',
'webots_ros2_husarion/ros_components_description'
]
skippedDirectoriesFull = [os.path.join(ROOT_FOLDER, os.path.normpath(path)) for path in skippedDirectories]

Expand Down
5 changes: 5 additions & 0 deletions webots_ros2/CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@
Changelog for package webots_ros2
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

2025.0.0 (2025-XX-XX)
------------------
* Created webots_ros2_husarion package.
* Created webots_ros2_crazyflie package.

2023.1.3 (2024-08-07)
------------------
* Added support for ROS 2 Jazzy.
Expand Down
4 changes: 3 additions & 1 deletion webots_ros2/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format2.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>webots_ros2</name>
<version>2023.1.3</version>
<version>2025.0.0</version>
<description>Interface between Webots and ROS2</description>

<maintainer email="[email protected]">Cyberbotics</maintainer>
Expand All @@ -24,6 +24,8 @@
<exec_depend>webots_ros2_tiago</exec_depend>
<exec_depend>webots_ros2_turtlebot</exec_depend>
<exec_depend>webots_ros2_universal_robot</exec_depend>
<exec_depend>webots_ros2_crazyflie</exec_depend>
<exec_depend>webots_ros2_husarion</exec_depend>

<test_depend>ament_copyright</test_depend>
<test_depend>python3-pytest</test_depend>
Expand Down
2 changes: 1 addition & 1 deletion webots_ros2/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

setup(
name=package_name,
version='2023.1.3',
version='2025.0.0',
packages=[package_name],
data_files=[
('share/' + package_name, ['package.xml']),
Expand Down
2 changes: 1 addition & 1 deletion webots_ros2_control/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>webots_ros2_control</name>
<version>2023.1.3</version>
<version>2025.0.0</version>
<description>ros2_control plugin for Webots</description>
<maintainer email="[email protected]">Cyberbotics</maintainer>
<url type="website">http://wiki.ros.org/webots_ros2</url>
Expand Down
7 changes: 6 additions & 1 deletion webots_ros2_control/src/Ros2Control.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,12 @@ namespace webots_ros2_control {
const rclcpp::Duration dt = rclcpp::Duration::from_seconds(mControlPeriodMs / 1000.0);
mControllerManager->read(mNode->get_clock()->now(), dt);

mControllerManager->update(mNode->get_clock()->now(), dt);
try {
mControllerManager->update(mNode->get_clock()->now(), dt);
} catch (const std::exception &ex) {
RCLCPP_WARN_STREAM(mNode->get_logger(), "Controller manager update failed: " << ex.what());
}

mLastControlUpdateMs = nowMs;

mControllerManager->write(mNode->get_clock()->now(), dt);
Expand Down
72 changes: 72 additions & 0 deletions webots_ros2_crazyflie/launch/robot_launch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
# -*- coding: utf-8 -*-
#
# ........... ____ _ __
# | ,-^-, | / __ )(_) /_______________ _____ ___
# | ( O ) | / __ / / __/ ___/ ___/ __ `/_ / / _ \
# | / ,..´ | / /_/ / / /_/ /__/ / / /_/ / / /_/ __/
# +....... /_____/_/\__/\___/_/ \__,_/ /___/\___/

# MIT License

# Copyright (c) 2023 Bitcraze


"""
file: robot_launch.py

Launch Webots Crazyflie ROS2 driver.

Author: Kimberly McGuire (Bitcraze AB)
"""


import os
import launch
from launch.substitutions import LaunchConfiguration
from launch.actions import DeclareLaunchArgument
from launch.substitutions.path_join_substitution import PathJoinSubstitution
from launch import LaunchDescription
from ament_index_python.packages import get_package_share_directory
from webots_ros2_driver.webots_launcher import WebotsLauncher
from webots_ros2_driver.webots_controller import WebotsController


def generate_launch_description():
package_dir = get_package_share_directory('webots_ros2_crazyflie')
world = LaunchConfiguration('world')

webots = WebotsLauncher(
world=PathJoinSubstitution([package_dir, 'worlds', world]),
ros2_supervisor=True
)

robot_description_path = os.path.join(
package_dir, 'resource', 'crazyflie_webots.urdf')
crazyflie_driver = WebotsController(
robot_name='Crazyflie',
parameters=[
{'robot_description': robot_description_path},
],
respawn=True
)

return LaunchDescription([
DeclareLaunchArgument(
'world',
default_value='crazyflie_apartment.wbt',
description='Choose one of the world files from `/webots_ros2_crazyflie/worlds` directory'
),
webots,
webots._supervisor,
crazyflie_driver,

# This action will kill all nodes once the Webots simulation has exited
launch.actions.RegisterEventHandler(
event_handler=launch.event_handlers.OnProcessExit(
target_action=webots,
on_exit=[
launch.actions.EmitEvent(event=launch.events.Shutdown())
],
)
)
])
23 changes: 23 additions & 0 deletions webots_ros2_crazyflie/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>webots_ros2_crazyflie</name>
<version>2025.0.0</version>
<description>ROS2 package for Crazyflie webots simulator</description>
<maintainer email="[email protected]">Kimberly McGuire (Bitcraze AB)</maintainer>
<license>MIT</license>

<exec_depend>rclpy</exec_depend>
<exec_depend>builtin_interfaces</exec_depend>
<exec_depend>webots_ros2_driver</exec_depend>
<exec_depend>tf_transformations</exec_depend>

<test_depend>ament_copyright</test_depend>
<test_depend>ament_flake8</test_depend>
<test_depend>ament_pep257</test_depend>
<test_depend>python3-pytest</test_depend>

<export>
<build_type>ament_python</build_type>
</export>
</package>
17 changes: 17 additions & 0 deletions webots_ros2_crazyflie/resource/crazyflie_webots.urdf
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?xml version="1.0" ?>
<robot name="Crazyflie Webots">
<webots>
<device reference="gps" type="GPS">
<ros>
<enabled>true</enabled>
<alwaysOn>true</alwaysOn>
</ros>
</device>
<device reference="camera" type="Camera">
<ros>
<topicName>/camera</topicName>
</ros>
</device>
<plugin type="webots_ros2_crazyflie.crazyflie_driver.CrazyflieDriver" />
</webots>
</robot>
Empty file.
4 changes: 4 additions & 0 deletions webots_ros2_crazyflie/setup.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[develop]
script_dir=$base/lib/webots_ros2_crazyflie
[install]
install_scripts=$base/lib/webots_ros2_crazyflie
Loading