installation on raspberry pi os

✏️ Edit this page on GitHub

#contents

Supported Version

The currently supported version of Raspberry Pi OS is:

  • Bookworm (64-bit)

Preparing the SD Card

To write the OS image, it is convenient to use Raspberry Pi Imager, which can be downloaded from the official website.
https://www.raspberrypi.com/software/

You can select and download the following options:

  • Base Debian GNU/Linux version (Latest / Legacy)
  • GUI option (Desktop / Lite)
  • System architecture (32-bit / 64-bit)

Changes in Version 2.1

You can now install the new SSM Communication Feature.
Since the SSM library is statically linked, you do not need to install SSM separately. The following files are installed by the openrtm2-ssm-tp deb package.

 usr/
 ├── bin
 │   ├── killssm
 │   ├── lsssm
 │   ├── psssm
 │   ├── ssm-advance-player
 │   ├── ssm-coordinator
 │   ├── ssm-date
 │   ├── ssm-graph
 │   ├── ssm-logger
 │   ├── ssm-monitor
 │   ├── ssm-player
 │   ├── ssm-proxy
 │   ├── ssm-transporter
 │   └── topssm
 ├── etc
 │   └── transport
 │       └── rtc.ssm.conf
 └── share
     └── openrtm-2.1
         └── transport
             └── SSMTransport.so

This feature is not installed when the “Bulk Installation Script” described in the next section is executed without any options.
It can be installed by specifying the option -l c++ --ssm. You can check the available options with --help.

Bulk Installation Script

To install Version 2.1, paste and execute the following command at the shell prompt. It installs the C++ edition, Python edition, Java edition, rtshell, and JDK 8. The script is not saved locally.
Even if multiple Java versions are installed, the default Java version is automatically switched to Java 8.

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_raspbian.sh)

The following packages will be installed.

 $ dpkg -l | grep openrt
 ii  openrtm2:arm64                         2.1.0-0             arm64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-dev:arm64                  2.1.0-0              arm64       OpenRTM-aist headers for development
 ii  openrtm2-doc                             2.1.0-0              all             Documentation for openrtm2
 ii  openrtm2-example:arm64            2.1.0-0             arm64       OpenRTM-aist examples
 ii  openrtm2-idl:arm64                     2.1.0-0             arm64       OpenRTM-aist idls for development
 ii  openrtm2-java:arm64                  2.1.0-0             arm64       OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-java-example:arm64     2.1.0-0            arm64        OpenRTM-aist-Java examples
 ii  openrtm2-naming:arm64              2.1.0-0            arm64        OpenRTM-aist name server launcher
 ii  openrtm2-python3                       2.1.0-0            arm64        OpenRTM-aist, RT-Middleware distributed by AIST
 ii  openrtm2-python3-example          2.1.0-0            arm64        OpenRTM-aist-Python examples

The installation of rtshell fails when using the default pip version.
Follow the yellow message displayed by the installation script and add the following lines to /etc/pip.conf (create the file if it does not exist).

 $ vi /etc/pip.conf
 [global]
 break-system-packages = true

After applying the above setting, run the installation script again to install rtshell.

 $ pip3 list | grep aist
 OpenRTM-aist-Python        2.1.0
 rtctree-aist                       4.2.5
 rtshell-aist                       4.2.10
 rtsprofile-aist                    4.1.6

By specifying options, you can install packages that match your requirements. The available options can be checked with the following command.

 $ bash <(curl -s https://raw.githubusercontent.com/OpenRTM/OpenRTM-aist/master/scripts/openrtm2_install_raspbian.sh) --help

Package Details

The contents of each package are as follows.

openrtm2

openrtm-aist includes runtime libraries and commands.

  • Commands
     /usr/bin/openrtmNames
     /usr/bin/rtcd2
     /usr/bin/rtcprof2
     /usr/bin/rtm2-config
    
  • Sample configuration files
     /usr/etc/rtc.conf.sample2
     /usr/etc/rtc.names.ssl.conf
     /usr/etc/ssl/rtc.ssl.conf
     /usr/lib/aarch64-linux-gnu/pkgconfig/openrtm2.pc
    
  • Libraries, etc.
     /usr/lib/aarch64-linux-gnu/libRTC2.a
     /usr/lib/aarch64-linux-gnu/libRTC2.so.2.1.0
     中略
     /usr/lib/aarch64-linux-gnu/librtmCamera2.so
     /usr/lib/aarch64-linux-gnu/librtmManipulator2.so
     中略
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/ec/LogicalTimeTriggeredEC.so
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/local_service/FileNameservice.so
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/ComponentObserverConsumer.so
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/ExtendedFsmServiceProvider.so
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/LoggerConsumer.so
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/ssl/SSLTransport.so
     中略
     /usr/lib/aarch64-linux-gnu/openrtm-2.1/sdo/LoggerConsumer.so
    

openrtm2-dev

Includes the commands and headers required for development.

  • Commands
     /usr/bin/rtm2-skelwrapper
    
  • Headers
     /usr/include/coil-2.1/coil/Affinity.h
     /usr/include/coil-2.1/coil/Async.h
     中略
     /usr/include/openrtm-2.1/rtm/BufferBase.h
     /usr/include/openrtm-2.1/rtm/BufferStatus.h
     中略
     /usr/include/openrtm-2.1/rtm/config_rtc.h
     /usr/include/openrtm-2.1/rtm/idl/BasicDataType.hh
     /usr/include/openrtm-2.1/rtm/idl/BasicDataTypeSkel.h
     中略
     /usr/include/openrtm-2.1/rtm/idl/SharedMemoryStub.h
     /usr/include/openrtm-2.1/rtm/version.h
    
  • Libraries and other files
     /usr/lib/aarch64-linux-gnu/cmake/openrtm-2.1/OpenRTMConfig.cmake
     /usr/lib/aarch64-linux-gnu/cmake/openrtm-2.1/OpenRTMConfigVersion.cmake
     /usr/share/openrtm-2.1/py_helper/skel_wrapper.py
     /usr/share/openrtm-2.1/py_helper/yat.py
    

    ````

## Part 2/2

### openrtm2-idl

- IDL files, etc.

/usr/include/openrtm-2.1/rtm/idl/BasicDataType.idl /usr/include/openrtm-2.1/rtm/idl/CameraCommonInterface.idl 中略 /usr/include/openrtm-2.1/rtm/idl/SharedMemory.idl /usr/share/openrtm-2.1/idl/BasicDataType.idl /usr/share/openrtm-2.1/idl/CameraCommonInterface.idl 中略 /usr/share/openrtm-2.1/idl/SharedMemory.idl


### openrtm2-example

openrtm-aist-example includes samples of standalone RTCs, loadable RTCs, and the source code for the sample RTCs.

- Samples (standalone RTCs)

/usr/share/openrtm-2.1/components/c++/examples/CompositeComp /usr/share/openrtm-2.1/components/c++/examples/ConfigSampleComp 中略 /usr/share/openrtm-2.1/components/c++/examples/rtc.conf


- Samples (loadable RTCs)

/usr/share/openrtm-2.1/components/c++/examples/rtc/ConfigSample.so /usr/share/openrtm-2.1/components/c++/examples/rtc/ConsoleIn.so 中略 /usr/share/openrtm-2.1/components/c++/examples/rtc/Throughput.so


### openrtm2-doc

openrtm-aist-doc includes Japanese and English class references and IDL interface definition references.

- Class reference

/usr/share/openrtm-2.1/doc/c++/ClassReference/html/BufferBase_8h.html /usr/share/openrtm-2.1/doc/c++/ClassReference/html/BufferBase_8h__dep__incl.map 中略 /usr/share/openrtm-2.1/doc/c++/ClassReference/html/structSDOPackage_1_1Organization__impl_1_1sdo__id.html


- IDL reference

/usr/share/openrtm-2.1/doc/idl/IDLReference/html/BasicDataType_8idl.html /usr/share/openrtm-2.1/doc/idl/IDLReference/html/BasicDataType_8idl_dep_incl.map 中略 /usr/share/openrtm-2.1/doc/idl/IDLReference/html/unionSDOPackage_1_1Numeric.html


- Class reference (English)

/usr/share/openrtm-2.1/doc/c++/ClassReference-en/html/BufferBase_8h.html /usr/share/openrtm-2.1/doc/c++/ClassReference-en/html/BufferBase_8h__dep__incl.map 中略 /usr/share/openrtm-2.1/doc/C++/ClassReference-en/html/version_8h_source.html


- IDL reference (English)

/usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/BasicDataType_8idl.html /usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/BasicDataType_8idl__dep__incl.map 中略 /usr/share/openrtm-2.1/doc/idl/IDLReference-en/html/unionSDOPackage_1_1Numeric.html


### openrtm2-python3

- Commands

/usr/bin/rtcd2_python3 /usr/bin/rtcprof2_python3


- Python modules for OpenRTM-aist

/usr/lib/python3/dist-packages/OpenRTM_aist/*


- Python search path file for OpenRTM-aist

/usr/lib/python3/dist-packages/OpenRTM-aist.pth


- Utilities

/usr/lib/python3/dist-packages/OpenRTM_aist/utils/init.py /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtc-template/* /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtcd/* /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtcprof/* /usr/lib/python3/dist-packages/OpenRTM_aist/utils/rtm-naming/*


### openrtm2-python3-example

/usr/share/openrtm-2.1/components/python3/init.py /usr/share/openrtm-2.1/components/python3/component.conf /usr/share/openrtm-2.1/components/python3/rtcd.conf /usr/share/openrtm-2.1/components/python3/AutoControl/* /usr/share/openrtm-2.1/components/python3/AutoTest/* /usr/share/openrtm-2.1/components/python3/CSPSample/* /usr/share/openrtm-2.1/components/python3/CSPSelectSample/* /usr/share/openrtm-2.1/components/python3/CSPStaticFsmSample/* /usr/share/openrtm-2.1/components/python3/Composite/* /usr/share/openrtm-2.1/components/python3/ConfigSample/* /usr/share/openrtm-2.1/components/python3/ExtTrigger/* /usr/share/openrtm-2.1/components/python3/MobileRobotCanvas/* /usr/share/openrtm-2.1/components/python3/SeqIO/* /usr/share/openrtm-2.1/components/python3/Serializer/* /usr/share/openrtm-2.1/components/python3/SimpleIO/* /usr/share/openrtm-2.1/components/python3/SimpleService/* /usr/share/openrtm-2.1/components/python3/Slider_and_Motor/* /usr/share/openrtm-2.1/components/python3/Throughput/* /usr/share/openrtm-2.1/components/python3/TkJoyStick/ /usr/share/openrtm-2.1/components/python3/TkLRFViewer/*


### openrtm2-java

/usr/bin/rtcd2_java /usr/bin/rtcprof2_java /usr/share/openrtm-2.1/jar/License.txt /usr/share/openrtm-2.1/jar/LogicalTimeTriggeredEC.jar /usr/share/openrtm-2.1/jar/NameserviceFile.jar /usr/share/openrtm-2.1/jar/OpenRTM-aist-2.1.0.jar /usr/share/openrtm-2.1/jar/commons-cli-1.1.jar /usr/share/openrtm-2.1/jar/jna-4.2.2.jar /usr/share/openrtm-2.1/jar/jna-platform-4.2.2.jar /usr/share/openrtm-2.1/jar/rtcd.jar /usr/share/openrtm-2.1/jar/rtcprof.jar


### openrtm2-java-example

/usr/share/openrtm-2.1/components/java/* /usr/share/openrtm-2.1/components/java/RTMExamples/AutoTest/* /usr/share/openrtm-2.1/components/java/RTMExamples/Composite/* /usr/share/openrtm-2.1/components/java/RTMExamples/ConfigSample/* /usr/share/openrtm-2.1/components/java/RTMExamples/ExtTrigger/* /usr/share/openrtm-2.1/components/java/RTMExamples/Fsm/* /usr/share/openrtm-2.1/components/java/RTMExamples/GUIIn/* /usr/share/openrtm-2.1/components/java/RTMExamples/MyService.idl /usr/share/openrtm-2.1/components/java/RTMExamples/SeqIO/* /usr/share/openrtm-2.1/components/java/RTMExamples/SimpleIO/* /usr/share/openrtm-2.1/components/java/RTMExamples/SimpleService/* /usr/share/openrtm-2.1/components/java/RTMExamples/SinCosOut/* /usr/share/openrtm-2.1/components/java/RTMExamples/StaticFsm/* /usr/share/openrtm-2.1/components/java/RTMExamples/Throughput/* /usr/share/openrtm-2.1/components/java/RTMExamples/TopicTest/*

```