SlideShare uma empresa Scribd logo
1 de 14
RTコンポーネント対応デバイスを
  開発するためのマイコン用
ライブラリ&ツール「RTno」の開発
     株式会社リバスト
       菅 佑樹
RTno?
RTno = arduino + RT-middleware
arduinoとは
RTミドルウエアとは




         openrtm.orgより転載
RTnoの目的



• OpenRTM-aist対応デバイスを簡単に作る
• ウケを取る
従来手法
• OpenRTM-aistの組み込みデバイス対応
  – 組み込みLinuxへの対応
  – TOPPERS対応
• RTC-CANopen
  – CANOpen対応デバイスならば対応可能
• RTC-Lite (miniRTC, microRTC)
  – CANバスとZigBee無線ネットワークに対応してお
    り,ARM系の軽量なマイコンでの動作報告がある
• RTno
  – 安価なarduino対応マイコンボード対応
  – Float型,シーケンス型に対応
RTno のアーキテクチャ

Rtnoデバイスから送信
されるプロファイルに応
じて
ブリッジRTCは自動的に
インターフェースを変換
する




                RTnoライブラリは,ホストPC
                とのすべての通信をカプセル
                化します.
RTnoを使ったRTC対応デバイス開発
• rtcconf関数でセッティングを行う
 – シリアルポートの選択,設定
 – 実行コンテキスト(タイマもしくはブリッジ
   同期)
  #include <RTno.h>

  void rtcconf(void) {
    conf._default.connection_type = ConnectionTypeSerial1;
    conf._default.baudrate = 57600;
    exec_cxt.periodic.type = Timer1ExecutionContext;
    exec_cxt.periodic.rate = 1000; // [Hz]
  }
RTnoを使ったRTC対応デバイス開発

• グローバルスコープでポートおよびバッ
  ファを宣言
 – OpenRTM-aistのポートの作成とほぼ同じ

      TimedLong in0;
      InPort in0In("in0", in0);
      TimedLongSeq in0;
      InPort in0In("in1", in0);

      TimedLong out0;
      OutPort out0Out("out0", out0);
      TimedLongSeq out0;
      OutPort out0Out("out1", out0);
RTnoを使ったRTC対応デバイス開発
• onInitializeで初期化
  – 起動直後に呼ばれる.
       int RTno::onInitialize() {
        addInPort(in0In);
        addInPort(in1In);
        addOutPort(out0Out);
        addOutPort(out1Out);

           int LED = 13;
           pinMode(LED, OUTPUT);
           return RTC_OK;
       }
RTnoを使ったRTC対応デバイス開発
• onActivated, onDeactivatedを記述
int RTno::onActivated()     int RTno::onDeactivated()
{                           {
  digitalWrite(LED, LOW);     digitalWrite(LED, LOW);
  return RTC_OK;              return RTC_OK;
}                           }
RTnoを使ったRTC対応デバイス開発
• onExecute内で,データの授受を行う
int RTno::onExecute() {                           out0.data = 3.14159;
 if(in0In.isNew()) {                              out0Out.write();
   in0In.read();
   long data = in0.data;                      out0.data.length(3);
   digitalWrite(LED, data);                    out0.data[0] = 1.1;
 }                                             out0.data[1] = 2.2;
                                               out0.data[2] = 3.3;
 if(in0In.isNew(&in1In)) {                     out0Out.write();
   in0In.read();
   for(int i = 0;i < in0.data.length;i++) {       return RTC_OK;
     long data_buffer = in0.data[i];          }
   }
 }
まとめ
• 早い・安い・巧いRTCを提供
 – 学習用に
  • マイコンがわかる人のRTMへの切り口
  • RTMがわかる人のマイコンへの切り口
 – ロボットにシンプルなI/Oを追加
• 今後の展望
 – EtherNetシールドに対応
 – デバイスVSデバイス通信に対応
 – 他のマイコンに移植

Mais conteúdo relacionado

Mais procurados

PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)Shinya Takamaeda-Y
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようShinya Takamaeda-Y
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータShinya Takamaeda-Y
 
マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討Shinya Takamaeda-Y
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようShinya Takamaeda-Y
 
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Shinya Takamaeda-Y
 
RTミドルウェアサマーキャンプ2018「有用なRTCの紹介」
RTミドルウェアサマーキャンプ2018「有用なRTCの紹介」RTミドルウェアサマーキャンプ2018「有用なRTCの紹介」
RTミドルウェアサマーキャンプ2018「有用なRTCの紹介」openrtm
 

Mais procurados (10)

PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
 
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみようPythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
Pythonによる高位設計フレームワークPyCoRAMでFPGAシステムを開発してみよう
 
FPGAって、何?
FPGAって、何?FPGAって、何?
FPGAって、何?
 
Gpu vs fpga
Gpu vs fpgaGpu vs fpga
Gpu vs fpga
 
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータPyCoRAMを用いたグラフ処理FPGAアクセラレータ
PyCoRAMを用いたグラフ処理FPGAアクセラレータ
 
FPGA
FPGAFPGA
FPGA
 
マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討マルチパラダイム型高水準ハードウェア設計環境の検討
マルチパラダイム型高水準ハードウェア設計環境の検討
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
 
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
Veriloggen: Pythonによるハードウェアメタプログラミング(第3回 高位合成友の会 @ドワンゴ)
 
RTミドルウェアサマーキャンプ2018「有用なRTCの紹介」
RTミドルウェアサマーキャンプ2018「有用なRTCの紹介」RTミドルウェアサマーキャンプ2018「有用なRTCの紹介」
RTミドルウェアサマーキャンプ2018「有用なRTCの紹介」
 

Semelhante a RTミドルウエアコンテスト2011応募作品「RTno」

Rtミドルウェア講習会 第1部資料
Rtミドルウェア講習会 第1部資料Rtミドルウェア講習会 第1部資料
Rtミドルウェア講習会 第1部資料openrtm
 
130522 01
130522 01130522 01
130522 01openrtm
 
130711 01
130711 01130711 01
130711 01openrtm
 
iREX2015 RTM講習会
iREX2015 RTM講習会iREX2015 RTM講習会
iREX2015 RTM講習会openrtm
 
2015RTミドルウエア講習会
2015RTミドルウエア講習会2015RTミドルウエア講習会
2015RTミドルウエア講習会openrtm
 
RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要 RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要 openrtm
 
Nedo講座・rtmセミナー
Nedo講座・rtmセミナーNedo講座・rtmセミナー
Nedo講座・rtmセミナーopenrtm
 
130710 01
130710 01130710 01
130710 01openrtm
 
131106 01 i-rex2013
131106 01 i-rex2013131106 01 i-rex2013
131106 01 i-rex2013openrtm
 
Robomec2015講習会 150517 01
Robomec2015講習会 150517 01Robomec2015講習会 150517 01
Robomec2015講習会 150517 01openrtm
 
Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1openrtm
 
160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大openrtm
 
171129-irex2017
171129-irex2017171129-irex2017
171129-irex2017openrtm
 
201110 01 Polytech Center 1
201110 01 Polytech Center 1201110 01 Polytech Center 1
201110 01 Polytech Center 1openrtm
 
2013 summercamp 02
2013 summercamp 022013 summercamp 02
2013 summercamp 02openrtm
 
Pirtunit slideshare
Pirtunit slidesharePirtunit slideshare
Pirtunit slideshareopenrtm
 
RTミドルウェアサマーキャンプ2018「表計算ソフトによるRTコンポーネントの動作確認手順について」
RTミドルウェアサマーキャンプ2018「表計算ソフトによるRTコンポーネントの動作確認手順について」RTミドルウェアサマーキャンプ2018「表計算ソフトによるRTコンポーネントの動作確認手順について」
RTミドルウェアサマーキャンプ2018「表計算ソフトによるRTコンポーネントの動作確認手順について」openrtm
 
171128 01
171128 01171128 01
171128 01openrtm
 
150629 01
150629 01150629 01
150629 01openrtm
 
1.コース概要
1.コース概要1.コース概要
1.コース概要openrtm
 

Semelhante a RTミドルウエアコンテスト2011応募作品「RTno」 (20)

Rtミドルウェア講習会 第1部資料
Rtミドルウェア講習会 第1部資料Rtミドルウェア講習会 第1部資料
Rtミドルウェア講習会 第1部資料
 
130522 01
130522 01130522 01
130522 01
 
130711 01
130711 01130711 01
130711 01
 
iREX2015 RTM講習会
iREX2015 RTM講習会iREX2015 RTM講習会
iREX2015 RTM講習会
 
2015RTミドルウエア講習会
2015RTミドルウエア講習会2015RTミドルウエア講習会
2015RTミドルウエア講習会
 
RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要 RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要
 
Nedo講座・rtmセミナー
Nedo講座・rtmセミナーNedo講座・rtmセミナー
Nedo講座・rtmセミナー
 
130710 01
130710 01130710 01
130710 01
 
131106 01 i-rex2013
131106 01 i-rex2013131106 01 i-rex2013
131106 01 i-rex2013
 
Robomec2015講習会 150517 01
Robomec2015講習会 150517 01Robomec2015講習会 150517 01
Robomec2015講習会 150517 01
 
Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1Rtミドルウェア講習会@名城大 20140624 1
Rtミドルウェア講習会@名城大 20140624 1
 
160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大160705-01 RTミドルウエア講習会・名城大
160705-01 RTミドルウエア講習会・名城大
 
171129-irex2017
171129-irex2017171129-irex2017
171129-irex2017
 
201110 01 Polytech Center 1
201110 01 Polytech Center 1201110 01 Polytech Center 1
201110 01 Polytech Center 1
 
2013 summercamp 02
2013 summercamp 022013 summercamp 02
2013 summercamp 02
 
Pirtunit slideshare
Pirtunit slidesharePirtunit slideshare
Pirtunit slideshare
 
RTミドルウェアサマーキャンプ2018「表計算ソフトによるRTコンポーネントの動作確認手順について」
RTミドルウェアサマーキャンプ2018「表計算ソフトによるRTコンポーネントの動作確認手順について」RTミドルウェアサマーキャンプ2018「表計算ソフトによるRTコンポーネントの動作確認手順について」
RTミドルウェアサマーキャンプ2018「表計算ソフトによるRTコンポーネントの動作確認手順について」
 
171128 01
171128 01171128 01
171128 01
 
150629 01
150629 01150629 01
150629 01
 
1.コース概要
1.コース概要1.コース概要
1.コース概要
 

Mais de Yuki Suga

ロボットについて (ロボットのソフトウェア的側面と分散モジュール開発)
ロボットについて (ロボットのソフトウェア的側面と分散モジュール開発)ロボットについて (ロボットのソフトウェア的側面と分散モジュール開発)
ロボットについて (ロボットのソフトウェア的側面と分散モジュール開発)Yuki Suga
 
OpenRTM-aist入門
OpenRTM-aist入門OpenRTM-aist入門
OpenRTM-aist入門Yuki Suga
 
機械図面の基礎
機械図面の基礎機械図面の基礎
機械図面の基礎Yuki Suga
 
RTミドルウエア講習会2015
RTミドルウエア講習会2015RTミドルウエア講習会2015
RTミドルウエア講習会2015Yuki Suga
 
適応アルゴリズムとコミュニケーションロボット
適応アルゴリズムとコミュニケーションロボット適応アルゴリズムとコミュニケーションロボット
適応アルゴリズムとコミュニケーションロボットYuki Suga
 
RTミドルウエア活用について
RTミドルウエア活用についてRTミドルウエア活用について
RTミドルウエア活用についてYuki Suga
 
Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2Yuki Suga
 
組み込み入門
組み込み入門組み込み入門
組み込み入門Yuki Suga
 
組み込み入門
組み込み入門組み込み入門
組み込み入門Yuki Suga
 
ネットワーク通信入門
ネットワーク通信入門ネットワーク通信入門
ネットワーク通信入門Yuki Suga
 
SI2008 RT-middleware Contest
SI2008 RT-middleware ContestSI2008 RT-middleware Contest
SI2008 RT-middleware ContestYuki Suga
 
Wasanbonの開発
Wasanbonの開発Wasanbonの開発
Wasanbonの開発Yuki Suga
 

Mais de Yuki Suga (13)

ロボットについて (ロボットのソフトウェア的側面と分散モジュール開発)
ロボットについて (ロボットのソフトウェア的側面と分散モジュール開発)ロボットについて (ロボットのソフトウェア的側面と分散モジュール開発)
ロボットについて (ロボットのソフトウェア的側面と分散モジュール開発)
 
OpenRTM-aist入門
OpenRTM-aist入門OpenRTM-aist入門
OpenRTM-aist入門
 
機械図面の基礎
機械図面の基礎機械図面の基礎
機械図面の基礎
 
RTミドルウエア講習会2015
RTミドルウエア講習会2015RTミドルウエア講習会2015
RTミドルウエア講習会2015
 
適応アルゴリズムとコミュニケーションロボット
適応アルゴリズムとコミュニケーションロボット適応アルゴリズムとコミュニケーションロボット
適応アルゴリズムとコミュニケーションロボット
 
RTミドルウエア活用について
RTミドルウエア活用についてRTミドルウエア活用について
RTミドルウエア活用について
 
Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2Robotech2012講習会v01最終版v2
Robotech2012講習会v01最終版v2
 
組み込み入門
組み込み入門組み込み入門
組み込み入門
 
組み込み入門
組み込み入門組み込み入門
組み込み入門
 
ネットワーク通信入門
ネットワーク通信入門ネットワーク通信入門
ネットワーク通信入門
 
SI2008 RT-middleware Contest
SI2008 RT-middleware ContestSI2008 RT-middleware Contest
SI2008 RT-middleware Contest
 
RTC-scilab
RTC-scilabRTC-scilab
RTC-scilab
 
Wasanbonの開発
Wasanbonの開発Wasanbonの開発
Wasanbonの開発
 

RTミドルウエアコンテスト2011応募作品「RTno」