Skip to content

Commit 0f53d93

Browse files
Official Release 17.0.0: Merge pull request #83 from rcsoccersim/develop
Official Release 17.0.0
2 parents e134e79 + 9745a25 commit 0f53d93

File tree

214 files changed

+6075
-4475
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

214 files changed

+6075
-4475
lines changed

CMakeLists.txt

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
cmake_minimum_required(VERSION 3.5.1)
2+
3+
project(RCSSServer VERSION 17.0.0)
4+
5+
set(CMAKE_CXX_STANDARD 14)
6+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
7+
8+
if(NOT CMAKE_BUILD_TYPE)
9+
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
10+
endif()
11+
set(CMAKE_CXX_FLAGS "-W -Wall")
12+
13+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
14+
set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)
15+
16+
find_package(ZLIB REQUIRED)
17+
if(ZLIB_FOUND)
18+
set(HAVE_LIBZ TRUE)
19+
endif()
20+
find_package(BISON REQUIRED)
21+
find_package(FLEX REQUIRED)
22+
find_package(Boost COMPONENTS system filesystem REQUIRED)
23+
24+
include(GNUInstallDirs)
25+
include(CheckIncludeFileCXX)
26+
27+
check_include_file_cxx("sys/socket.h" HAVE_SYS_SOCKET_H)
28+
check_include_file_cxx("sys/param.h" HAVE_SYS_PARAM_H)
29+
check_include_file_cxx("sys/time.h" HAVE_SYS_TIME_H)
30+
check_include_file_cxx("netinet/in.h" HAVE_NETINET_IN_H)
31+
check_include_file_cxx("arpa/inet.h" HAVE_ARPA_INET_H)
32+
check_include_file_cxx("netdb.h" HAVE_NETDB_H)
33+
check_include_file_cxx("unistd.h" HAVE_UNISTD_H)
34+
check_include_file_cxx("poll.h" HAVE_POLL_H)
35+
check_include_file_cxx("pwd.h" HAVE_PWD_H)
36+
37+
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake config.h)
38+
39+
add_subdirectory(rcss)
40+
add_subdirectory(src)

ChangeLog

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
2022-04-02 Hidehisa Akiyama <hidehisaakiyama@users.noreply.github.com>
2+
3+
* CMakeLists.txt:
4+
* NEWS:
5+
* configure.ac:
6+
- update a major version number. Official release 17.0.0
7+
- improve the dash model and the catch model
8+
- support a JSON-based monitor protocol.
9+
110
2021-07-20 Hidehisa Akiyama <hidehisaakiyama@users.noreply.github.com>
211

312
* NEWS:

Makefile.am

+4-2
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ libtool: $(LIBTOOL_DEPS)
55
$(SHELL) ./config.status --recheck
66

77
SUBDIRS = \
8-
rcssbase \
8+
rcss \
99
src \
1010
.
1111

1212
EXTRA_DIST = \
13-
README.md
13+
README.md \
14+
CMakeLists.txt \
15+
config.h.cmake
1416

1517
CLEANFILES = \
1618
*~ \

NEWS

+38
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,41 @@
1+
[17.0.0]
2+
* New parameters:
3+
- server::max_catch_angle (default value: 90.0)
4+
- server::min_catch_angle (default value: -90.0)
5+
6+
* Changed parameters:
7+
- server::min_dash_power (-100.0 -> 0)
8+
- server::back_dash_rate (0.6 -> 0.7)
9+
10+
* Improvement of the catch model. The direction of goalie's catch
11+
command has been restricted within [server::min_catch_angle,
12+
server::max_catch_angle]. The default values are [-90.0, 90.0].
13+
This setting means goalies cannot catch the ball behind them.
14+
15+
* Improvement of the dash model. server::min_dash_power is changed
16+
from -100.0 to 0.0. This means players cannot use the negative
17+
power in order for them to accelerate backward. If players would
18+
like to accelerate backward, they need to use the omnidirectional
19+
dash. In connection with the change of the dash power,
20+
server::back_dash_rate has been changed.
21+
22+
* Support a JSON-based monitor protocol. If the monitor tries to
23+
connect to the server by the client version 5, the received
24+
messages will be JSON. The format of the game log file (.rcg) has
25+
also followed the monitor protocol. If the value of
26+
server::game_log_version is 6, the content of the recorded game
27+
log is a JSON array except for the header line.
28+
29+
* The installation destination of the library header files has been
30+
unified under PREFIX/include/rcss. The location of the clang
31+
parser library has been moved to prefix/include/rcss/clang.
32+
33+
* Support CMake. Thanks to gikari for providing his great
34+
contribution on GitHub.
35+
36+
* Support C++11/14. Some environment-dependent implementations have
37+
been replaced by the C++ standard library.
38+
139
[16.0.1]
240
* Fix a bug of the length of half time caused by slow_down_factor.
341

README.md

+94-48
Original file line numberDiff line numberDiff line change
@@ -7,47 +7,68 @@
77

88
The RoboCup Soccer Simulator Server (rcssserver) is a research and educational tool for multi-agent systems and artificial intelligence. It allows 11 simulated autonomous robotic players to play soccer (football).
99

10-
## Quick Start
10+
For further reading, please check [the user's manual](https://rcsoccersim.readthedocs.io/).
1111

12+
## :soccer: Quick Start
13+
14+
rcssserver is implemented by C++14 and depends some libraries.
1215
Make sure you have the required dependencies installed on your system:
1316

14-
- g++
15-
- make
16-
- boost
17-
- bison
17+
- g++ (which supports C++14)
18+
- autoconf
19+
- automake
20+
- libtool
1821
- flex
22+
- bison
23+
- boost >= 1.44
24+
25+
In the case of Ubuntu 18.04 or 20.04, the following commands will resolve all dependencies:
26+
27+
```
28+
sudo apt update
29+
sudo apt install build-essential automake autoconf libtool flex bison libboost-all-dev
30+
```
1931

20-
Download the latest rcssserver release in the [releases section](https://github.com/rcsoccersim/rcssserver/releases). Extract it and from the rcssserver directory execute:
32+
Then, download the latest rcssserver tarball from the [releases section](https://github.com/rcsoccersim/rcssserver/releases).
33+
Extract it and from the rcssserver directory execute:
2134

2235
```bash
36+
tar xzvfp rcssserver-x.x.x.tar.gz
37+
cd rcssserver-x.x.x
2338
./configure
2439
make
2540
```
2641

2742
This will build the necessary binaries to get you up and running.
43+
`rcssserver/src/rcssserver` is the binary for the simulator server.
2844

29-
`rcssserver/src/rcssserver` is the binary for the simulator server. The simulator
30-
server manages the actual simulation and comunicates with client programs that
31-
control the simulated robots. To be able to run, the binary needs to find shared
32-
libraries which are created when you build rcssserver. This means you must either
33-
install the server (make install) or run it from `rcssserver/src`.
45+
The simulator server manages the actual simulation and comunicates with client programs that
46+
control the simulated robots.
47+
To be able to run, the binary needs to find shared libraries which are created when you build rcssserver.
48+
This means you must either install the server (make install) or run it from `rcssserver/src`.
3449

3550
A sample client can be found at `rcssserver/src/rcssclient`.
3651

3752
To see what is actually happening in the simulator, you will need to start a
38-
simulator monitor, which needs to be installed separately ([rcssmonitor](https://github.com/rcsoccersim/rcssmonitor),
39-
rcssmonitor_classic, [soccerwindow2](https://osdn.net/projects/rctools/releases/p4886)
40-
or any other third party monitor).
53+
simulator monitor, which needs to be installed separately ([rcssmonitor](https://github.com/rcsoccersim/rcssmonitor), or any other third party monitor).
4154

42-
To playback games that that you have recorded or downloaded, you will need to
43-
start the log player such as [rcsslogplayer](https://github.com/rcsoccersim/rcsslogplayer),
44-
which must also be downloaded separately.
55+
To playback games that you have recorded or downloaded, you will need to start the log player.
56+
[rcssmonitor](https://github.com/rcsoccersim/rcssmonitor) can be used for this purpose.
4557

46-
## Configuring
58+
The version 17.0.0 or later support [CMake](https://cmake.org/).
59+
If CMake is prefered or problems with the above procedure, try the following commands at the top of the project directory:
4760

48-
Before you can build The RoboCup Soccer Simulator Server you will need to run
49-
the `configure` script located in the root of the distribution directory.
61+
```bash
62+
cd rcssserver-x.x.x
63+
mkdir build
64+
cd build
65+
cmake ..
66+
make
67+
```
68+
69+
## :gear: Configuring
5070

71+
Before building rcssserver, you will need to run the `configure` script located in the root of the distribution directory.
5172
The default configuration will set up to install the server components in the
5273
following location:
5374

@@ -56,74 +77,99 @@ following location:
5677
You may need administrator privileges to install the server into the default
5778
location. This locations can be modified by using configure's `--prefix=DIR`
5879
and related options. See `configure --help` for more details.
80+
```bash
81+
./configure --prefix=YOUR_INSTALLATION_DIR
82+
```
5983

6084
The server has several features that can be enabled or disabled at configure time
6185
by using the `--enable-FEATURE[=ARG]` or `--disable-FEATURE` parameters to
6286
`configure`. `--disable-FEATURE` is equivalent to `--enable-FEATURE=no` and
6387
`--enable-FEATURE` is equivalent to `--enable-FEATURE=yes`. The only valid values
6488
for `ARG` are `yes` and `no`.
6589

66-
`--enable-fast_scanner=yes` will enable a fast building but (very) large
67-
scanner for the coach language. You will need to have `lex` or `flex` installed
68-
and you will need to manually remove the `coach_lang_tok.cc` file in the
69-
`rcssserver/src` directory. This is disabled by default. I found the actual
70-
speed of the parser show only minimal improvement when using this option on my
71-
system, but this may not be true on your system. All I can suggest is to test it
72-
on your system and decide for yourself if the speed increase justifies the
73-
increase in size of the executable.
90+
`--enable-fast_scanner=yes` will enable a fast building but (very) large scanner for the coach language.
91+
You will need to have `flex` installed and you will need to manually remove the `coach_lang_tok.cpp` file in the `rcssserver/rcss/clang` directory.
92+
This is disabled by default.
93+
I found the actual speed of the parser show only minimal improvement when using this option on my system, but this may not be true on your system.
94+
All I can suggest is to test it on your system and decide for yourself if the speed increase justifies the increase in size of the executable.
7495

7596
`--enable-rcssclient=yes` will enable the building of rcssclient, a sample
7697
client program. This is enabled by default.
7798

7899
`--enable-debug=yes` will enable the building of the modules with debugging
79100
information. This is disabled by default.
80101

102+
Once you have successfully configured the monitor, simply run `make` to build the sources.
81103

82-
## Building
104+
If CMake is chosen, `ccmake` command is available for the configuration:
105+
```bash
106+
cd build
107+
ccmake ..
108+
```
109+
110+
## :hammer_and_wrench: Building
83111

84112
Once you have successfully configured the server, simply run `make` to build
85113
the sources.
86114

87-
## Installing
115+
## :package: Installing
88116

89117
When you have completed building the server, its components can be installed
90118
into their default locations or the locations specified during configuring by
91-
running `make install`. Depending on where you are installing the
92-
server, you may need special permissions.
119+
running
120+
```bash
121+
make install
122+
```
123+
Depending on where you are installing the server, you may need special permissions.
93124

94-
## Uninstalling
125+
## :wastebasket: Uninstalling
95126

96127
The server can also be easily removed by entering the distribution directory and
97-
running `make uninstall`. This will remove all the files that where installed,
128+
running
129+
```bash
130+
make uninstall
131+
```
132+
133+
This will remove all the files that where installed,
98134
but not any directories that were created during the installation process.
99135

100-
## Using the Server
136+
In the case of CMake, find `install_manifest.txt` under the build directory, then execute:
137+
```bash
138+
xargs rm < install_manifest.txt
139+
```
101140

102-
To start only the server either type `./rcssserver` from the directory
103-
containing the executable or `rcssserver` if you installed the executables
104-
in your PATH. rcssserver will look in your home directory for the configuration files:
141+
## :arrow_forward: Using the Server
105142

143+
To start only the server either type `./rcssserver` from the directory
144+
containing the executable or `rcssserver` if you installed the executables
145+
in your PATH.
106146
```bash
107-
~/.rcssserver/server.conf
108-
~/.rcssserver/player.conf
109-
~/.rcssserver-landmark.xml # (optional)
147+
rcssserver
110148
```
149+
rcssserver will look in your home directory for the configuration files:
150+
151+
- ~/.rcssserver/server.conf
152+
- ~/.rcssserver/player.conf
153+
- ~/.rcssserver/CSVSaver.conf
154+
- ~/.rcssserver-landmark.xml (optional)
111155

112156
If these files do not exist they will be created and populated with default values.
113157

114-
To start the sample client, type `./rcssclient` or `rcssclient` as above. Then type
115-
`(init sample)`. This will connect the sample client to the server. You can then
116-
type in client command to move the client around the field. You will also need a
158+
To start the sample client, type `./rcssclient` or `rcssclient` as above. Then type
159+
`(init sample)`. This will connect the sample client to the server. You can then
160+
type in client command to move the client around the field. You will also need a
117161
monitor to be able to see whats happening on the field.
118162

119163
If you installed the server and the monitor successfully, you can use the
120164
`rcsoccersim` script. To start the simulator (server and monitor) either type:
121165

122-
`rcsoccersim`
123-
166+
```bash
167+
rcsoccersim
168+
```
124169

125-
## Contributing
170+
## :incoming_envelope: Contributing
126171

127-
For bug reports, feature requests and latest updates, please open an issue or a pull request.
172+
For bug reports, feature requests and latest updates, please goto
173+
https://github.com/rcsoccersim/rcssserver and open an issue or a pull request.
128174

129175
> The RoboCup Soccer Server Maintainance Group

config.h.cmake

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#define VERSION "${PROJECT_VERSION}"
2+
#define PACKAGE "rcssserver"
3+
4+
#cmakedefine HAVE_LIBZ 1
5+
#cmakedefine HAVE_SYS_SOCKET_H 1
6+
#cmakedefine HAVE_NETINET_IN_H 1
7+
#cmakedefine HAVE_ARPA_INET_H 1
8+
#cmakedefine HAVE_POLL_H 1
9+
#cmakedefine HAVE_NETDB_H 1
10+
#cmakedefine HAVE_SYS_TIME_H 1
11+
#cmakedefine HAVE_PWD_H 1
12+
#cmakedefine HAVE_SYS_PARAM_H 1
13+
#cmakedefine HAVE_UNISTD_H 1
14+
#cmakedefine HAVE_SYS_TYPES_H 1
15+
#cmakedefine HAVE_STDINT_H 1
16+
#cmakedefine HAVE_STDDEF_H 1
17+
18+
#define HAVE_SOCKLEN_T 1

configure.ac

+13-17
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
AC_PREREQ(2.61)
55
LT_PREREQ([2.2])
6-
AC_INIT([RCSSServer],[16.0.1],[sserver-admin@users.sf.net],[rcssserver])
6+
AC_INIT([RCSSServer],[17.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])
@@ -34,18 +34,13 @@ AC_PROG_MAKE_SET
3434
AC_CHECK_LIB([m], [cos])
3535
dnl AC_CHECK_LIB(expat, XML_Parse)
3636
#AC_CHECK_LIB([z], [deflate])
37-
AC_SUBST(GZ_LIBS)
38-
AC_CHECK_LIB([z], [deflate],
39-
[AC_DEFINE([HAVE_LIBZ], [1],
40-
[Define to 1 if you have the `z' library (-lz).])
41-
GZ_LIBS="-lz"])
42-
43-
AC_ARG_WITH(sstream,
44-
AS_HELP_STRING(--with-sstream,use sstream instead of strstream (default=yes)),
45-
use_sstream=$withval, use_sstream=yes)
46-
if test "$use_sstream" = "yes"; then
47-
AC_CXX_HAVE_SSTREAM
48-
fi
37+
#AC_SUBST(GZ_LIBS)
38+
#AC_CHECK_LIB([z], [deflate],
39+
# [AC_DEFINE([HAVE_LIBZ], [1],
40+
# [Define to 1 if you have the `z' library (-lz).])
41+
# GZ_LIBS="-lz"])
42+
AX_CHECK_ZLIB([],
43+
[AC_MSG_NOTICE(Zlib not found.)])
4944

5045
##################################################
5146
# Checks for header files.
@@ -250,10 +245,11 @@ fi
250245
##################################################
251246

252247
AC_CONFIG_FILES([Makefile
253-
rcssbase/Makefile
254-
rcssbase/net/Makefile
255-
rcssbase/conf/Makefile
256-
rcssbase/gzip/Makefile
248+
rcss/Makefile
249+
rcss/net/Makefile
250+
rcss/conf/Makefile
251+
rcss/gzip/Makefile
252+
rcss/clang/Makefile
257253
src/Makefile
258254
src/rcsoccersim],
259255
[test -f src/rcsoccersim && chmod +x src/rcsoccersim])

0 commit comments

Comments
 (0)