blob: 884a99e8af95485175d704eabc86abd583f3a941 [file] [log] [blame]
.. toctree::
:glob:
Software Setup
###############
.. _cloneour:
*************************************************
Downloading A4MCAR applications from the Git repo
*************************************************
The A4MCAR's software is distributed in an open-source repository. To clone it to your system please use the following command.
.. note:: Note that in this documentation it is assumed that you download your a4mcar folder to the ``/home/pi`` directory.
.. note:: You should have ``git`` installed. Run ``sudo apt-get install git`` if you don't have it.
.. code-block:: bash
:linenos:
git clone https://git.eclipse.org/r/app4mc/org.eclipse.app4mc.examples
Then, move a4mcar folder to the ``/home/pi`` directory by running the following:
.. code-block:: bash
:linenos:
mv org.eclipse.app4mc.examples/a4mcar/ /home/pi
*********************
Provided Filesystem
*********************
.. figure:: images/a4mcarfilesystem.png
:width: 100%
:alt: A4MCAR Filesystem
:figclass: align-center
:align: center
A4MCAR Filesystem
*******************************
High-Level Applications Setup
*******************************
Raspberry Pi Basic Setup
========================
In order to install the high level applications to the `Raspberry Pi 3 <https://www.raspberrypi.org/products/raspberry-pi-3-model-b/>`_, several preparations should be made. In order to boot a Raspberry Pi 3 with a Raspbian Jessie distribution, one should use the `Raspbian Jessie Download Link <https://downloads.raspberrypi.org/raspbian_latest>`_.
After the Raspbian image is downloaded, a disk imager software could be used to burn the image to an SD card. To do that you can follow the instructions given in `this link <https://www.raspberrypi.org/documentation/installation/installing-images/windows.md>`_.
Access Point Setup
==================
For the convenient development, Raspberry Pi 3 should be set up as an access point. The access point helps regarding connecting to the Raspberry Pi's shell via SSH for entering Linux commands.
To set up the access point, the guidelines given in `PolarSys Rover Raspberry Pi Configuration Doc Step 1.4 <https://github.com/gaelblondelle/PSysRoverInitialContrib/blob/master/documentation/c_getting_started/org.polarsys.rover.c.getting_started/raspberry_pi_configuration.asciidoc#step-14---network-connections>`_ can be followed.
.. _overallsetup:
Installation of A4MCAR's high-level application and its dependencies
====================================================================
Automatic Setup and Installation
--------------------------------
Provided applications involve a setup script that can be used to install required dependencies manually. To execute the script, run:
.. code-block:: bash
:linenos:
sudo bash /home/pi/a4mcar/high_level_applications/setup_high_level_applications.sh
Manual Setup and Installation
------------------------------
Installation of Some Useful Applications
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. note:: This part is created for instructive purposes. The setup shown here is carried out automatically with :ref:`overallsetup`.
A4MCAR requires some third party software during both development and application execution. These applications could be listed as follows:
* ``git`` is a tool that is used for cloning repositories to your computer.
* ``python-pip`` is a package that is used for installing python modules.
* ``cmake`` is a very easy-to-use tool that generates Makefiles very conveniently.
* ``build-essential`` package helps regarding compiling applications using GNU/Linux systems.
* ``python-prctl`` package is used in A4MCAR for registering thread names with Python.
* Also, python development modules and resources should be installed: ``python-dev``, ``python3-dev``, ``python-pkg-resources``, ``python3-pkg-resources``.
You should install them using:
.. code-block:: bash
:linenos:
sudo apt-get update
sudo apt-get install python-dev python3-dev python-pkg-resources python3-pkg-resources
sudo apt-get install git build-essential python-prctl python-pip cmake
Cloning Necessary Modules
^^^^^^^^^^^^^^^^^^^^^^^^^^
.. note:: This part is created for instructive purposes. The setup shown here is carried out automatically with :ref:`overallsetup`.
A repository is present for providing necessary dependencies for the A4MCAR project's high-level applications. This repository should be cloned and installations should be carried out using this documentation.
To clone the repository,
.. code-block:: bash
:linenos:
cd ~/Downloads
sudo git clone https://gitlab.pimes.fh-dortmund.de/RPublic/a4mcar_required_modules.git
Using virtkey
^^^^^^^^^^^^^^
.. note:: This part is created for instructive purposes. The setup shown here is carried out automatically with :ref:`overallsetup`.
After cloning necessary modules, you should execute the following command to move the virtkey module to where it is used.
.. code-block:: bash
:linenos:
sudo cp -r ~/Downloads/a4mcar_required_modules/high_level_applications/virtkeyboard/* /home/$USER/a4mcar/high_level_applications/apps/touchscreen_display/
Camera and Streaming Setup
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. note:: This part is created for instructive purposes. The setup shown here is carried out automatically with :ref:`overallsetup`.
In order to set-up the Raspberry Pi camera and the streaming application ``mjpg-streamer``, following steps should be followed:
First, you need to enable the Raspberry Pi camera from the OS. To do that, type
.. code-block:: bash
:linenos:
sudo raspi-config
A configuration screen should appear. Here, select ``Advanced`` >> ``Enable Camera`` and then save and exit from the screen.
To stream using Raspberry Pi camera, an experimental third-party streamer module ``mjpg-streamer-experimental`` is used.
First, start by installing the dependencies and carrying out other necessary steps:
.. code-block:: bash
:linenos:
sudo apt-get install libjpeg8-dev imagemagick libv4l-dev
sudo ln -s /usr/include/linux/videodev2.h /usr/include/videodev.helps
Now, we should install the ``mjpg-streamer-experimental``:
Installing psutil from Python for Core Monitoring
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. note:: This part is created for instructive purposes. The setup shown here is carried out automatically with :ref:`overallsetup`.
.. warning:: Here we use pip version 1.5.6 to install.
You can use the following commands to install the ``psutil`` package from our repository:
.. code-block:: bash
:linenos:
sudo easy_install pip==1.5.6
sudo pip install ~/Downloads/a4mcar_required_modules/high_level_applications/psutil/
Apache Web Server Installation
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. note:: This part is created for instructive purposes. The setup shown here is carried out automatically with :ref:`overallsetup`.
In order to install Apache Web Server on your system to be able to use front-end web interface functionality of A4MCAR, you can follow the guidelines provided in this section.
First, you should upgrade your system's repository list and your upgrade your system via:
.. code-block:: bash
:linenos:
sudo apt-get update
sudo apt-get upgrade
Then type the following commands to install apache2 server, php mods for the server, and easy Makefile tool cmake:
.. code-block:: bash
:linenos:
sudo apt-get install apache2 -y
sudo apt-get install php5 libapache2-mod-php5 -y
sudo apt-get install cmake
After these steps, the website should appear at the ``/var/www/html`` directory. Now, we are off to grant some permissions to our Raspberry Pi's user groups for this directory. Security is not a main concern in our application, so please use them at your own risk:
.. code-block:: bash
:linenos:
sudo chgrp -R www-data /var/www/html/
sudo find /var/www/html/ -type d -exec chmod g+rx {} +
sudo find /var/www/html/ -type f -exec chmod g+r {} +
The following gives permissions to your specific user. If you use username other than ``pi``, make sure to adjust it in the following commands:
.. code-block:: bash
:linenos:
sudo chown -R pi /var/www/html/
sudo find /var/www/html/ -type d -exec chmod u+rwx {} +
sudo find /var/www/html/ -type f -exec chmod u+rw {} +
Subsequently, you should enable access to Linux file-system via webpages by using:
.. code-block:: bash
:linenos:
sudo visudo
and then, use your favourite editor to add the following to the end, save and exit.
.. code-block:: bash
:linenos:
www-data ALL=(ALL) NOPASSWD: ALL
Now you can place our web interface to the ``/var/www/html/`` directory and start visualizing the interface from ``http://<Your_IP_Address>/jQueryControl.php`` or ``http://<Your_IP_Address>/jQueryControl2.php``
Installing OpenCV 3.0
^^^^^^^^^^^^^^^^^^^^^^
OpenCV should be installed for Image Processing application to work. In A4MCAR, C++ development library for OpenCV is used. The application is built and linked using GNU Make / CMake.
For OpenCV 3.0 C++ download and installation, please refer to `OpenCV 3.0 Install <http://docs.opencv.org/3.0-beta/doc/tutorials/introduction/linux_install/linux_install.html#linux-installation>`_.
Installing Raspicam
^^^^^^^^^^^^^^^^^^^^^^
To install raspicam-0.1.3, please refer to `raspicam-0.1.3 Install <https://github.com/6by9/raspicam-0.1.3>`_.