gbiggs / rtshell

Shell commands for managing RT-Middleware running on OpenRTM-aist.
http://openrtm.org
GNU Lesser General Public License v3.0
10 stars 17 forks source link

======= RTShell

Introduction

RTShell provides commands used to manage individual RT components and managers, as well as complete RT Systems. It can be used with the OpenRTM-aist middleware or middlewares that use a compatible CORBA-based introspection system.

Many of the commands allow components and managers running on nameservers to be treated like a file system. Directories can be entered, components can be cat'd and activated/deactivated/reset, connections made and removed, and so on.

Other commands are used in conjunction with RtsProfile XML/YAML files to manage complete RT Systems. These are rtresurrect, rtteardown, rtcryo, rtstart and rtstop.

The commands are aimed at users of OpenRTM-aist who wish to manage components on low-resource systems, systems where a GUI is not available (particularly where no network connection is available to manage components from another computer), as well as those who face other difficulties using RTSystemEditor. Being familiar with using a command-line is a benefit when using these commands of RTShell.

This software is developed at the National Institute of Advanced Industrial Science and Technology. Approval number H23PRO-1214. The development was financially supported by the New Energy and Industrial Technology Development Organisation Project for Strategic Development of Advanced Robotics Elemental Technologies.

This software is licensed under the GNU Lesser General Public License version 3 (LGPL3). See LICENSE.txt.

Requirements

omniORB-py 4.x is required.

RTShell requires rtctree. It must be installed for the commands to function.

The commands that work with RtsProfile files require rtsprofile. It must be installed for these commands to function/

RTShell requires Python 2.7. It will not function with an earlier version of Python. It has not been tested with Python 3 and it is likely that several changes will be necessary to make it function using this version of Python.

rtprint, rtinject and rtlog require the Python version of OpenRTM-aist.

Sphinx must be installed to build the documentation, if installing from source (method 2).

If RTShell is installed using pip (method 1, below), RTCTree and RTSProfile will be installed automatically. omniORB-py and OpenRTM-python must still be installed manually.

Installation

There are several methods of installation available:

  1. (Preferred method) Use pip to install the PyPi package.

    a. Install pip if it is not already installed. See https://pip.pypa.io/en/latest/installing/

    b. Execute the following command to install RTShell::

    $ pip install rtshell

    c. Execute the post-installation setup::

    $ rtshell_post_install

    d. On Windows, you will need to ensure that your Python scripts directory is in the PATH variable. Typically, this will be something like C:\Python27\Scripts\ (assuming Python 2.7 installed in C:\Python27\).

  2. Download the source from either the repository (see "Repository," below) or a source archive, extract it somewhere, and install it into your Python distribution:

    a. Extract the source, e.g. to a directory ~/rtshell::

    $ cd /home/blurgle/src/ $ tar -xvzf rtshell.tar.gz

    b. Run setup.py to install RTShell to your default Python installation::

    $ python setup.py install

    c. Execute the post-installation setup::

    $ rtshell_post_install

    d. On Windows, you will need to ensure that your Python scripts directory is in the PATH variable. Typically, this will be something like C:\Python27\Scripts\ (assuming Python 2.7 installed in C:\Python27\).

  3. On Windows, use the Windows installer.

Repository

The latest source is stored in a Git repository at github, available at http://github.com/gbiggs/rtshell. You can download it as a zip file or tarball by clicking the "Download Source" link on that page. Alternatively, use Git to clone the repository. This is better if you wish to contribute patches::

$ git clone git://github.com/gbiggs/rtshell.git

Documentation

Documentation is available in the form of man pages (on Windows, these are available as HTML files). These will be installed under ${prefix}/share/man. You must add this folder to your system's $MANPATH environment variable to be able to use them. For example, if you installed RTShell into /home/blag, add the following line to your .bashrc::

export MANPATH=/home/blag/share/man:${MANPATH}

Running the tests

The command tests can be run from the source directory using a command like the following::

~/src/rtshell $ ./test/test_cmds.py ~/share/OpenRTM-aist/examples/rtcs/

The argument to the test_cmds.py command is a directory containing RTC shared libraries that can be loaded into a manager. It must contain the libraries for Motor, Controller and Sensor.

An individual command's tests can be run by specifying those tests after the command. For example::

$ ./test/test_cmds.py ~/share/OpenRTM-aist/examples/rtcs/ rtactTests

This will run only the tests for the rtact command.

Creating wheels

To create a redistributable wheel package, run the following command:

$ python setup.py bdist_wheel -k

Changelog

4.2

4.1

4.0

3.0.1

3.0

rtcshell-2.0

rtsshell-2.0