Mobility Virtual Environment - MoVE

Getting Started


Table of Contents:


1.0 Computing environment and installation overview

MoVE is a collection of Python command-line utilities to launch several multi-threaded processes.

The right computing environment will include:

Familiarity with Linux or Unix is helpful. MoVE is executed nearly entirely from the command-line and these installation steps also assume a command-line is available in a terminal window.

TL;DR

There are two python scripts included in the MoVE base directory to help verify these settings for the proper computing environment:

If you are comfortable with Ubuntu or Linux generally, these scripts provide confirmation or recommendations on installation steps. You might want to start with these two scripts and get them to report Python library, ssh login, and screen status.


2.0 Installation steps

These installation steps assume you have root or sudo privileges. If you do not, it is possible to install all Python libraries in your local home directory wtihout root priveleges, but you may be limited to simulation-only use without root.

Or, if you have ability to install a virtual machine, you should be able to achieve sudo priveleges.

These installation steps are an example using Ubuntu 18.04 LTS linux.

The MoVE code is written in pure Python 3 and should work in Windows, but has not been tested in Windows. An Anaconda-based Windows installation is likely to work because the packages are already installed or avaialable for installation in Anaconda.

Also, an Ubuntu-for-Windows installation is likely to work but has not been tested. You can get Ubuntu for Windows for free through the Microsoft Store in Windows 10.

Please post your experience getting MoVE to work in Windows on the MoVE Google Groups discussion forum.


2.1 Setup secure password-less ssh login

Secure Shell, or ssh is a secure networking utility avaialable on all Linux, Windows and Mac computers.

The goal is to allow your username to log in to the local machine, namely localhost or 127.0.0.1 without entering a password, like this:

ssh user@localhost

where user is replaced by your machine’s username.

The ssh password-less configuration uses public and private keys to ensure security. These instructions will help you achieve password-less ssh login from: localhost to: localhosts:

If you are running Ubuntu Linux and sshd is not running (the ssh server), or if you’re not sure you can get it installed and started with these instructions.


2.2 Setup screen

GNU screen is a console-based terminal manager that allows multiple vehicle models to be launched as background processes while still providing a way to view console output from any individual vehicle model during debugging.

screen is a command-line Linux utility that has been around since 1987. It is a mature terminal multiplexer and may be installed on your machine already.

You can check if screen is already installed with:

which screen

If it is not installed, you can install it on Ubuntu with:

sudo apt-get install screen


2.3 Setup Python packages

Launching vehicle models locally relies on password-less ssh login and the console-based terminal manager, screen.

MoVE is written entirely in pure Python 3. Assuming Ubuntu, make sure your system has these python3 libraries installed with:

sudo apt-get install python3-numpy
sudo apt-get install python3-msgpack
sudo apt-get install python3-matplotlib
sudo apt install python3-pip
pip3 install msgpack-numpy
pip3 install parallel-ssh
pip3 install utm
sudo pip3 install bokeh

Notes:

  • if you get ModuleNotFoundError: No module named 'scipy',
    then: pip3 install scipy
  • if parallel-ssh gives fatal error: ffi.h,
    then: sudo apt-get install libffi-dev


2.4 Setup MoVE source code

Go to the MoVE Gitlab page and download source code in whatever compressed formed you prefer:

https://gitlab.com/comperem/move

Look for the little cloud-download icon in the upper right (next to ‘Find File’)

Assuming you downloaded move-master.tar.gz to your home directory’s Downloads directory, then:

cd Downloads
tar xzvf move-master.tar.gz
cd move-master/<version_number> (for example, cd move-master/v1.05/)
ls -l

A screenshot illustrates this sequence:

MoVE source unzip


2.5 Verify with test_python_packages.py

Test your machine’s Python environment by importing each package using this test script: test_python_packages.py

The test script is located in this version of the MoVE base directory.

Run the script test_python_packages.py with:

./test_python_packages.py

Ensure all packages are installed until you see all passing results like this:

MoVE source unzip

Once you achieve this, proceed to the next test of parallel-ssh and screen.


2.6 Verify with test_parallel_ssh_with_screen.py

MoVE Core launches multiple vehicle model processes using parallel-ssh and screen. The right computing environment will contain all proper Python 3 packages, MoVE source code, screen, and have password-less ssh login configured.

Test the ability for parallel-ssh to launch multiple screen sessions, without requiring a password by executing:

./test_parallel_ssh_with_screen.py

The successful setup will show this output with all passing results:

MoVE source unzip

Once you achieve this, you’re ready to proceed to the configuration files and Hello, world example.