diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..bf9eadb1 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,51 @@ +language: cpp + +compiler: + - gcc + +# by default Ubuntu Precise is included +# this results on 3 build configurations: +# Ubuntu Precise and Trusty + Latest OSX image +matrix: + include: + - os: linux + dist: trusty + sudo: required + - os: osx + osx_image: xcode8 + +addons: + apt: + packages: + - cmake + - libqt4-dev + - libgl1-mesa-dev + - libglu1-mesa-dev + - libprotobuf-dev + - protobuf-compiler + - libode-dev + - libboost-dev + +before_install: + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update ; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install qt4 ; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install protobuf ; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install ode --with-double-precision ; fi + +install: + # vartypes + - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then git clone https://github.com/szi/vartypes.git ; fi + - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then git clone https://github.com/lordhippo/vartypes.git -b osx-fix; fi + - cd vartypes + - mkdir build && cd build + - cmake .. + - make + - sudo make install + +script: + # grsim + - cd $TRAVIS_BUILD_DIR + - mkdir build && cd build + - cmake .. + - make + - sudo make install \ No newline at end of file diff --git a/AUTHORS.md b/AUTHORS.md index 488f66e0..beabd72c 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -1,21 +1,19 @@ -# Head Developer -- Ali Koochakzadeh - Amirkabir University of Technology (ali.koochakzade@gmail.com) +## Authors +grSim was originally developed by [Ali Koochakzadeh](https://github.com/ali-k) and [Mani Monajjemu](https://mani.im) from [Parsian](http://wiki.robocup.org/Small_Size_League/Teams#Parsian), the RoboCup Small Size Team of [Amirkabir University of Technology](http://www.aut.ac.ir/aut/). Since 2011, it has received numerous contributions from the RoboCup SSL community as well as Parsian team members (listed below). grSim is Currently maintained by [Mohammad Mahdi Rahimi](https://github.com/Mahi97). -# Project Manager -- Mani Monajjemi - Simon Fraser University (https://github.com/mani-monaj) +### Contributers +- [Christopher Head](https://github.com/Hawk777) - Thunderbots (University of British Coloumbia) +- [Jonathan Fraser](https://github.com/Binaryblade) - Thunderbots (University of British Coloumbia) +- [Verónica Raspeño](vero.uc3m@gmail.com) - University Carlos III of Madrid +- [Alejandro Caparrós](alexcap.uc3m@gmail.com) - University Carlos III of Madrid +- [Jan Segre](jan@segre.in) - RoboIME +- [Henrique Bonini de Britto Menezes](henrique.menezes@usp.br) - Universidade de São Paulo -# Other Contributers -- Christopher Head - University of British Coloumbia (https://github.com/Hawk777) -- Jonathan Fraser - University of British Coloumbia (https://github.com/Binaryblade) -- Verónica Raspeño - University Carlos III of Madrid- (vero.uc3m@gmail.com) -- Alejandro Caparrós - University Carlos III of Madrid - (alexcap.uc3m@gmail.com) -- Jan Segre - RoboIME Team (jan@segre.in) -- Henrique Bonini de Britto Menezes - Universidade de São Paulo - (henrique.menezes@usp.br) +### Contributers from Parsian SSL -# Contributers from Parsian Small Size Team from Amirkabir University of Technology -- Sepehr Mohaimanianpour (s.mehdi.mohaimanianpour@gmail.com) -- Arash Behmand (arashbehmand@gmail.com) -- Mohammad Mahdi Rahimi (https://github.com/Mahi97) -- Ehsan Omidi (ehomid@microsoft.com) \ No newline at end of file +- [Sepehr Mohaimanianpour](http://sepehr.im) +- [Arash Behmand](https://github.com/arashbehmand) +- [Mohammad Mahdi Rahimi](https://github.com/Mahi97) +- [Ehsan Omidi](#) \ No newline at end of file diff --git a/INSTALL.md b/INSTALL.md index cb8d328b..10cc258f 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,7 +1,8 @@ # GrSim - INSTALL + ## Overview -We developed grSim on Ubuntu 9.10+ OS. (Ubuntu 14.04+ tested and is recommended). It is very important that the Graphics Card Driver is installed. (Ubuntu packages of nVidia and AMD(ATI) graphics cards are available). grSim will compile and run in both 32 and 64 bits Linux and Mac-osx. +We developed grSim on Ubuntu OS. (Ubuntu 14.04+ tested and is recommended). It is important that the graphics card driver is installed properly (the official Ubuntu packages for nVidia and AMD(ATI) graphics cards are available). grSim will compile and run in both 32 and 64 bits Linux and Mac OS. GrSim is written in C++, in order to compile it, you will need a working toolchain and a c++ compiler. @@ -9,105 +10,108 @@ GrSim is written in C++, in order to compile it, you will need a working toolcha GrSim depends on: -- OpenGL -- Qt4 Development Libraries -- Open Dynamics Engine (ODE) -- VarTypes Library -- Google Protobuf - -We use CMake to build and install GrSim. +- [CMake](https://cmake.org/) version 2.8+ +- [OpenGL](https://www.opengl.org) +- [Qt4 Development Libraries](https://www.qt.io) version 4.8+ +- [Open Dynamics Engine (ODE)](http://www.ode.org) +- [VarTypes Library](https://github.com/szi/vartypes) +- [Google Protobuf](https://github.com/google/protobuf) +- [Boost development libraries](http://www.boost.org/) (needed by VarTypes) +**Note:** It's necessary to compile ODE in double precision. This is default when installing the ODE binaries in Ubuntu. However, if you are compiling ODE from source (e.g on Mac OS), please make sure to enable the double precision during the configuration step: `./configure --enable-double-precision`. -> It's neccessery to use ode double percision so if you'r using source code, please attention to use `./configure --enable-double-precision` for configuration. - -## Linux/Unix Installation +### Linux/Unix Installation If you run a Debian system, or derivative, first ensure that these dependencies are there: ```bash -sudo apt-get install build-essential cmake libqt4-dev libgl1-mesa-dev libglu1-mesa-dev libprotobuf-dev protobuf-compiler libode-dev +$ sudo apt-get install git build-essential cmake libqt4-dev libgl1-mesa-dev libglu1-mesa-dev libprotobuf-dev protobuf-compiler libode-dev libboost-dev ``` -Next we need to install VarTypes manually, which itself depends on Qt4 so please make sure that you installed Qt4 first : +Next compile and install VarTypes from source. In the following we install VarTypes from source using `git`. - $ (Get VarTypes) - $ cd ./vartypes - $ mkdir build - $ cd build - $ cmake .. - $ make - $ sudo make install +```bash +$ cd /tmp +$ git clone https://github.com/szi/vartypes.git +$ cd vartypes +$ mkdir build +$ cd build +$ cmake .. +$ make +$ sudo make install +``` -Next, pull down the project: +Next, clone grSim into your preferred location. - $ git clone https://github.com/mani-monaj/grSim.git - $ cd ./grSim +```bash +$ cd /path/to/grsim_ws +$ git clone https://github.com/mani-monaj/grSim.git +$ cd grSim +``` Create a build directory within the project (this is ignored by .gitignore): - $ mkdir build - $ cd build +```bash +$ mkdir build +$ cd build +``` Run CMake to generate the makefiles: - $ cmake .. +```bash +$ cmake .. +``` Then compile the program: - $ make - -The program is now under ../bin directory with the name grSim. You can run it from here just by typing "../bin/grSim" - -## Mac OS X Installation - -To make it easier to install the dependencies, you can use a package manager like Homebrew. -First ensure the dependencies are there: - - $ brew install cmake - $ brew install ode --enable-double-precision - $ brew install qt4 - $ brew install protobuf - -If you run into build issues, you may need to run this first: - - $ brew update - $ brew doctor +```bash +$ make +``` -Next we need to install VarTypes manually : +The binary is copied to the `../bin` folder after a successful compilation. -> Note : the vartypes need some edits to be compatible with mac-osx so it's recommanded to use : -> (branch -> osx-fix) +### Mac OS X Installation +Pre-requirements: - $ (Get VarTypes) - $ cd ./vartypes - $ mkdir build - $ cd build - $ cmake .. - $ make - $ sudo make install +- [Xcode](https://developer.apple.com/xcode/) or Xcode Command Line Tools 8.0 or newer +- [Homebrew](http://brew.sh/) package manager. -Next, pull down the project: +First ensure the dependencies are there: - $ git clone https://github.com/mani-monaj/grSim.git - $ cd ./grSim +```bash +$ brew install cmake +$ brew install ode --with-double-precision +$ brew install qt4 +$ brew install protobuf +``` -Create a build directory within the project (this is ignored by .gitignore): +If you run into build issues, you may need to run this first: - $ mkdir build - $ cd build +```bash +$ brew update +$ brew doctor +``` -Run CMake to generate the makefiles: +Next we need to install VarTypes manually. Please refer to the documentation above for the procedure. - $ cmake .. +**IMPORTANT NOTE:** VarTypes currently does not compile on MacOS. Please use the following fork of Vartypes instead of the official repository: `https://github.com/lordhippo/vartypes.git (branch: osx-fix)` -Then compile the program: +The steps to compile grSim on Mac OS is similar to the steps outlines above for Linux: - $ make -The program is now under `../bin` directory with the name grSim. You can run it from here just by typing `../bin/grSim`; +```bash +$ cd /path/to/grsim_ws +$ git clone https://github.com/mani-monaj/grSim.git +$ cd ./grSim +$ mkdir build +$ cd build +$ cmake .. +$ make +``` +The binary files (grSim and the sample client) will be placed in `../bin`. -you may want to use a cmake-gui instead of cmake, or maybe ccmake for ncurses fans. +## Notes on the performance -The binary files (grSim and sample client) will be placed in `./bin`. Check the fps in status bar, if it is running on 65fps everything is ok, otherwise check the graphics card installation and OpenGL settings. If you received linker error about GL related libraries, also check your graphics card driver +When running grSim, check the FPS in the status bar. If it is running at **60 FPS** or higher, everything is ok. Otherwise check the graphics card's driver installation and OpenGL settings. \ No newline at end of file diff --git a/LICENSE.md b/LICENSE.md index c8a32896..09c4d7dd 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,3 +1,6 @@ +grSim - RoboCup Small Size League Simulator +Copyright (c) 2011 Parsian SSL Team (Amirkabir University of Technology) + This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or diff --git a/README.md b/README.md index 6d7125df..64f599a9 100644 --- a/README.md +++ b/README.md @@ -1,15 +1,20 @@ -[![Run Status](https://api.shippable.com/projects/5620224e1895ca44741e0b4d/badge?branch=2.0-dev)](https://app.shippable.com/projects/5620224e1895ca44741e0b4d) -grSim -===== +[grSim](http://github.com/mani-monaj/grSim) [![Run Status](https://api.shippable.com/projects/5620224e1895ca44741e0b4d/badge?branch=2.0-dev)](https://app.shippable.com/projects/5620224e1895ca44741e0b4d) +======================= -RoboCup Small Size League Simulator +[RoboCup Small Size League](http://wiki.robocup.org/Small_Size_League) Simulator. +![grSim on Ubuntu](docs/img/screenshot01.jpg?raw=true "grSim on Ubuntu") + +- [Install instructions](INSTALL.md) +- [Authors](AUTHORS.md) +- [Changelog](CHANGELOG.md) +- License: [GNU General Public License (GPLv3)](LICENSE.md) System Requirements ----------------------- -grSim will likely run on a modern dual core PC with good graphics card. Typical configuration is: +grSim will likely run on a modern dual core PC with a decent graphics card. Typical configuration is: - Dual Core CPU (2.0 Ghz+) - 1GB of RAM @@ -21,29 +26,24 @@ Note that it may run on lower end equipment though good performance is not guara Software Requirements --------------------- -grSim uses these libraries: +grSim compiles on Linux (tested on Ubuntu variants only) and Mac OS. It depends on the following libraries: -- Qt 4.8+ (provided by libqt4-dev on debian based distros) +- Qt 4.8+ (provided by libqt4-dev on Debian based distributions) - OpenGL - Open Dynamics Engine (ODE) - VarTypes Library - Google ProtoBuf -Installation ------------- - -Please refer to INSTALL file. - - Usage ----- -Receiving data from grSim is exactly like receiving from [SSL-Vision](http://code.google.com/p/ssl-vision) using Google Protobuf library -Sending data to Simulator is also possible using Google Protobuf. Sample clients are included in [clients](./clients) folder. There are two clients available, qt-based and Java-based. The native client is compiled during the grSim compilation. To compile the Java client, please consult client's `README` file. +Receiving data from grSim is similar to receiving data from [SSL-Vision](https://github.com/RoboCup-SSL/ssl-vision) using [Google Protobuf](https://github.com/google/protobuf) library. +Sending data to the simulator is also possible using Google Protobuf. Sample clients are included in [clients](./clients) folder. There are two clients available, *qt-based* and *Java-based*. The native client is compiled during the grSim compilation. To compile the Java client, please consult the corresponding `README` file. -Changelog ---------- +Citing +------ -Please refer to the CHANGELOG file. +If you use grSim in your research, please cite [the following paper](http://link.springer.com/chapter/10.1007/978-3-642-32060-6_38): +> Monajjemi, Valiallah (Mani), Ali Koochakzadeh, and Saeed Shiry Ghidary. "grSim – RoboCup Small Size Robot Soccer Simulator." In Robot Soccer World Cup, pp. 450-460. Springer Berlin Heidelberg, 2011. \ No newline at end of file diff --git a/docs/img/screenshot01.jpg b/docs/img/screenshot01.jpg new file mode 100644 index 00000000..dadc3603 Binary files /dev/null and b/docs/img/screenshot01.jpg differ