===============================================================================
                     Modular OpenRobots Simulator Engine
                       Copyright (c) 2009-2010 ONERA
                       Copyright (c) 2009-2016 LAAS-CNRS
                       Copyright (c) 2015-2016 ISAE-SUPAERO
    Copyright held by the MORSE authors or the institutions employing them,
    refer to the AUTHORS file for the list. The list of the contributors to 
    each file can be obtained from the commit history ('git log <file>').
===============================================================================


All this information can be read online:
http://www.openrobots.org/morse/doc/stable/user/installation.html


General requirements
--------------------

Hardware
++++++++

A decent machine is required (typically, with an Intel i5 + 4GB RAM, you
should be comfortable).

To display textures correctly in the simulator, as well as to generate images
using the simulated cameras, you will need to have a graphics card that
supports GLSL shading. The Blender website lists these graphic cards as
compatible with GLSL:

- ATI Radeon 9x00, Xx00, X1x00, HD2x00 and HD3x00 series and newer.  - NVidia
  Geforce FX, 6x00, 7x00, 8x00, 9x00 and GTX 2x0 and newer.

If you do not need cameras and OpenGL textures/shaders, you are advised to
run your simulation in fastmode (refer to the simulation's Builder
API) for vastly improved loading time and performances.

Supported operating systems
+++++++++++++++++++++++++++

Only Linux (x86, x86_64) is currently officially supported. MORSE is mainly
developed on Fedora and Ubuntu, but we don't expect problems on other
distributions.

Other UNIXes systems probably work as well (like FreeBSD or Apple MacOSX).

MORSE does not currently officially support Microsoft Windows, although some
users reported success. Testers/maintainers for Windows are welcome!

Packaged versions
-----------------

morse-1.0 is available on Debian Wheezy/Ubuntu >= 13.04. You can install
the package morse-simulator with your favorite software manager::

  $ sudo apt-get install morse-simulator

You can also install the Python bindings with::

  $ sudo apt-get install python3-morse-simulator


You can also easily install MORSE with:

- robotpkg
- brew (MacOSX)

See their associated documentation for details.


If you plan to use the simulator with raw sockets or text files as interface
(for instance, to integrate MORSE with MatLab or other specific
applications), you don't need anything else. Otherwise, you need to install
the software for the desired middlewares.

If you want to distribute your simulation in a multinode infrastructure,
MORSE provides by default a socket service for multinode synchronization. If
you want to use HLA, you have to first install the CERTI and PyHLA packages.

Manual installation
-------------------

    The directory where MORSE is installed will be referred to as $MORSE_ROOT
    in this document.

    It is recommended to store this environment variable, as it is necessary to
    use the Builder API scripts to generate simulation
    scenes with custom equipped robots.

Prerequisites
+++++++++++++

- cmake
- Python (3.3 or +)
- python-dev package
- Blender (>= 2.65) build with Python >= 3.3. You can simply get a binary from
  Blender website


Installation
++++++++++++

Download the latest version of the source code. It is stored in a git
repository::

  $ git clone https://github.com/laas/morse.git

You can also get a tarball version here.

Go to the directory where you have previously downloaded the MORSE source.
Then type these commands::

  $ mkdir build && cd build
  $ cmake ..

By default, MORSE will install in /usr/local. You can easily change the
install directory by giving additional parameters to cmake.  You can also
change the installation type and disable use middleware bindings by using
these additional parameters.

- CMAKE_INSTALL_PREFIX controls where will be installed MORSE. The install
  prefix directory is referred to as $MORSE_ROOT.
- BUILD_CORE_SUPPORT controls the builds and install of Morse core. It is
  ON by default
- BUILD_DOC_SUPPORT controls the build of the documentation (require
  sphinx)
- BUILD_HLA_SUPPORT controls the builds of HLA support for multi-node
  simulations in MORSE
- BUILD_POCOLIBS_SUPPORT controls the build of pocolibs support in MORSE.
- BUILD_YARP_SUPPORT controls the build of YARP support in MORSE.
- BUILD_ROS_SUPPORT controls the build of ROS support in MORSE.
- BUILD_MOOS_SUPPORT controls the build of MOOS support in MORSE.
- PYMORSE_SUPPORT controls the build and installation of pymorse, a
  library to interact with Morse through the socket interface. It is needed
  for test infrastructure.
- CMAKE_BUILD_TYPE controls the optimization stuff for C/C++ extension
  (Release is a good choice).
- PYTHON_EXECUTABLE indicate where the python executable is in your system
  (must be >= 3.3)

You can set up the different variables using the command line.
For instance, to build and install MORSE with YARP support in /opt, you need something like::

  $ cmake -DBUILD_YARP_SUPPORT=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt ..

Or to tell MORSE where to find a Python installed in a different location::

  $ cmake -DPYTHON_EXECUTABLE=/usr/local/bin/python3.3 ..

Alternatively, you can use ccmake .. to change all of these parameters using a
graphical interface. You can modify many different variables by switching to
"advanced mode" (pressing the t key).

After configuring the necessary parameters, compile with::

  $ sudo make install

The optional $MORSE_BLENDER environment variable can be set to let the
simulator know where to look for Blender if it is not accessible from the
path.

You can check your configuration is ok with::

  $ morse check

When updating MORSE to a more recent version, you'll simply have to do::

    $ git checkout [version]
    $ cd build
    $ make install

Installation troubleshooting
----------------------------

In case of problems installing MORSE, verify the list of Frequently Asked
Questions.
