Skip to content

Commit 1e5c3d5

Browse files
authored
Merge branch 'develop' into fix-race-condition-in-robot-window-html-test
2 parents 76e13e7 + 35492c2 commit 1e5c3d5

35 files changed

+350
-169
lines changed

.github/workflows/test_suite_linux.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ on:
88
push:
99
tags:
1010
- nightly_*
11-
- R22*
11+
- R20*
1212

1313
concurrency:
1414
group: ${{ github.workflow }}-${{ github.ref }}

docs/blog/Webots-2025-a-release.md

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# Version R2025a Released
2+
3+
<p id="publish-data">By Milos Nikolic - 31st January 2025</p>
4+
<!-- -->
5+
---
6+
7+
It is that time of the year again!
8+
Today we are happy to announce the release of Webots R2025a!
9+
This new version is packed with some new features, improvements and, of course, bug fixes.
10+
11+
Here we are going to present some of the main new features, but for a comprehensive list of changes please refer to the [Change Log](../reference/changelog-r2025.md).
12+
13+
## New Robot
14+
15+
A new robot model has been added to the Webots library.
16+
The Heron USV robot from [Clearpath Robotics](https://clearpathrobotics.com/) is now included in Webots.
17+
18+
%figure "Heron USV"
19+
![Heron USV](images/heron_usv.thumbnail.png)
20+
%end
21+
22+
You can discover this new robot in its demo world under `File > Open Sample World > ocean.wbt/swarm.wbt`.
23+
24+
---
25+
26+
## Introducing the W3D Format
27+
28+
Webots 2025a introduces the new `w3d` format, replacing the outdated `x3d` format to simplify simulation workflows.
29+
30+
This update aligns Webots, WebotsJS, and webots.cloud, offering a unified and consistent export system for various elements like sensors, actuators, and visual components.
31+
32+
The transition also removes VRML support, replacing `vrmlField` with `w3dField` for cleaner integration and simplified export processes.
33+
34+
Additionally, the Surveyor robot is enhanced with tracks and an updated controller. These changes make the Webots ecosystem more robust, scalable, and easier to use.
35+
36+
---
37+
38+
## Improvement to the Supervisor API
39+
40+
A new feature enhances the Supervisor API by allowing direct access to internal fields of a PROTO hierarchy.
41+
42+
This includes new functions such as `wb_supervisor_proto_get_field` and `wb_supervisor_proto_get_number_of_fields`, enabling introspection and manipulation of nested PROTO parameters.
43+
44+
Additionally, several existing API methods were renamed for clarity, minimizing the impact on existing controllers. This improvement streamlines simulation control and introspection, making it easier for developers to interact with complex PROTO structures.
45+
46+
All the changes are available in the [Supervisor API](https://cyberbotics.com/doc/reference/supervisor).
47+
48+
---
49+
50+
## ROS and ROS 2
51+
52+
With the deprecation of the `webots_ros` package and the upcoming End of Life (EOL) for ROS 1 Noetic in [May 2025](https://wiki.ros.org/Distributions), we strongly encourage our users to transition to ROS 2 for a more future-proof and robust robotics experience.
53+
54+
If you still require ROS 1 support with Webots, we have got you covered!
55+
We offer a convenient Docker-based solution. Learn more and get started [here](https://github.com/cyberbotics/webots_ros/tree/develop/docker).
56+
57+
We now support the newly released **ROS 2 Jazzy Jalisco** while dropping support for **ROS 2 Iron Irwini**, ensuring compatibility with the latest ROS 2 developments.
58+
59+
### New Demos
60+
61+
**[Husarion ROSbot and ROSbot XL](https://husarion.com/).**
62+
This demo showcases a versatile robotic platform for autonomous navigation and research.
63+
The demo demonstrates usage of the `robot_localization` package for sensor fusion.
64+
65+
%figure "Husarion ROSbot XL"
66+
![Husarion ROSbot XL](images/ros_husarion_rosbot_xl.thumbnail.jpg)
67+
%end
68+
69+
**[Crazyflie](https://www.bitcraze.io/products/old-products/crazyflie-2-1/).**
70+
A lightweight, agile drone platform designed for indoor exploration.
71+
This demo demonstrates PID control implementation using a Webots ROS 2 plugin.
72+
73+
%figure "Crazyflie"
74+
![Crazyflie](images/ros_crazyflie.thumbnail.jpg)
75+
%end
76+
77+
The packages should be available after ROS 2 sync under name `ros-${ROS_DISTRO}-webots-ros2-crazyflie` and `ros-${ROS_DISTRO}-webots-ros2-husarion`.
78+
79+
For a detailed overview of all the changes, check out the [main changelog](https://github.com/cyberbotics/webots_ros2/blob/master/webots_ros2/CHANGELOG.rst) for the `webots_ros2` package.
80+
81+
---
82+
83+
## Extra Goodies
84+
85+
Webots is now compatible with Ubuntu 24.04 "Noble Numbat" and macOS 14 "Sonoma".
86+
87+
**Go and [download Webots R2025a](https://cyberbotics.com/#download) today, so you do not miss out on all these great new features!**
88+
89+
---
90+
91+
## Acknowledgements
92+
93+
The current release includes contributions from [Daniel Dias](https://github.com/ad-daniel), [Kimberly McGuire](https://github.com/knmcguire), [Chandan Bharadwaj](https://github.com/Chandan-Bharadwaj), [Songyang Zhao](https://github.com/songyangZhao), [ShuffleWire](https://github.com/ShuffleWire), [Jakub Delicat](https://github.com/delihus), [Léo Duggan](https://github.com/Jean-Eudes-le-retour), [nilsjor](https://github.com/nilsjor), [Simon Gene Gottlieb](https://github.com/SGSSGene), [Tsubasaya](https://github.com/Minimerl), [Dean Brettle](https://github.com/brettle), [Chirath Pansilu](https://github.com/ChirathPansilu), [fparat](https://github.com/fparat), [Gaël Écorchard](https://github.com/galou), [Ian Burwell](https://github.com/IanBurwell), [Stephan Kunz](https://github.com/stepkun), [Kode Creer](https://github.com/kodecreer), [Toshiharu Tabuchi](https://github.com/toshiharutf), [Justin Beri](https://github.com/justinberi), [DrakerDG](https://github.com/DrakerDG), [Jolon Behrent](https://github.com/JolonB), [Darko Lukić](https://github.com/lukicdarkoo), [Miloš Nikolić](https://github.com/MNikoliCC), [Angel Ayala](https://github.com/angel-ayala), [Sebastian Ohl](https://github.com/sebastianohl), [GnSight](https://github.com/ftyghome) and [tantan](https://github.com/naos080415).
94+
95+
Special thanks go to these contributors and the many other members of our community who have contributed by reporting issues, bugs or provided support and moderation in our [Discord](https://discord.com/invite/nTWbN9m) channel.
96+
97+
The development of Webots is also partially supported by several European research projects, including [OpenDR](https://opendr.eu) and [OPTIMA](https://optima-hpc.eu), the [SimGait](https://simgait.org) Swiss national research project and many other private and academic partners.
98+

docs/blog/images/heron_usv.png

185 KB
Loading
185 KB
Loading

docs/blog/images/ros_crazyflie.png

902 KB
Loading
39.2 KB
Loading
994 KB
Loading
Loading

docs/blog/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Welcome to the Webots blog!
44

55
Here are the latest articles:
66

7+
- [Webots R2025a](Webots-2025-a-release.md)
78
- [Webots R2023b](Webots-2023-b-release.md)
89
- [Webots R2023a](Webots-2023-a-release.md)
910
- [Webots R2022b](Webots-2022-b-release.md)

docs/blog/menu.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,4 @@
1414
- [Webots R2022b](Webots-2022-b-release.md)
1515
- [Webots R2023a](Webots-2023-a-release.md)
1616
- [Webots R2023b](Webots-2023-b-release.md)
17+
- [Webots R2025a](Webots-2025-a-release.md)

docs/guide/installation-procedure.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ However, the sand-boxing constraints of snaps yield the following limitations:
127127
##### Download Size
128128

129129
The download is significantly bigger as it includes all the dependencies of Webots (ffmpeg, Python, C++ and Java compilers, etc.).
130-
For Webots R2023b, the download size of the snap is 651MB compared to 146MB of the Debian package.
130+
For Webots R2025a, the download size of the snap is 604MB compared to 146MB of the Debian package.
131131

132132
##### Extern Controllers
133133

docs/reference/changelog-r2023.md

Lines changed: 0 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,5 @@
11
# Webots R2023 Change Log
22

3-
## Webots R2023b Revision 1
4-
Released on XXX XXth, 2023.
5-
- New Devices and Objects
6-
- Added a model of a silo and a field ditch ([#6289](https://github.com/cyberbotics/webots/pull/6289)).
7-
- Enhancements
8-
- Enabled the launching of MATLAB desktop from the extern launcher ([#6366](https://github.com/cyberbotics/webots/pull/6366)).
9-
- Improved overlays visible in Overlays menu by adding all the robots in the menu list ([#6297](https://github.com/cyberbotics/webots/pull/6297)).
10-
- Bug fixes
11-
- Fixed Python path for `libcar.dylib` and `libdriver.dylib` on macOS ([#6482](https://github.com/cyberbotics/webots/pull/6482)).
12-
- Avoided crash and provided better warnings when attempting to access PROTO nodes in a wrong way from the supervisor API ([#6473](https://github.com/cyberbotics/webots/pull/6473)).
13-
- Fixed errors loading template PROTO if the system user name, the project path, or the temporary directory path contains the `\` character ([#6288](https://github.com/cyberbotics/webots/pull/6288)).
14-
- Fixed Webots and libController version comparison not to take revisions into account ([#6315](https://github.com/cyberbotics/webots/pull/6315)).
15-
- Fixed translation, rotation and scale displayed in the Position tab of the Node viewer in the scene tree ([#6309](https://github.com/cyberbotics/webots/pull/6309)).
16-
- Replaced the [Mesh](mesh.md) bounding object of the ROSbot XL by [Boxes](box.md) ([#6326](https://github.com/cyberbotics/webots/pull/6326)).
17-
- Fixed a crash when [IndexedLineSet](indexedlineset.md) has `coord` but no `coordIndex` ([#6359](https://github.com/cyberbotics/webots/pull/6359)).
18-
- Fixed values returned by the [Receiver.getEmitterDirection](https://cyberbotics.com/doc/reference/receiver?tab-language=python#wb_receiver_get_emitter_direction) Python method ([#6394](https://github.com/cyberbotics/webots/pull/6394)).
19-
- Fixed recognition of omnidirectional cameras with fov > pi/2 in [WbObjectDetection] ([#6396](https://github.com/cyberbotics/webots/pull/6396)).
20-
- Fixed [ElevationGrid](elevationgrid.md) collisions not matching the displayed when the x and y dimensions are different ([#6412](https://github.com/cyberbotics/webots/pull/6412))
21-
- Fixed JNILIB_FLAGS relative reference for Java controllers ([#5181](https://github.com/cyberbotics/webots/issues/5181))
22-
23-
243
## Webots R2023b
254
Released on June 28th, 2023.
265
- New Features

docs/reference/changelog-r2025.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Webots R2025 Change Log
22

33
## Webots R2025a
4-
Released on December **th, 2023.
4+
Released on January 31st, 2025.
55
- New Features
66
- **Change the name of the web scene format from `X3D` to `W3D` ([#6280](https://github.com/cyberbotics/webots/pull/6280)).**
77
- Removed support for Ubuntu 20.04 "Focal Fossa" and added support for Ubuntu 24.04 "Noble Numbat" ([#6704](https://github.com/cyberbotics/webots/pull/6704)).
@@ -17,10 +17,15 @@ Released on December **th, 2023.
1717
- Fixed the method signature of `wb_supervisor_node_get_number_of_fields` in MATLAB.
1818
- Removed support for Lua as a PROTO scripting language ([#6642](https://github.com/cyberbotics/webots/pull/6642)).
1919
- Adapt QtToolTip text box for every Webots mode ([#6711](https://github.com/cyberbotics/webots/pull/6711)).
20+
- New Devices and Objects
21+
- Added a model of a silo and a field ditch ([#6289](https://github.com/cyberbotics/webots/pull/6289)).
22+
- Added a model of the Clearpath Heron USV robot ([#6548](https://github.com/cyberbotics/webots/pull/6548)).
2023
- Enhancements
2124
- Improved the image range of the rotating [Lidar](lidar.md) ([#6324](https://github.com/cyberbotics/webots/pull/6324)).
2225
- Show box-plane contact point normals when showing contact points ([#6678](https://github.com/cyberbotics/webots/pull/6678)).
2326
- Improved the speed and accuracy of box-plane collisions ([#6688](https://github.com/cyberbotics/webots/pull/6688)).
27+
- Enabled the launching of MATLAB desktop from the extern launcher ([#6366](https://github.com/cyberbotics/webots/pull/6366)).
28+
- Improved overlays visible in Overlays menu by adding all the robots in the menu list ([#6297](https://github.com/cyberbotics/webots/pull/6297)).
2429
- Cleanup
2530
- Removed deprecated `windowPosition`, `pixelSize` fields of [Display](display.md) node ([#6327](https://github.com/cyberbotics/webots/pull/6327)).
2631
- Remove ROS (1) support ([#6697](https://github.com/cyberbotics/webots/pull/6697)).
@@ -48,5 +53,17 @@ Released on December **th, 2023.
4853
- Fixed a bug where Webots would crash if a geometry was inserted into a `Shape` node used a bounding box ([#6691](https://github.com/cyberbotics/webots/pull/6691)).
4954
- Removed the old `wb_supervisor_field_import_sf_node` and `wb_supervisor_field_import_mf_node` functions from the list of editor autocomplete suggestions ([#6701](https://github.com/cyberbotics/webots/pull/6701)).
5055
- Fixed a bug preventing nodes from being inserted into unconnected proto fields ([#6735](https://github.com/cyberbotics/webots/pull/6735)).
56+
- Fixed crash when an invalid HDR image was set as a world background ([#6744](https://github.com/cyberbotics/webots/pull/6744)).
5157
- Fixed handling of remote assets from unofficial sources ([#6585](https://github.com/cyberbotics/webots/pull/6585)).
5258
- Fixed the QtToolTip bug, where the text in the text box is not being displayed ([#6711](https://github.com/cyberbotics/webots/pull/6711)).
59+
- Fixed Python path for `libcar.dylib` and `libdriver.dylib` on macOS ([#6482](https://github.com/cyberbotics/webots/pull/6482)).
60+
- Avoided crash and provided better warnings when attempting to access PROTO nodes in a wrong way from the supervisor API ([#6473](https://github.com/cyberbotics/webots/pull/6473)).
61+
- Fixed errors loading template PROTO if the system user name, the project path, or the temporary directory path contains the `\` character ([#6288](https://github.com/cyberbotics/webots/pull/6288)).
62+
- Fixed Webots and libController version comparison not to take revisions into account ([#6315](https://github.com/cyberbotics/webots/pull/6315)).
63+
- Fixed translation, rotation and scale displayed in the Position tab of the Node viewer in the scene tree ([#6309](https://github.com/cyberbotics/webots/pull/6309)).
64+
- Replaced the [Mesh](mesh.md) bounding object of the ROSbot XL by [Boxes](box.md) ([#6326](https://github.com/cyberbotics/webots/pull/6326)).
65+
- Fixed a crash when [IndexedLineSet](indexedlineset.md) has `coord` but no `coordIndex` ([#6359](https://github.com/cyberbotics/webots/pull/6359)).
66+
- Fixed values returned by the [Receiver.getEmitterDirection](https://cyberbotics.com/doc/reference/receiver?tab-language=python#wb_receiver_get_emitter_direction) Python method ([#6394](https://github.com/cyberbotics/webots/pull/6394)).
67+
- Fixed recognition of omnidirectional cameras with fov > pi/2 in [WbObjectDetection] ([#6396](https://github.com/cyberbotics/webots/pull/6396)).
68+
- Fixed [ElevationGrid](elevationgrid.md) collisions not matching the displayed when the x and y dimensions are different ([#6412](https://github.com/cyberbotics/webots/pull/6412))
69+
- Fixed JNILIB_FLAGS relative reference for Java controllers ([#5181](https://github.com/cyberbotics/webots/issues/5181))

projects/robots/clearpath/heron/worlds/ocean.wbt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
EXTERNPROTO "webots://projects/objects/backgrounds/protos/TexturedBackground.proto"
44
EXTERNPROTO "webots://projects/objects/backgrounds/protos/TexturedBackgroundLight.proto"
55
EXTERNPROTO "webots://projects/objects/obstacles/protos/OilBarrel.proto"
6-
EXTERNPROTO "../protos/Heron.proto"
6+
EXTERNPROTO "webots://projects/robots/clearpath/heron/protos/Heron.proto"
77

88
WorldInfo {
99
}
@@ -30,11 +30,7 @@ DEF WATER Fluid {
3030
}
3131
]
3232
viscosity 0.01
33-
boundingObject Transform {
34-
children [
35-
USE WATER_BOX
36-
]
37-
}
33+
boundingObject USE WATER_BOX
3834
locked TRUE
3935
}
4036
Heron {

projects/robots/clearpath/heron/worlds/swarm.wbt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
EXTERNPROTO "webots://projects/objects/backgrounds/protos/TexturedBackground.proto"
44
EXTERNPROTO "webots://projects/objects/backgrounds/protos/TexturedBackgroundLight.proto"
55
EXTERNPROTO "webots://projects/objects/obstacles/protos/OilBarrel.proto"
6-
EXTERNPROTO "../protos/Heron.proto"
6+
EXTERNPROTO "webots://projects/robots/clearpath/heron/protos/Heron.proto"
77

88
WorldInfo {
99
}
@@ -30,11 +30,7 @@ DEF WATER Fluid {
3030
}
3131
]
3232
viscosity 0.01
33-
boundingObject Transform {
34-
children [
35-
USE WATER_BOX
36-
]
37-
}
33+
boundingObject USE WATER_BOX
3834
locked TRUE
3935
}
4036
OilBarrel {
64.4 KB
Loading

resources/osm_importer/config.ini

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,15 +42,15 @@ ignore: TRUE
4242

4343
[area_junction]
4444
ignore: FALSE
45-
texture: https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/textures/asphalt.jpg
45+
texture: https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/textures/asphalt.jpg
4646

4747
[area_farmland]
4848
ignore: FALSE
49-
texture: https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/textures/dry_grass.jpg
49+
texture: https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/textures/dry_grass.jpg
5050

5151
[area_farm]
5252
ignore: FALSE
53-
texture: https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/textures/dry_grass.jpg
53+
texture: https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/textures/dry_grass.jpg
5454

5555
[area_water]
5656
ignore: FALSE
@@ -66,7 +66,7 @@ density: 0.1
6666

6767
[area_parking]
6868
ignore: FALSE
69-
texture: https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/textures/light_asphalt.jpg
69+
texture: https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/textures/light_asphalt.jpg
7070

7171
# BARRIER DEFAULTS SETTINGS #
7272

resources/osm_importer/elevation.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
GOOGLE_ELEVATION_BASE_URL = 'https://maps.googleapis.com/maps/api/elevation/json'
2828
GEAONAMES_ELEVATION_BASE_URI = 'http://api.geonames.org/astergdemJSON'
2929

30-
GRASS_TEXTURE = 'https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/textures/grass.jpg'
30+
GRASS_TEXTURE = 'https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/textures/grass.jpg'
3131

3232

3333
class Elevation(object):

resources/osm_importer/utils/misc_utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from projection import Projection
2020

2121

22-
PREFIX = 'https://raw.githubusercontent.com/cyberbotics/webots/R2023b/'
22+
PREFIX = 'https://raw.githubusercontent.com/cyberbotics/webots/R2025a/'
2323
GRASS_TEXTURE = f'{PREFIX}projects/default/worlds/textures/grass.jpg'
2424

2525

@@ -62,7 +62,7 @@ def extern_proto_declaration(options):
6262
def print_header(options, file, minlat, minlon, maxlat, maxlon, elevation=None):
6363
"""Print the 'WorldInfo', 'Viewpoint', 'TexturedBackground', 'TexturedBackgroundLight' and 'Floor' nodes."""
6464
xSize, zSize = get_world_size(minlat=minlat, minlon=minlon, maxlat=maxlat, maxlon=maxlon)
65-
file.write("#VRML_SIM R2023b utf8\n")
65+
file.write("#VRML_SIM R2025a utf8\n")
6666
file.write(extern_proto_declaration(options))
6767
file.write("WorldInfo {\n")
6868
file.write(" info [\n")

resources/osm_importer/webots_objects/barrier.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
from utils.misc_utils import extract_float_from_string, length2D
2323

2424

25-
RED_BRICK_TEXTURE = 'https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/default/worlds/textures/red_brick_wall.jpg' # noqa: E501
25+
RED_BRICK_TEXTURE = 'https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/default/worlds/textures/red_brick_wall.jpg' # noqa: E501
2626

2727

2828
class Barrier(WebotsObject):

resources/osm_importer/webots_objects/road.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@
4242
# vertical offset lifting the Roads and Crossroads in order to not be coplanar with the floor.
4343
vOffset = 0.01
4444

45-
ROAD_LINE_DASHED_TEXTURE = 'https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/road/protos/textures/road_line_dashed.png' # noqa: E501
46-
ROAD_LINE_TRIANGLE_TEXTURE = 'https://raw.githubusercontent.com/cyberbotics/webots/R2023b/projects/objects/road/protos/textures/road_line_triangle.png' # noqa: E501
45+
ROAD_LINE_DASHED_TEXTURE = 'https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/road/protos/textures/road_line_dashed.png' # noqa: E501
46+
ROAD_LINE_TRIANGLE_TEXTURE = 'https://raw.githubusercontent.com/cyberbotics/webots/R2025a/projects/objects/road/protos/textures/road_line_triangle.png' # noqa: E501
4747

4848

4949
class Road(WebotsObject):

0 commit comments

Comments
 (0)