OpenRTM-aist のRTC開発システム(Yarbs)
Simple Wiki Based Contents Management System
ソフトウェア関連 >> OpenRTM-aist のRTC開発システム(Yarbs)

もう一つのRTC開発システム Yarbs

現在のOpenRTM-aistでは、CMakeを利用したコンポーネントの開発を行っています。
RtcBuilderを使ってRTCを開発する場合に、生成されるソースコードやCMakeLists.txtが若干わかりにくい構造になっていると思っていましたので、新たにcmakeマクロなどを使いGUIを使わないRTC開発システムを試作しました。
また、このシステムでは、RTCの仕様をYAML形式で記述することで、C++のソースコードのひな形またはPythonのひな形を生成する機能を実装しています。特に、Pythonに関しては、データポートとサービスポートの生成は、実行時にYAMLファイル(定義ファイル)から読みこむことで動的に生成することができ、実装コードの簡素化を行うことができます。
C++のソースコードの方は、ひな形生成時に特定の部分に追記したコードには、極力影響を及ぼさないように気を付けて実装しています。
このサイトでは、私の開発したRTMのもう一つのビルドシステム Yarbs(Yet another rtc build system)について紹介していきます。


ビルドシステムYarbsのリポジトリ

ビルドシステムYarbsは、C++用のビルド時に必要なcmakeのマクロ群、テンプレート生成機能およびrtcmd(Windows用の簡易シェル)から構成されています。
この開発環境は、rptパケージでOpenRTM-aistをインストールした場合には、同梱されていますが、オフィシャルサイトにあるインストーラ(msi)でインストールした場合にも、追加インスト―ルすることで利用することができるようにしています。
C++用のビルド時に必要なcmakeのマクロ群は、https://github.com/haraisao/RTM_BuildSystem 、rtcmdは、https://github.com/haraisao/rtcmdに公開されています。
Yarbsの追加パッケージをこのページにも添付しています。OpenRTM-aist-1.2.1-yarbs.tgzを C:\Program Filesに展開すればよいと思います。
  > tar xzvf OpenRTM-aist-1.2.1-yarbs.tgz -C "C:\Program Files"
このパッケージの内容は、下記の通りです。
OpenRTM-aist/
  +-1.2.1/
       +-bin/
          +-template/
               +-C++/
                  +-idl/
                     +-Service_module.idl.in
                  +-include/
                     +-ProjectName.h.in
                     +-ServiceName_impl.h.in
                  +-src/
                     +-ProjectName.cpp.in
                     +-ProjectNameComp.cpp.in
                     +-ServiceName_impl.cpp.in
                  +-CMakeLists.txt.in
               +-Python/
                  +-idl/
                     +-Service_module.idl.in
                  +-scripts/
                     +-DataFlowRTC_Base.py
                     +-ProjectName.py.in
                     +-Service_module.py.in
                  +-idlcompile.bat
                  +-ProjectName.exe
                  +-rtc.conf
          +-genRtcCpp.exe
          +-genRtcCpp-script.py
          +-genRtcPython.exe
          +-genRtcPython-script.py
          +-rtc_doc.exe
          +-rtc_doc-script.py
          +-rtc_make.bat
          +-rtcmd
          +-rtcmd.exe
          +-rtcmd_view.html
          +-rtcrun.bat
       +omniORB/
          +-omniorb-config.cmake
          +vc_version.cmake
    +-cmake/
        +-cpack_option.cmake.in
        +-idl_compile.cmake
        +-openrtm-aist-config.cmake
        +-rtc_build.cmake
        +-setup.bat.in
        +-uninstall_target.cmake.in
        +-utils.cmake
        +-vc_version.cmake
    +-find_dot.bat
    +-setdotpath.bat
    +-setup.bat

ビルドシステムYarbsで追加されるコマンド及びファイル群

上記のように Yarbsでは、C++によるRTCの開発のツールとして
  • cmakeのマクロ群 (cmake)
  • C++のひな形生成のテンプレート (template/C++)
  • C++のひな形生成プログラム(genRtcCpp)
  • ビルドおよび実行用のバッチファイル(rtc_make.bat, rtcrun.bat)
が、Pythonによる開発のためのツールとして
  • Pythonのひな形生成テンプレート(template/Python)
  • Pythonのひな形生成プログラム(genRtcPython)
が追加されます。
また、RTシステムのCUIプログラムとしてrtcmd、テンプレート生成用のYAMLファイルからドキュメント生成のためのrtc_docを同梱しています。

資料