/Rapiro

Primary LanguagePython

Rapiroコントローラ README

■ファイル構成
  README_RAPIRO		このファイルです
  rapiro_adjust.py	Rapiroコントロールプログラム本体
  getch.py		コントロール文字の入力・スクリプトファイル読み込みライブラリ
  choreo_data.py	Rapiro基本動作振り付けのPython版データ
  choreo/*		振り付けスクリプト(choreo_data.pyを本仕様に合わせたもの)
  tools/*

■コマンド
・コマンド引数の仕様が変更になっています。
・第1引数にはコレオグラフィスクリプトを指定することもできます。
  $ python rapiro_adjust.py [ choreo ] [ dump ]

■キー仕様
・コントローラのキー仕様
  Channel Settings:
    0:foot_p_l, 1:foot_y_l, 2:hand_l, 3:shld_p_l, 4:shld_r_l, 5:waist
    6:head, 7:shld_r_r, 8:shld_p_r, 9:hand_r, 10:foot_y_r, 11:foot_p_r
    12:red, 13:green, 14:blue
  Commands:
    h:-10, j:-1, k:+1, l:+10,
    +, -: adjust bias, *, /: adjust scale
    g:full swing
    m:set center, x:set max pos, n:set min pos
    c:load choreography file, i:revert to tty (use in file),
    p:simultaneous move of multi-channels, t[se]:timer, H:help, q:quit

・サーボ、LEDなどの角度、輝度調整方法
 1)数字キーで調整したいチャネルを指定します。
 2)lkjhキーで現物の概略の動きを確認した後、角度0、輝度0に設定します。
   現物が許されるレンジを外れる場合は、3)2)を繰り返して少しずつ調整します。
 3)+-(バイアス)キーで現物が角度0、輝度0となるように調整します。
 4)lkjhキーで角度、輝度の最大値(サーボ: 180, LED:255など)に設定します。
   現物が許されるレンジを外れる場合は、5)4)を繰り返して少しずつ調整します。
 5)*/(スケール)キーで現物が希望の最大角度、最大輝度となるように調整します。

・コントローラのキー仕様の拡張
  c: c filename [count]
     filenameはchoreoディレクトリ配下のコレオグラフィスクリプトファイル名を指定します。
     このコレオグラフィスクリプトには、全てのコマンド文字の並びを指定することができます。
     また、ファイルの呼び出しは、cコマンドで任意の入れ子にすることができます。
     (部分処理をスクリプトにしておき、それらを束ねて実行することができます)
     countを指定すると、コレオグラフィスクリプトを連続でcount回実行することができます。
     (下記の sコマンドを含めたコレオグラフィスクリプトを用意しておくことで、外部からの
      コマンドを連続して受信・実行することができます)
  i: コレオグラフィスクリプトの中に記述しておくことで、ttyのインタラクティブモードに
     移行することができます。インタラクティブモードの終了コマンドである q を入力すると、
     元のコレオグラフィスクリプトの残りの部分の実行に戻ります。
  p: p [-s msec] ch1:pos1 ch2:pos2 ...
     時間msecで、複数のchに対して同時並行でそれぞれの指定位置への移動を試みます。
  s: config.jsonで指定された外部URLに対してコマンドの取得を試みます。
     得られる結果には 'v=小数点数' 値域は[10,50] の形式の文字列が含まれるものとし、
     この数値の10の位の値(1~5までの整数値)に応じて、choreo1~choreo5のコレオグラフィ
     スクリプトが実行されます。
  ts,te: ts title, te
     tsとteに囲まれた処理の実行時間を表示します。tsにはtitle文字列を指定できて、
     時間表示時にそのtitleが表示されます。
  q: インタラクティブモードを終了します。^C も同様の動作になります。

■Getchクラス(getch.py)
・インタラクティブな文字読み込みに加えて、ファイル読み込みの機能を追加し、両者を任意に
  切り替えることができるように汎用ライブラリ化しています
・使い方
  from getch import Getch
  getch = Getch(path=path) # ← インスタンス化(従来の上位互換)
                           #   Getch()ならtty、Getch(filename)ならファイルから
  c = getch()              # ← 1文字読み込み(従来通り)
                           #   ただしファイルモードの場合には、EOFでNoneを返す
  verbose = not getch.mode # ← 現在のモード(ttyならNone、ファイルならファイル名)
                           #   この例は、ttyならverboseをONにするという意図
  getch.close()            # ← 現在のtty/ファイルをクローズする
                           #   入れ子になっていて、親tty/ファイルに戻れる時はTrue
                           #   トップレベルならFalseを返す
  getch.push(path)	   # ← 新しいファイルで入れ子にする場合、pathにファイル名を指定
                           #   ttyをかぶせて入れ子にする場合、Noneを指定
                           #   続く getch() 呼び出しでは子から読み出す

■ベーシックなChoreo
・Rapiro組込みのベーシックなChoreoデータ(forward, backなど)をコマンドファイルとして
  インポートするコマンド
  コマンド tools/init_choreo.py
  動作概要 tools/choreo_data.pyを読み込み、./choreoの下にコマンドファイルを生成

■変更履歴
・pos値の意味、unitMove, multiMoveのアーギュメント変更
・pos値の意味をデューティから角度に変更。角度は0 - 180度のサーボの角度
・multi/unitMoveのargをposからservoに変更
・multiMove、コマンドのchはParts Number, unitMoveのchはI2C Channel
・fullSwing関数:multiMoveを使用するように変更
・+, -コマンド:角度アジャストの追加