Skip to content

Commit ce87001

Browse files
Merge pull request #147 from rcsoccersim/develop
Official Release 19.0.0
2 parents f99d594 + 93992d7 commit ce87001

38 files changed

+1244
-645
lines changed

CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
cmake_minimum_required(VERSION 3.5.1)
22

3-
project(RCSSServer VERSION 18.1.3)
3+
project(RCSSServer VERSION 19.0.0)
44

55
set(CMAKE_CXX_STANDARD 17)
66
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -19,7 +19,7 @@ endif()
1919
find_package(BISON REQUIRED)
2020
find_package(FLEX REQUIRED)
2121
#find_package(Boost COMPONENTS system filesystem REQUIRED)
22-
find_package(Boost COMPONENTS system REQUIRED)
22+
find_package(Boost 1.44.0 COMPONENTS system REQUIRED)
2323

2424
include(GNUInstallDirs)
2525
include(CheckIncludeFileCXX)

ChangeLog

+10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
2024-03-25 Hidehisa Akiyama <hidehisaakiyama@users.noreply.github.com>
2+
3+
* CMakeLists.txt:
4+
* NEWS:
5+
* configure.ac:
6+
- update a major version number. Official release 19.0.0
7+
- introduce a bipedal dash model.
8+
- introduce a new gaussian observation noise model.
9+
- reformat JSON monitor protocol and game log.
10+
111
2023-04-29 Hidehisa Akiyama <hidehisaakiyama@users.noreply.github.com>
212

313
* CMakeLists.txt:

NEWS

+84-4
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,93 @@
1+
[19.0.0]
2+
* New prameters:
3+
- server::dist_noise_rate (default value: 0.0125)
4+
- server::focus_dist_noise_rate (default value: 0.0125)
5+
- server::land_dist_noise_rate (default value: 0.00125)
6+
- server::land_focus_dist_noise_rate (default value: 0.00125)
7+
8+
* New command:
9+
- "(dash (l POWER DIR) (r POWER DIR))"
10+
This is an extension of the dash command. All version players
11+
can use this format. If the command is accepted, players can
12+
perform acceleration and direction change simultaneously based
13+
on the bipedal dash model.
14+
15+
- "(gaussian_see)"
16+
All version players can use this command. If the command is
17+
accepted, rcssserver sent a reply message, "(ok gaussian_see)".
18+
This command is used for a gaussian noise mode describing below.
19+
20+
* Introduce a bipedal dash model. Players can now independently
21+
issue dash commands to the left and right legs. This means that
22+
players can now apply different accelerations to each leg. With
23+
the bipedal dash model, players can perform acceleration and
24+
direction changes simultaneously, governed by differential drive
25+
kinematics.
26+
27+
The rotation is calculated as:
28+
29+
rotation = (left_leg_vel.bx - right_leg_vel.bx)/(player_size*2)
30+
31+
where bx is the x-component of the vector with the player's
32+
body direction as the x-axis.
33+
34+
The player's result velocity is calculated as:
35+
36+
vel = (left_leg_vel + right_leg_vel)/2
37+
38+
Stamina is consumed independently on the left and right legs,
39+
and the total consumption is the sum of half of each leg:
40+
41+
stamina = stamina - (left_consumed/2 + right_consumed/2)
42+
43+
* Introduce a new gaussian observation noise model. This model is
44+
activated by "(gaussian_see)" command and replaces the previous
45+
quantization model. In this model, In this model, the noised
46+
distance in the player's observation is determined by a
47+
Gaussian distribution:
48+
49+
stddev = actual_dist * noise_rate + focus_dist * focus_noise_rate
50+
noised_dist = max(0.0, normal_distribution(actual_dist, stddev))
51+
52+
where normal_distribution(mean, stddev) is a random number
53+
generator based on a Gaussian distribution with given mean and
54+
standard deviation. actual_dist represents the actual distance
55+
between the observed object and the player, while focus_dist is
56+
the distance between the observed object and the player's focus
57+
point. noise_rate and focus_noise_rate are determined by
58+
heterogeneous parameters, with default values defined as new
59+
server parameters, uniformly set for all player types in the
60+
current version. For ball and player observation,
61+
server::dist_noise_rate and server::focus_dist_noise_rate are
62+
applied, while for flags (landmark objects), server::land_dist_noise_rate
63+
and server::focus_dist_noise_rate are applied.
64+
65+
The velocity noise formula is similar to the previous one.
66+
The formula of dir_chg remains unchanged, while dist_chg is
67+
calculated as:
68+
69+
dist_chg = actual_dist_chg * noised_dist / actual_dist
70+
71+
where actual_dist_chg represents the x-component of the velocity
72+
vector with the direction from the player to the observed object
73+
as the x-axis. The resulting dist_chg value is rounded to two
74+
decimal places before being sent.
75+
76+
* Improve the JSON game log format. The format of each data has
77+
been reviewed to make it easier to parse and the JSON rcg is
78+
now recorded as a pure JSON file. The parser library is bundled
79+
in rcssmonitor.
80+
181
[18.1.3]
282
* Fix an issue in the penalty shootouts referee. If both teams
3-
score the same when finishing all extended trials, the penalty
4-
shootouts referee will not end the game and the simulator will
5-
get stuck. Thanks go to Omid Amini for providing the patch.
83+
score the same when finishing all extended trials, the penalty
84+
shootouts referee will not end the game and the simulator will
85+
get stuck. Thanks go to Omid Amini for providing the patch.
686

787
[18.1.2]
888
* Fix a problem of v18 observation noise model. Quantized distance
989
values affected by the focus point are now rounded to one decimal
10-
place.
90+
place.
1191

1292
[18.1.1]
1393
* Fix a problem in which the focus point is sometimes not updated.

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,15 @@ For further reading, please check [the user's manual](https://rcsoccersim.readth
1414
rcssserver is implemented by C++14 and depends some libraries.
1515
Make sure you have the required dependencies installed on your system:
1616

17-
- g++ (which supports C++14)
17+
- g++ (which supports C++17)
1818
- autoconf
1919
- automake
2020
- libtool
2121
- flex
2222
- bison
2323
- boost >= 1.44
2424

25-
In the case of Ubuntu 18.04 or 20.04, the following commands will resolve all dependencies:
25+
In the case of Ubuntu 20.04 or 22.04, the following commands will resolve all dependencies:
2626

2727
```
2828
sudo apt update

configure.ac

+4-10
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
AC_PREREQ([2.69])
55
LT_PREREQ([2.2])
6-
AC_INIT([RCSSServer],[18.1.3],[https://github.com/rcsoccersim/],[rcssserver])
6+
AC_INIT([RCSSServer],[19.0.0],[https://github.com/rcsoccersim/],[rcssserver])
77

88
#AM_INIT_AUTOMAKE([gnu 1.7.2 check-news dist-bzip2 dist-zip])
99
AM_INIT_AUTOMAKE([gnu 1.7.2 check-news foreign])
@@ -47,7 +47,7 @@ AX_CHECK_ZLIB([],
4747
##################################################
4848

4949
AC_FUNC_ALLOCA
50-
AC_HEADER_STDC
50+
#AC_HEADER_STDC
5151
AC_CHECK_HEADERS([arpa/inet.h fcntl.h])
5252
AC_CHECK_HEADERS([inttypes.h libintl.h libintl.h malloc.h netdb.h])
5353
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
6565
AC_TYPE_INT32_T
6666
AC_TYPE_INT8_T
6767
AC_TYPE_SIZE_T
68-
AC_HEADER_TIME
68+
#AC_HEADER_TIME
6969
AC_STRUCT_TM
7070
AC_TYPE_UINT16_T
7171
AC_TYPE_UINT32_T
@@ -98,12 +98,6 @@ AC_DEFINE_UNQUOTED([RETSIGTYPE],[$ac_cv_type_signal],[Define as the return type
9898
(`int' or `void').])
9999

100100
AC_FUNC_STRFTIME
101-
AC_CHECK_FUNCS([memset], [], [
102-
echo "************** ERROR ****************"
103-
echo "Could not find memset function."
104-
echo "Please upgrade you system"
105-
exit 1
106-
])
107101
AC_CHECK_FUNCS([floor gethostbyname gettimeofday inet_ntoa memset mkdir pow rint])
108102
AC_CHECK_FUNCS([select socket sqrt strdup strerror])
109103

@@ -194,7 +188,7 @@ AX_CXX_COMPILE_STDCXX_17(noext)
194188
# check boost
195189
##################################################
196190

197-
AX_BOOST_BASE([1.32.0])
191+
AX_BOOST_BASE([1.44.0])
198192
AX_BOOST_SYSTEM
199193
CPPFLAGS="$CPPFLAGS $BOOST_CPPFLAGS"
200194
LDFLAGS="$LDFLAGS $BOOST_LDFLAGS"

m4/ax_boost_base.m4

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#
1111
# Test for the Boost C++ libraries of a particular version (or newer)
1212
#
13-
# If no path to the installed boost library is given the macro searchs
13+
# If no path to the installed boost library is given the macro searches
1414
# under /usr, /usr/local, /opt, /opt/local and /opt/homebrew and evaluates
1515
# the $BOOST_ROOT environment variable. Further documentation is available
1616
# at <http://randspringer.de/boost/index.html>.
@@ -33,7 +33,7 @@
3333
# and this notice are preserved. This file is offered as-is, without any
3434
# warranty.
3535

36-
#serial 52
36+
#serial 54
3737

3838
# example boost program (need to pass version)
3939
m4_define([_AX_BOOST_BASE_PROGRAM],

src/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ add_executable(RCSSServer
3737
initsenderonlinecoach.cpp
3838
initsenderplayer.cpp
3939
landmarkreader.cpp
40+
leg.cpp
4041
logger.cpp
4142
main.cpp
4243
monitor.cpp
@@ -94,7 +95,6 @@ target_link_libraries(RCSSServer
9495
RCSS::ConfParser
9596
RCSS::Net
9697
RCSS::GZ
97-
# Boost::filesystem
9898
ZLIB::ZLIB
9999
)
100100

src/Makefile.am

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ rcssserver_SOURCES = \
2020
initsenderonlinecoach.cpp \
2121
initsenderplayer.cpp \
2222
landmarkreader.cpp \
23+
leg.cpp \
2324
logger.cpp \
2425
main.cpp \
2526
monitor.cpp \
@@ -90,6 +91,7 @@ noinst_HEADERS = \
9091
initsenderonlinecoach.h \
9192
initsenderplayer.h \
9293
landmarkreader.h \
94+
leg.h \
9395
logger.h \
9496
monitor.h \
9597
observer.h \

src/audio.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -985,6 +985,7 @@ RegHolder vp15 = AudioSenderPlayer::factory().autoReg( &create< AudioSenderPlaye
985985
RegHolder vp16 = AudioSenderPlayer::factory().autoReg( &create< AudioSenderPlayerv8 >, 16 );
986986
RegHolder vp17 = AudioSenderPlayer::factory().autoReg( &create< AudioSenderPlayerv8 >, 17 );
987987
RegHolder vp18 = AudioSenderPlayer::factory().autoReg( &create< AudioSenderPlayerv8 >, 18 );
988+
RegHolder vp19 = AudioSenderPlayer::factory().autoReg( &create< AudioSenderPlayerv8 >, 19 );
988989

989990
template< typename Sender >
990991
AudioSender::Ptr
@@ -1011,6 +1012,7 @@ RegHolder vc15 = AudioSenderCoach::factory().autoReg( &create< AudioSenderCoachv
10111012
RegHolder vc16 = AudioSenderCoach::factory().autoReg( &create< AudioSenderCoachv7 >, 16 );
10121013
RegHolder vc17 = AudioSenderCoach::factory().autoReg( &create< AudioSenderCoachv7 >, 17 );
10131014
RegHolder vc18 = AudioSenderCoach::factory().autoReg( &create< AudioSenderCoachv7 >, 18 );
1015+
RegHolder vc19 = AudioSenderCoach::factory().autoReg( &create< AudioSenderCoachv7 >, 19 );
10141016

10151017
template< typename Sender >
10161018
AudioSender::Ptr
@@ -1037,5 +1039,6 @@ RegHolder voc15 = AudioSenderOnlineCoach::factory().autoReg( &create< AudioSende
10371039
RegHolder voc16 = AudioSenderOnlineCoach::factory().autoReg( &create< AudioSenderOnlineCoachv7 >, 16 );
10381040
RegHolder voc17 = AudioSenderOnlineCoach::factory().autoReg( &create< AudioSenderOnlineCoachv7 >, 17 );
10391041
RegHolder voc18 = AudioSenderOnlineCoach::factory().autoReg( &create< AudioSenderOnlineCoachv7 >, 18 );
1042+
RegHolder voc19 = AudioSenderOnlineCoach::factory().autoReg( &create< AudioSenderOnlineCoachv7 >, 19 );
10401043
}
10411044
}

src/bodysender.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,7 @@ RegHolder vp15 = BodySenderPlayer::factory().autoReg( &create< BodySenderPlayerV
438438
RegHolder vp16 = BodySenderPlayer::factory().autoReg( &create< BodySenderPlayerV14 >, 16 );
439439
RegHolder vp17 = BodySenderPlayer::factory().autoReg( &create< BodySenderPlayerV14 >, 17 );
440440
RegHolder vp18 = BodySenderPlayer::factory().autoReg( &create< BodySenderPlayerV18 >, 18 );
441+
RegHolder vp19 = BodySenderPlayer::factory().autoReg( &create< BodySenderPlayerV18 >, 19 );
441442
}
442443

443444
}

src/fullstatesender.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -541,6 +541,7 @@ RegHolder vp15 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSen
541541
RegHolder vp16 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV13 >, 16 );
542542
RegHolder vp17 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV13 >, 17 );
543543
RegHolder vp18 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV18 >, 18 );
544+
RegHolder vp19 = FullStateSenderPlayer::factory().autoReg( &create< FullStateSenderPlayerV18 >, 19 );
544545
}
545546

546547
}

0 commit comments

Comments
 (0)