-
Notifications
You must be signed in to change notification settings - Fork 69
Installation Guide
LTLMoP is supported on Linux (developed mainly on Ubuntu), Mac OS X (developed mainly on 10.8.x), and Windows (developed mainly on Win7).
This section lists the bare-minimum software that must be installed for LTLMoP to run.
-
A Java Runtime Environment (JRE) and Java Development Kit (JDK)
This may already be installed on your computer; otherwise, see the Java SE Download Page or your package manager (e.g. Synaptic on Ubuntu).
The JDK is necessary to compile the synthesis subsystem.
(Note: you may need to manually add the JDK
bin/
folder to your system path. On Windows, this can be done from the command-line using the commandsetx PATH "%PATH%;C:\Program Files\Java\jdkXXXX\bin"
where XXXX is the JDK version number. Otherwise, see this page for more information.) -
Python 2.7+ and libraries
Most versions of Linux come with Python. Packages can be installed using Synaptic Package Manager (which itself can be installed with Ubuntu Software Center). python-numpy, python-scipy and wx-python can then be installed with Synaptic. The Polygon library for Python can be installed using the installer from the official website.
For Windows (both 32- and 64-bit), you can use the official Python installer and official wxPython installer along with this repository of library binaries (be sure to choose the packages for your version and architecture of Python). Alternatively, for 32-bit Windows, the Python(x,y) package is a fairly convenient way to install everything at once (though you may want to disable installation of large unrelated packages like Eclipse).
For Mac OS X, MacPorts is recommended (though only for users comfortable with the command-line). Once MacPorts is installed, you can just run
sudo port install python27 py27-numpy py27-polygon py27-scipy py27-wxpython-devel
.Regardless of your platform, please make sure the following packages are installed:
- wxPython (A cross-platform GUI library)
- NumPy and SciPy (Libraries that provide matrix operations and optimization routines)
- Polygon (For decomposition and other polygon operations)
(Note: you may also need to manually add Python to your system path. The procedure is almost identical to the instructions above for adding the Java path, except you will save the path to the Python folder. Python usually places its folder in "C:\PythonXX" where XX is the version number.
This section lists other packages that can be used for extended functionality.
- If you will want to be able to view automata as PDFs: install Graphviz.
- To perform unrealizable core-finding, LTLMoP currently requires PicoSAT to be installed into an appropriate subdirectory of
src/lib/cores
, e.g.src/lib/cores/picosat-954
. Be sure to enable trace support (i.e../configure --trace
). See also Tips for compiling PicoSAT on Windows. - To use OMPL for motion planning, you will need to install it.
- If you want to use the ODE simulator (tested only on Windows and Ubuntu):
- Install pygame, PyOpenGL, and PyODE (see the previous section for library sources)
- Install the Open Dynamics Engine (ODE):
- Get version 0.8 (no later versions!).
- If you are installing ODE on Windows, you should download the source package, then navigate to the build directory which is populated with different versions of Visual Studio solution folders named vs200X. Open one of these solutions in Visual Studio and build the solution there. This will install ODE on your system.
There are three ways to download a copy of LTLMoP:
The first option is to download an up-to-date copy of the LTLMoP development branch (.zip) from GitHub. After downloading, extract the contents of the LTLMoP zip file to the desired install directory.
The second is for Git users to clone the repository by running git clone https://github.com/LTLMoP/LTLMoP.git
).
Lastly, those that wish to automatically set up a development environment for LTLMoP can download and run this install script (Note: this is the recommended method for ASL members). After downloading, simply run the script in Python. This script will help you get set up with a fork of LTLMoP on GitHub and check it out onto your computer. LTLMoP uses Git for version tracking. Make sure it is installed on your system (Windows: get Git for Windows, OS X: run sudo port install git-core
, Ubuntu: install the git
Synaptic package).
(Note: On Windows, due to write permissions, LTLMoP does not behave well when installed to the Program Files
directory. The recommended install directory is C:\LTLMoP
.)

Compiling the Synthesis Subsystem (JTLV/GROne)
This only needs to be done once (unless you upgrade your copy of LTLMoP, in which case you should be sure to do this again!)
- Navigate to the directory
(LTLMoP install dir)/src/etc/jtlv/
- Run the
build.sh
script, either by double-clicking it or typingsh build.sh
at the command prompt. - If the script succeeds, it will exit with no output and the
GROne/
directory will contain several.class
files.
(Note: If you have trouble running the build script, see the instructions in (LTLMoP install dir)/src/etc/jtlv/JTLV_INSTRUCTIONS
. Don't forget that the JDK needs to be in your path (see the Dependencies section); if you can't run javac
successfully from the command-line, the build process will not succeed.)
You may want to install wxGlade, which is used for developing the LTLMoP GUIs.
- To get crisp text rendering on Retina Macs, you need to use wxPython >= 2.9 (on MacPorts this may mean you need to use the
py27-wxpython-devel
package) and you need to add the following lines toInfo.plist
inside thePython.app
package (e.g./opt/local/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/Info.plist
):
<key>NSPrincipalClass</key>
<string>NSApplication</string>
Note: This trick is from this page on the wxWidgets Wiki.
Note: If this doesn't work, try modifying /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Info.plist
instead
- As of Oct. 2012, the Windows Naoqi SDK only supports 32-bit Python installations.
- As of Oct. 2012, the OS X Naoqi SDK seems to only work with the version of Python shipped with OS X (10.8). Copying the libraries necessary for LTLMoP from your MacPorts installation to the OS X Python installation directory seems to work okay, despite being kind of scary.