From 93992d71436d745c06a5440ac468e84938d6c36a Mon Sep 17 00:00:00 2001 From: Hidehisa Akiyama <522630+hidehisaakiyama@users.noreply.github.com> Date: Mon, 25 Mar 2024 12:46:37 +0900 Subject: [PATCH] Official Release 19.0.0 (#146) * Update NEWS file for 19.0.0 * Update the version number in the build systems. * Update ax_boost_base.m4 * Edit NEWS file. * Official Release 19.0.0 --- CMakeLists.txt | 2 +- ChangeLog | 10 ++++++ NEWS | 88 ++++++++++++++++++++++++++++++++++++++++++--- configure.ac | 12 ++----- m4/ax_boost_base.m4 | 4 +-- 5 files changed, 100 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d38b6a9..b8c361d2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.5.1) -project(RCSSServer VERSION 18.1.3) +project(RCSSServer VERSION 19.0.0) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) diff --git a/ChangeLog b/ChangeLog index 1f1f573d..ba4746a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2024-03-25 Hidehisa Akiyama + + * CMakeLists.txt: + * NEWS: + * configure.ac: + - update a major version number. Official release 19.0.0 + - introduce a bipedal dash model. + - introduce a new gaussian observation noise model. + - reformat JSON monitor protocol and game log. + 2023-04-29 Hidehisa Akiyama * CMakeLists.txt: diff --git a/NEWS b/NEWS index 89a04859..09b2f6b5 100644 --- a/NEWS +++ b/NEWS @@ -1,13 +1,93 @@ +[19.0.0] + * New prameters: + - server::dist_noise_rate (default value: 0.0125) + - server::focus_dist_noise_rate (default value: 0.0125) + - server::land_dist_noise_rate (default value: 0.00125) + - server::land_focus_dist_noise_rate (default value: 0.00125) + + * New command: + - "(dash (l POWER DIR) (r POWER DIR))" + This is an extension of the dash command. All version players + can use this format. If the command is accepted, players can + perform acceleration and direction change simultaneously based + on the bipedal dash model. + + - "(gaussian_see)" + All version players can use this command. If the command is + accepted, rcssserver sent a reply message, "(ok gaussian_see)". + This command is used for a gaussian noise mode describing below. + + * Introduce a bipedal dash model. Players can now independently + issue dash commands to the left and right legs. This means that + players can now apply different accelerations to each leg. With + the bipedal dash model, players can perform acceleration and + direction changes simultaneously, governed by differential drive + kinematics. + + The rotation is calculated as: + + rotation = (left_leg_vel.bx - right_leg_vel.bx)/(player_size*2) + + where bx is the x-component of the vector with the player's + body direction as the x-axis. + + The player's result velocity is calculated as: + + vel = (left_leg_vel + right_leg_vel)/2 + + Stamina is consumed independently on the left and right legs, + and the total consumption is the sum of half of each leg: + + stamina = stamina - (left_consumed/2 + right_consumed/2) + + * Introduce a new gaussian observation noise model. This model is + activated by "(gaussian_see)" command and replaces the previous + quantization model. In this model, In this model, the noised + distance in the player's observation is determined by a + Gaussian distribution: + + stddev = actual_dist * noise_rate + focus_dist * focus_noise_rate + noised_dist = max(0.0, normal_distribution(actual_dist, stddev)) + + where normal_distribution(mean, stddev) is a random number + generator based on a Gaussian distribution with given mean and + standard deviation. actual_dist represents the actual distance + between the observed object and the player, while focus_dist is + the distance between the observed object and the player's focus + point. noise_rate and focus_noise_rate are determined by + heterogeneous parameters, with default values defined as new + server parameters, uniformly set for all player types in the + current version. For ball and player observation, + server::dist_noise_rate and server::focus_dist_noise_rate are + applied, while for flags (landmark objects), server::land_dist_noise_rate + and server::focus_dist_noise_rate are applied. + + The velocity noise formula is similar to the previous one. + The formula of dir_chg remains unchanged, while dist_chg is + calculated as: + + dist_chg = actual_dist_chg * noised_dist / actual_dist + + where actual_dist_chg represents the x-component of the velocity + vector with the direction from the player to the observed object + as the x-axis. The resulting dist_chg value is rounded to two + decimal places before being sent. + + * Improve the JSON game log format. The format of each data has + been reviewed to make it easier to parse and the JSON rcg is + now recorded as a pure JSON file. The parser library is bundled + in rcssmonitor. + [18.1.3] * Fix an issue in the penalty shootouts referee. If both teams - score the same when finishing all extended trials, the penalty - shootouts referee will not end the game and the simulator will - get stuck. Thanks go to Omid Amini for providing the patch. + score the same when finishing all extended trials, the penalty + shootouts referee will not end the game and the simulator will + get stuck. Thanks go to Omid Amini for providing the patch. [18.1.2] * Fix a problem of v18 observation noise model. Quantized distance values affected by the focus point are now rounded to one decimal - place. + place. [18.1.1] * Fix a problem in which the focus point is sometimes not updated. diff --git a/configure.ac b/configure.ac index 4294235d..c59ef54c 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.69]) LT_PREREQ([2.2]) -AC_INIT([RCSSServer],[18.1.3],[https://github.com/rcsoccersim/],[rcssserver]) +AC_INIT([RCSSServer],[19.0.0],[https://github.com/rcsoccersim/],[rcssserver]) #AM_INIT_AUTOMAKE([gnu 1.7.2 check-news dist-bzip2 dist-zip]) AM_INIT_AUTOMAKE([gnu 1.7.2 check-news foreign]) @@ -47,7 +47,7 @@ AX_CHECK_ZLIB([], ################################################## AC_FUNC_ALLOCA -AC_HEADER_STDC +#AC_HEADER_STDC AC_CHECK_HEADERS([arpa/inet.h fcntl.h]) AC_CHECK_HEADERS([inttypes.h libintl.h libintl.h malloc.h netdb.h]) AC_CHECK_HEADERS([netinet/in.h poll.h pwd.h stddef.h stdlib.h sys/param.h]) @@ -65,7 +65,7 @@ AC_TYPE_INT16_T AC_TYPE_INT32_T AC_TYPE_INT8_T AC_TYPE_SIZE_T -AC_HEADER_TIME +#AC_HEADER_TIME AC_STRUCT_TM AC_TYPE_UINT16_T AC_TYPE_UINT32_T @@ -98,12 +98,6 @@ AC_DEFINE_UNQUOTED([RETSIGTYPE],[$ac_cv_type_signal],[Define as the return type (`int' or `void').]) AC_FUNC_STRFTIME -AC_CHECK_FUNCS([memset], [], [ - echo "************** ERROR ****************" - echo "Could not find memset function." - echo "Please upgrade you system" - exit 1 -]) AC_CHECK_FUNCS([floor gethostbyname gettimeofday inet_ntoa memset mkdir pow rint]) AC_CHECK_FUNCS([select socket sqrt strdup strerror]) diff --git a/m4/ax_boost_base.m4 b/m4/ax_boost_base.m4 index b1fed7a5..8485cc92 100644 --- a/m4/ax_boost_base.m4 +++ b/m4/ax_boost_base.m4 @@ -10,7 +10,7 @@ # # Test for the Boost C++ libraries of a particular version (or newer) # -# If no path to the installed boost library is given the macro searchs +# If no path to the installed boost library is given the macro searches # under /usr, /usr/local, /opt, /opt/local and /opt/homebrew and evaluates # the $BOOST_ROOT environment variable. Further documentation is available # at . @@ -33,7 +33,7 @@ # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 52 +#serial 54 # example boost program (need to pass version) m4_define([_AX_BOOST_BASE_PROGRAM],