Skip to content

Commit

Permalink
Merge branch 'develop' into sync-master-3c4a3c0ab
Browse files Browse the repository at this point in the history
  • Loading branch information
omichel authored Sep 18, 2024
2 parents 3c4a3c0 + 97af53c commit b4dac00
Show file tree
Hide file tree
Showing 213 changed files with 2,872 additions and 3,341 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test_suite_linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ jobs:
run: |
export WEBOTS_HOME=$PWD/artifact/webots
export ROS_DISTRO=${{ matrix.ROS_DISTRO }}
python -m pip install rospkg catkin_pkg empy defusedxml netifaces
python -m pip install rospkg catkin_pkg empy==3.3.4 defusedxml netifaces
Xvfb :99 &
export DISPLAY=:99
./tests/ros.sh
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test_suite_linux_develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ jobs:
run: |
export WEBOTS_HOME=$PWD/artifact/webots
export ROS_DISTRO=${{ matrix.ROS_DISTRO }}
python -m pip install rospkg catkin_pkg empy defusedxml netifaces
python -m pip install rospkg catkin_pkg empy==3.3.4 defusedxml netifaces
Xvfb :99 &
export DISPLAY=:99
./tests/ros.sh
Expand Down
21 changes: 1 addition & 20 deletions dependencies/Makefile.linux
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,10 @@ QT_PACKAGE = webots-qt-$(QT_VERSION)-linux64-release.tar.bz2
OIS_PACKAGE = libOIS.1.4.tar.bz2
ASSIMP_PACKAGE = libassimp-5.2.3.tar.bz2
PICO_PACKAGE = libpico.tar.bz2
LUA_PACKAGE = lua-5.2.3.tar.gz
OPENSSL_VERSION=3.0.14
OPENSSL_SRC_PACKAGE=openssl-$(OPENSSL_VERSION).tar.gz

PACKAGES = qt open-al ois pico lua assimp
PACKAGES = qt open-al ois pico assimp
PACKAGES_CLEAN = $(addsuffix -clean, $(PACKAGES))

ifeq ($(UBUNTU_VERSION), 20.04)
Expand Down Expand Up @@ -113,24 +112,6 @@ $(WEBOTS_DEPENDENCY_PATH)/$(PICO_PACKAGE):
@if [ "$$(md5sum $(PICO_PACKAGE) | awk '{print $$1;}')" != "13ce4d080f1db578cb2b73206b52e4cb" ]; then echo "MD5 checksum failed for $(PICO_PACKAGE)"; exit 1; fi
@touch $(WEBOTS_DEPENDENCY_PATH)/$(PICO_PACKAGE)

lua-clean:
@rm -rf $(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3 $(WEBOTS_DEPENDENCY_PATH)/$(LUA_PACKAGE)

lua: $(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3/src/liblua.a

$(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3:
@echo "# downloading $(LUA_PACKAGE)"
@rm -f $(WEBOTS_DEPENDENCY_PATH)/$(LUA_PACKAGE)
@wget -qq https://www.lua.org/ftp/$(LUA_PACKAGE) -P $(WEBOTS_DEPENDENCY_PATH)
@if [ "$$(md5sum $(LUA_PACKAGE) | awk '{print $$1;}')" != "dc7f94ec6ff15c985d2d6ad0f1b35654" ]; then echo "MD5 checksum failed for $(LUA_PACKAGE)"; exit 1; fi
@echo "# uncompressing $(LUA_PACKAGE)"
@tar xfm $(WEBOTS_DEPENDENCY_PATH)/$(LUA_PACKAGE) -C $(WEBOTS_DEPENDENCY_PATH)
@rm -f $(WEBOTS_DEPENDENCY_PATH)/$(LUA_PACKAGE)

$(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3/src/liblua.a: $(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3
@echo "# compiling lua"
+@make --silent -C $(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3 linux 2> /dev/null

open-ssl-clean:
@rm -rf $(WEBOTS_DEPENDENCY_PATH)/$(OPENSSL_SRC_PACKAGE) $(WEBOTS_DEPENDENCY_PATH)/openssl-$(OPENSSL_VERSION) $(WEBOTS_DEPENDENCY_PATH)/openssl-3.0 $(WEBOTS_HOME_LIB)/libcrypto.so* $(WEBOTS_HOME_LIB)/libssl.so*

Expand Down
27 changes: 1 addition & 26 deletions dependencies/Makefile.mac
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,10 @@ QT_PACKAGE = qt-6.5.3-release.tar.bz2
ASSIMP_PACKAGE = assimp-5.2.3.tar.bz2
FFMPEG_PACKAGE = ffmpeg.tar.bz2
FREETYPE_PACKAGE = freetype2.tar.bz2
LUA_PACKAGE = liblua-5.2.3.tar.bz2
OIS_PACKAGE = libOIS-1.3.tar.bz2
PICO_PACKAGE = libpico-1.0.tar.bz2

PACKAGES = qt assimp ffmpeg freetype lua ois pico
PACKAGES = qt assimp ffmpeg freetype ois pico
PACKAGES_CLEAN = $(addsuffix -clean, $(PACKAGES))

.PHONY: release debug distrib profile clean cleanse $(PACKAGES) $(PACKAGES_CLEAN)
Expand Down Expand Up @@ -126,30 +125,6 @@ freetype2:
@tar xfm $(FREETYPE_PACKAGE)
@rm -f $(FREETYPE_PACKAGE)


lua-clean:
@rm -rf $(WEBOTS_HOME_LIB)/liblua.dylib
@rm -rf $(WEBOTS_HOME)/dependencies/lua-*
@rm -rf $(WEBOTS_HOME)/dependencies/liblua-*.tar.bz2

lua: $(WEBOTS_HOME_LIB)/liblua.dylib

$(WEBOTS_HOME_LIB)/liblua.dylib: $(WEBOTS_DEPENDENCY_PATH)/$(LUA_PACKAGE)
@echo "# uncompressing $(LUA_PACKAGE)"
@tar xfm $(LUA_PACKAGE) -C $(WEBOTS_HOME)/Contents
@mv $(WEBOTS_HOME)/Contents/dependencies/lua-5.2.3 $(WEBOTS_HOME)/dependencies/
@rmdir $(WEBOTS_HOME)/Contents/dependencies
@install_name_tool -id @rpath/Contents/lib/webots/liblua.dylib $@
@codesign --force -s - $@


$(WEBOTS_DEPENDENCY_PATH)/$(LUA_PACKAGE):
@echo "# downloading $(LUA_PACKAGE)"
@rm -f $(WEBOTS_DEPENDENCY_PATH)/$(LUA_PACKAGE)
@$(WGET) $(DEPENDENCIES_URL)/$(LUA_PACKAGE) -P $(WEBOTS_DEPENDENCY_PATH)
@if [ "b81047a7d382c1531b5b18530c6578ad" != `md5 -q $(LUA_PACKAGE)` ]; then echo "MD5 checksum failed for $(LUA_PACKAGE)"; exit 1; fi
@touch $@

ois-clean:
@rm -rf $(WEBOTS_DEPENDENCY_PATH)/$(OIS_PACKAGE) $(WEBOTS_HOME_LIB)/*OIS.dylib $(WEBOTS_HOME)/include/libOIS

Expand Down
46 changes: 1 addition & 45 deletions dependencies/Makefile.windows
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,10 @@ DEPENDENCIES_URL = https://cyberbotics.com/files/repository/dependencies/windows

ASSIMP_PACKAGE = assimp-5.2.3.zip
OPEN_VR_PACKAGE = openvr-1.0.7.zip
LUA_PACKAGE = lua-5.2.3.tar.gz
OIS_PACKAGE = libOIS.zip
PICO_PACKAGE = libpico-1.0.zip
LUA_GD_PACKAGE = lua-gd-windows.zip

PACKAGES = assimp open-vr lua ois pico lua-gd
PACKAGES = assimp open-vr ois pico
PACKAGES_CLEAN = $(addsuffix -clean, $(PACKAGES))
null :=
space := $(null) $(null)
Expand Down Expand Up @@ -99,30 +97,6 @@ $(WEBOTS_DEPENDENCY_PATH)/openvr-1.0.7:
@rm -f "$(WEBOTS_DEPENDENCY_PATH)/$(OPEN_VR_PACKAGE)"
@touch "$(WEBOTS_DEPENDENCY_PATH)/openvr-1.0.7"

lua-clean:
@rm -rf $(TARGET_PATH)/lua52.dll "$(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3"

lua: $(TARGET_PATH)/lua52.dll

$(TARGET_PATH)/lua52.dll: $(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3/src/lua52.dll
@echo "# copying lua dll"
@mkdir -p $(TARGET_PATH)
@cp "$(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3/src/lua52.dll" "$(TARGET_PATH)/"

$(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3:
@rm -f "$(WEBOTS_DEPENDENCY_PATH)/$(LUA_PACKAGE)"
@echo "# downloading $(LUA_PACKAGE)"
@wget -qq "https://www.lua.org/ftp/$(LUA_PACKAGE)" -P "$(WEBOTS_DEPENDENCY_PATH)"
@if [ "$$(md5sum $(LUA_PACKAGE) | awk '{print $$1;}')" != "dc7f94ec6ff15c985d2d6ad0f1b35654" ]; then echo "MD5 checksum failed for $(LUA_PACKAGE)"; exit 1; fi
@echo "# uncompressing $(LUA_PACKAGE)"
@cd "$(WEBOTS_DEPENDENCY_PATH)"; tar xfm $(LUA_PACKAGE) -C "$(WEBOTS_DEPENDENCY_PATH)"
@rm -f "$(WEBOTS_DEPENDENCY_PATH)/$(LUA_PACKAGE)"

$(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3/src/lua52.dll: $(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3
@sed -i '/AR= ar rcu/c\AR= ar rc' lua-5.2.3/src/Makefile
@echo "# compiling lua"
+@make --silent -C "$(WEBOTS_DEPENDENCY_PATH)/lua-5.2.3" mingw

ois-clean:
@rm -rf "$(WEBOTS_DEPENDENCY_PATH)/$(OIS_PACKAGE)" $(TARGET_PATH)/OIS.dll $(TARGET_PATH)/XInput9_1_0.dll "$(WEBOTS_HOME_PATH)/include/libOIS"

Expand Down Expand Up @@ -161,21 +135,3 @@ $(WEBOTS_DEPENDENCY_PATH)/$(PICO_PACKAGE):
@wget -qq "$(DEPENDENCIES_URL)/$(PICO_PACKAGE)" -P "$(WEBOTS_DEPENDENCY_PATH)"
@if [ "$$(md5sum $(PICO_PACKAGE) | awk '{print $$1;}')" != "78a74b1190eb3a75bc0ae5360c699517" ]; then echo "MD5 checksum failed for $(PICO_PACKAGE)"; exit 1; fi
@touch "$(WEBOTS_DEPENDENCY_PATH)/$(PICO_PACKAGE)"

lua-gd-clean:
@rm -rf "$(WEBOTS_DEPENDENCY_PATH)/$(LUA_GD_PACKAGE)" $(TARGET_PATH)/gd.dll

lua-gd: $(TARGET_PATH)/gd.dll

$(TARGET_PATH)/gd.dll: $(WEBOTS_DEPENDENCY_PATH)/$(LUA_GD_PACKAGE)
@echo "# uncompressing $(LUA_GD_PACKAGE)"
@mkdir -p $(TARGET_PATH)
@unzip -q -o "$(WEBOTS_DEPENDENCY_PATH)/$(LUA_GD_PACKAGE)" -d "$(WEBOTS_HOME_PATH)/msys64/mingw64/bin"
@touch "$(TARGET_PATH)/gd.dll"

$(WEBOTS_DEPENDENCY_PATH)/$(LUA_GD_PACKAGE):
@echo "# downloading $(LUA_GD_PACKAGE)"
@rm -f "$(WEBOTS_DEPENDENCY_PATH)/$(LUA_GD_PACKAGE)"
@wget -qq "$(DEPENDENCIES_URL)/$(LUA_GD_PACKAGE)" -P "$(WEBOTS_DEPENDENCY_PATH)"
@if [ "$$(md5sum $(LUA_GD_PACKAGE) | awk '{print $$1;}')" != "0a54dcc518d331a853f77fb66ebf75e9" ]; then echo "MD5 checksum failed for $(LUA_GD_PACKAGE)"; exit 1; fi
@touch "$(WEBOTS_DEPENDENCY_PATH)/$(LUA_GD_PACKAGE)"
2 changes: 1 addition & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,6 @@ pip install pycodestyle
2. Run the tests:

```sh
cd $WEBOTS_HOME/docs
cd $WEBOTS_HOME/docs/tests
python -m unittest discover
```
10 changes: 5 additions & 5 deletions docs/reference/changelog-r2020.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,15 +22,15 @@ Released on September 1st, 2020.
- Remove scaling factor in matrix returned by [`wb_supervisor_node_get_orientation`](supervisor.md#wb_supervisor_node_get_orientation) ([#2112](https://github.com/cyberbotics/webots/pull/2112)).
- Fixed conversion of identity matrix to quaternion in ROS API ([#2112](https://github.com/cyberbotics/webots/pull/2112)).
- Fixed header stamps of the topics published by the ROS controller ([#2127](https://github.com/cyberbotics/webots/pull/2127)).
- Fixed the [`camera/recognition_objects`](camera.md#wb_camera_recognition_get_objects) ROS topic not published when the [`camera/image`](camera.md#wb_camera_recognition_get_objects) topic has no subscriber ([#2115](https://github.com/cyberbotics/webots/pull/2115)).
- **macOS: Removed the `ros` controller**, the [custom Python ROS controller](https://www.cyberbotics.com/doc/guide/using-ros#custom-ros-controller) should be used instead ([#2053](https://github.com/cyberbotics/webots/pull/2053)).
- Fixed the [`camera/recognition_objects`](camera.md#wb_camera_recognition_get_objects) ROS topic not published when the [`camera/image`](camera.md#wb_camera_recognition_get_objects) topic has no subscriber ([#2115](https://github.com/cyberbotics/webots/pull/2115)).
- **macOS: Removed the `ros` controller**, the [custom Python ROS controller](https://www.cyberbotics.com/doc/guide/using-ros#custom-ros-controller) should be used instead ([#2053](https://github.com/cyberbotics/webots/pull/2053)).
- Fixed DEF node not found if defined in PROTO default parameter value ([#2107](https://github.com/cyberbotics/webots/pull/2107)).
- Fixed crash occurring with some PROTO nodes when modifying fields from the scene tree that trigger the PROTO model regeneration ([#2100](https://github.com/cyberbotics/webots/pull/2100)).
- Fixed field changes not applied in case of nested [PROTO](proto.md) nodes ([#2063](https://github.com/cyberbotics/webots/pull/2063)).
- Windows: Fixed generation of procedural PROTO nodes using the `gd` module ([#2070](https://github.com/cyberbotics/webots/pull/2070)).
- Fixed the [vision](../guide/samples-howto.md#vision-wbt) sample simulation ([#2143](https://github.com/cyberbotics/webots/pull/2143)).
- Fixed bugs in streaming server protocol and added support for X3D/MJPEG mode selection in simulation server ([#2077](https://github.com/cyberbotics/webots/pull/2077)).
- Linux: Fixed the execution of robot controllers with firejail ([#2071](https://github.com/cyberbotics/webots/pull/2071)).
- Linux: Fixed the execution of robot controllers with firejail ([#2071](https://github.com/cyberbotics/webots/pull/2071)).
- Fixed the `roadBorderWidth` field of the `HelicoidalRoadSegment` PROTO node ([#2099](https://github.com/cyberbotics/webots/pull/2099)).
- Fixed the `near` field of the `Robotino3Webcam` [Camera](camera.md) ([#2051](https://github.com/cyberbotics/webots/pull/2051)).
- Fixed orientation of the [Lights](light.md) in the `robotino3` world ([#2051](https://github.com/cyberbotics/webots/pull/2051)).
Expand All @@ -51,7 +51,7 @@ Released on July 29th, 2020.
- New Features
- Added a [Mesh](mesh.md) node allowing to use external 3D file in Webots ([#1419](https://github.com/cyberbotics/webots/pull/1419)).
- Added the possibility to import [3D Studio mesh](https://wiki.fileformat.com/3d/3ds), [Blender](https://www.blender.org/), [Biovision Hierarchy](https://en.wikipedia.org/wiki/Biovision_Hierarchy), [Collada](https://en.wikipedia.org/wiki/COLLADA), [Filmbox](https://wiki.fileformat.com/3d/fbx/), [STL](https://en.wikipedia.org/wiki/STL_(file_format)), [Wavefront](https://wiki.fileformat.com/3d/obj), [X3D](https://www.web3d.org/getting-started-x3d) files in Webots ([#1463](https://github.com/cyberbotics/webots/pull/1463)).
- Added two new functions to get internal PROTO node fields: [`wb_supervisor_node_get_from_proto_def`](supervisor.md#wb_supervisor_node_get_from_proto_def) and [`wb_supervisor_node_get_proto_field`](supervisor.md#wb_supervisor_node_get_proto_field) ([#1331](https://github.com/cyberbotics/webots/pull/1331)).
- Added two new functions to get internal PROTO node fields: [`wb_supervisor_node_get_from_proto_def`](supervisor.md#wb_supervisor_node_get_from_proto_def) and [`wb_supervisor_node_get_proto_field`](supervisor.md#wb_supervisor_node_get_base_node_field) ([#1331](https://github.com/cyberbotics/webots/pull/1331)).
- Added the `mjpeg` web streaming mode ([#1352](https://github.com/cyberbotics/webots/pull/1352)).
- Exposed global texture maximum filtering as a parameter in the Webots preferences ([#1851](https://github.com/cyberbotics/webots/pull/1851)).
- Added a [`wb_robot_get_urdf`](robot.md#wb_robot_get_urdf) function to the [Robot](robot.md) node which allows URDF export ([#1706](https://github.com/cyberbotics/webots/pull/1706)).
Expand Down Expand Up @@ -105,7 +105,7 @@ Released on July 29th, 2020.
- Fixed crash when setting an invalid value to a field that triggers the parent PROTO regeneration ([#1868](https://github.com/cyberbotics/webots/pull/1868)).
- Fixed crash when converting a PROTO node to Base node(s) if contained in a field that triggers the parent PROTO regeneration ([#1868](https://github.com/cyberbotics/webots/pull/1868)).
- Fixed crash when deleting a node contained in a field that triggers the parent PROTO regeneration ([#1868](https://github.com/cyberbotics/webots/pull/1868)).
- Fixed crash occurring when reloading or resetting a simulation containing a [Display](display.md) device ([#1865](https://github.com/cyberbotics/webots/pull/1865)).
- Fixed crash occurring when reloading or resetting a simulation containing a [Display](display.md) device ([#1865](https://github.com/cyberbotics/webots/pull/1865)).
- Fixed crash with Python [`RangeFinder.rangeImageGetDepth`](rangefinder.md#wb_range_finder_image_get_depth) function ([#1858](https://github.com/cyberbotics/webots/pull/1858)).
- Fixed mismatch between the bounding object and visual shape of the [UnevenTerrain](https://www.cyberbotics.com/doc/guide/object-floors#uneventerrain), **and removed the `textureScale` field** ([#1792](https://github.com/cyberbotics/webots/pull/1792)).
- Fixed crash when using a [Normal](normal.md) node in a PROTO node ([#1813](https://github.com/cyberbotics/webots/pull/1813)).
Expand Down
10 changes: 10 additions & 0 deletions docs/reference/changelog-r2024.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,15 @@ Released on December **th, 2023.
- **Change the name of the web scene format from `X3D` to `W3D` ([#6280](https://github.com/cyberbotics/webots/pull/6280)).**
- Removed support for macOS 11 "Big Sur" and added support for macOS 14 "Sonoma" ([#6580](https://github.com/cyberbotics/webots/pull/6580)).
- Added the `indirectFieldAccess` tag to allow the `fields` variable to be used in proto templates without referencing a specific field ([#6614](https://github.com/cyberbotics/webots/pull/6614)).
- Added a method to include all subtypes of a node type in a PROTO field restriction ([#6574](https://github.com/cyberbotics/webots/pull/6574)).
- Improved the node field query api ([#6613](https://github.com/cyberbotics/webots/issues/6613)).
- **Renamed the `wb_supervisor_node_get_proto_*` methods to `wb_supervisor_node_get_base_node_*`**
- **Renamed the `proto` field in the `supervisor_node_get_field_*` ROS services to `queryBaseNode`**
- Added the `WbProtoRef` type to the supervisor API.
- Added the ability to query the internal structure and fields of a proto node.
- Added the ability to query the field in the scene tree that corresponds to a proto internal field.
- Fixed the method signature of `wb_supervisor_node_get_number_of_fields` in MATLAB.
- Removed support for Lua as a PROTO scripting language ([#6642](https://github.com/cyberbotics/webots/pull/6642)).
- Enhancements
- Improved the image range of the rotating [Lidar](lidar.md) ([#6324](https://github.com/cyberbotics/webots/pull/6324)).
- Cleanup
Expand All @@ -29,3 +38,4 @@ Released on December **th, 2023.
- Fixed crash on macos when closing Webots under some circumstances ([#6635](https://github.com/cyberbotics/webots/pull/6635)).
- Fixed error on macos when when putting displays and cameras in separate windows ([#6635](https://github.com/cyberbotics/webots/pull/6635)).
- Fixed crash when `wb_supervisor_field_get_name` was called with NULL ([#6647](https://github.com/cyberbotics/webots/pull/6647)).
- Fixed handling of remote assets from unofficial sources ([#6585](https://github.com/cyberbotics/webots/pull/6585)).
4 changes: 1 addition & 3 deletions docs/reference/javascript-procedural-proto.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ Webots cannot load procedural PROTO nodes directly, therefore the procedural PRO

### Programming Facts

- For backwards compatibility reasons, procedural PROTO files are assumed to be Lua by default.
In order to use JavaScript scripting it is required to add the comment `# template language: javascript` in the header of the file.
In order to use JavaScript scripting you should add the comment `# template language: javascript` in the header of the file.
- A template statement is encapsulated inside the `%<` and the `>%` tokens and can be written on several lines.
- Adding an "=" just after the opening token (`%<=`) allows to evaluate a statement.
- The use of template statements is exclusively allowed inside the content scope of the PROTO (cf. example).
Expand Down Expand Up @@ -72,7 +71,6 @@ Sphere {
%end

- Although not mandatory, the usage of semi-colons for JavaScript statements is highly encouraged.
- Lua and JavaScript Procedural PROTO nodes use two distinct tokens (`%{` and `}%` for Lua and `%<` and `>%` for JavaScript) and cannot be interchanged.
Which tokens will be considered depends on whether the comment line `# template language: javascript` is present.
- The `wbfile` module for file manipulation does not need to, and should not, be imported as it is added automatically to each instance of the engine.
- Performance degradation has been observed when the number of evaluations requested (i.e expressions of the form `%<= ... >%`) is large, generally in the tens of thousands.
Expand Down
Loading

0 comments on commit b4dac00

Please sign in to comment.