Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GR-ROSE でroombaをコントロールする

lutecia16v
November 10, 2018

GR-ROSE でroombaをコントロールする

GR-ROSE プロデューサーミーティング (作品発表会)での発表資料です。

http://gadget.renesas.com/ja/event/2018/pm_rose2.html

lutecia16v

November 10, 2018
Tweet

More Decks by lutecia16v

Other Decks in Technology

Transcript

  1. Why GR-ROSE GR-ROSE arduino ESP32 Raspberry pi Motor control ◎

    〇 〇 △ Network ◎ Ethernet / WiFi ✖ 〇 WiFi ◎ Ethernet / WiFi multitask 〇 ✖ 〇 ◎ ROS 〇 (DDS-XRCE) ✖ △ (ROS Serial) ◎ Low Power 〇 ◎ 〇 ✖
  2. 予定と結果(理想と現実) 【最初】KONDO ICSサーボ × 6の  垂直多関節をROS(MoveIt!)で制御したい! Arduinoで作ってみた際の課題 ・1軸/2軸のトルク(電流値?)不足   ⇒RS485の高トルクサーボ導入 ・Joint制御

      ⇒IK, Joint Trajectory Action対応 = ROS対応 ・サーボモータ制御   ⇒各パラメータの調査と調整 ・各軸への同時制御メッセージ送信   ⇒制御線をわける or フタバサーボへ変更
  3. ROSの活用 J1 J2 J3 J4 J5 J6 P(x, y, z,

    Δz, Δy, Δz)※ P’(x’, y’, z’, Δz’, Δy’, Δz’) P(J1, J2, J3, J4, J5, J6) ①先端の位置情報をジョイント座標に変換   ⇒IK(Inverse kinematics) ②移動先への経路(PATH)を生成   ⇒Planning path ③経路情報を通知   ⇒Joint Trajectory Action ④経路情報を元にモータを制御   ⇒GR-ROSEのお仕事 ※注)ROSは標準でクオータニオンを使用 ROS (MoveIt!) ROS (MoveIt!) ROS (MoveIt!) ⇒ P’(J1’, J2’, J3’, J4’, J5’, J6’) 実際の制御にはこれに速度 /加速度情報が必要
  4. RoombaとGR-ROSEとの接続 ミニDIN 8pin : RXD, TXD, GND x 2, Vpwr,

    BRC(未使用)を引き出し                           ⇒ Serial1と電源に接続
  5. Roombaの制御 “iRobot Roomba 600 Open Interface Spec”を使用してシリアル通信で制御  https://www.irobotweb.com/~/media/MainSite/PDFs/About/STEM/Create/iRobot_Roomba_600_Open_Interface_Spec.pdf 機能 opcode

    説明 Start 128 Roombaの制御開始 Safe 131 Roombaの制御モード設定 Full 132 Roombaの制御モード設定 Reset 7 Roomba制御のリセット Stop 173 Roomba制御の終了 機能 opcode 説明 Drive 137 Velocity 500~500(mm/s) Radius -2000~2000(mm) Drive direct 145 右輪/左輪ごとに-500~500(mm/s) Drive PWM 146 右輪/左輪ごとに-255~255の値 LEDs 139 各LEDの制御 Song 140 音の再生 ※各センサーの通知機能は未実装
  6. ハードウェア構成 デバイス 型番 I/F 補足 サーボモータ MG996R A1 2つ繋いでみたが電流不足 Roomba

    ルンバ622 Serial1 電源もルンバから取得 OLED aitendo M096P4BL Wire(I2C) ESP8266と同時で動作せず →解決してくださいました
  7. disconnect TCPサーバの実装 ESP8266 TCPServer $ python client.py >> d, 100,

    0 d,100,0 >> m,100 m,100 >> s s >> c 【コマンド】  d: roombaのDirectコマンドを実行  m: サーボモータの動作実行  s: roombaの停止  c: 通信切断(終了) connect d,100,0 ・ ・ ・ ✖