ソフトウェア関連 >> 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を同梱しています。
資料