+-----------------------+ | 実験記録 | +-----------------------+ ◆TODO◆ ・プログラムの記述スタイル改良(クラス使用,関数化). ■2004.06.xx リアルタイム外部制御機能のサンプルプログラムがコンパイルできないので原因調査. ■2004.06.xx インクルードの順番を変更することにより解決. (winsock.h windows.h の順) ■2004.06.xx PCとロボットコントローラが接続できないので調査. ■2004.06.xx IPアドレスをロボットコントローラを192.168.0.1で指定, PCを192.168.0.2で固定することにより通信可能となる. ■2004.06.xx 作成したサンプルプログラムが正常に動作しない. 「初期化できていない変数を使っている」という内容のエラーメッセージを吐き出して異常終了. ■2004.06.xx Winsockの勉強,ソースコードの解読開始. リアルタイム制御できない理由は,ロボットコントローラの操作が間違っているか, プログラムが間違っているかのどちらかと考えられる. ■2004.06.21 パソコンサポートソフトのモニタリングツールを用いてプログラムをトレース. Winsockで通信はできている.コマンドの入力指定周りが間違っている可能性も. ■2004.06.22 サンプルプログラムの制御命令入力部分を変更してみる. ■2004.06.23 教授に現状報告.金魚の追跡手法については要考察.北島さんの論文を読むようにとのこと. ■2004.06.24 22日に修正したプログラムを実機で動作テスト.→ × プログラムを元に戻し,指令位置データ型を関節座標データにして動作テストをするとアームが動いた. しかし,依然,プログラムの動作は怪しく,わからない部分もあるので,サポートに問い合わせる.返答待ち. ■2004.06.27 ロボットコントローラのバージョンがH3なので,プログラムの余分な部分(#ifdef VER_H7 等)を削除. ■2004.06.28 アームの軸の仕様を調査. アーム可動範囲測定 プログラムを読みやすく修正. 1命令あたりの移動量を変更 ■2004.07.01 直交座標系で位置指令を行い,ロボットを制御することができた. パルス座標系は必要ないと思われるので機能から削除. リアルタイム制御時のガタガタはフィルタ時定数を300msecにすることで解消できた(滑らかに動くようになった). 位置指令の移動量 DELTA があまり大きいと H213n(nは軸番号)速度リミットオーバーや H218n 直交リミットオーバーになる. 対処方法としてフィルタ時定数を大きくすることがある. ・問題点 直交座標系の指定ではなぜか動きが遅い.要原因究明. ■2004.07.02 サンプルプログラムから不必要な機能を削除. 直交座標指定(6軸),間接角指定(6軸),合計12通りの動作命令を送れるようにした. プログラム名をRTC(RealTimeControl)と名称変更(ver 0.1). 様々な動作チェックを行ったが,H213n, H218n エラー多発.アームが動かない場所に行けという命令を送ってしまうことが原因.そうならないように,範囲指定する方がいいかもしれない(動作命令送信前に間接角が範囲内かどうかのチェックを行う等). 直交座標系指定は大体の位置指定は簡単だが動作が遅いので,細かい動作や素早い動きが必要とされる時(すくい上げるときなど)は間接角指定を使うなどの対処方法が考えられる. ■2004.07.03 移動先座標を直接指定してアームが動くようにした(ver 0.2). ■2004.07.05 ver 0.2の動作テスト 指定座標によってはリミットエラーが出てストップしてしまうこともある. やはり直交座標系指定ではあまり細かい指定をせずにA, B, C軸は固定してX, Y, Z軸のみ動かし,細かい動作が必要な場面では間接角指定を使用するのがいいのではないか. ■2004.07.06 いろいろな場所へ動くテスト版(ver 0.3)作成. 前述の直交座標指定と関節角指定の外部制御プログラム中での切り替えは困難. (外部制御受付のロボットコントローラ側のプログラムのMXT命令で使用座標系をあらかじめ指定しておかなければならないため) 外部制御受付開始にのみロボットコントローラのBASICプログラムを使用したいので(制御は外部制御で完結したいので),使用座標系は直交座標か関節角かどちらか一方に決めなければならない. ■2004.07.07 教授を交えて報告会. ■2004.07.08 アームの先端を簡易防水処理.ポイを実際に装着. 水槽とカメラの位置を固定. リミット探索.(キーワード:構造フラグ bfp-a5945s.pdf) 直交座標指定で指示位置へ直接移動するテスト.エラーエラーエラー… ポイ壊れる.実験室水浸し.シミュレータの購入検討. ■2004.07.09 直交座標指定でいくか関節角指定でいくか.関節角指定なら制約条件を付けて云々. 指定座標をmm単位のみに変更してみる. ■2004.07.13 直交座標系のA,B,Cで目標座標に到達していないことが発覚.問題解決せず. 関節角指定を使用?? ■2004.07.15 上記の件でサポートに問い合わせ. ■2004.07.22 サポートからの返答がくる.A,B,C軸はJ1-J6と同様にラジアン単位で指定しなければならないとのこと.同時にリミットエラー問題も解決 テストすると指定通りに動作(ver 0.31).終わりが見えた. ■2004.07.23 複数移動先を指定して順番に移動させるプログラムを作成(Ver 0.32). しかし,R/Cの読み取りよりも早い速度で移動命令どんどんを送るので正常に動作しない.ステップ実行なら正常動作する. sleep()やマルチメディアタイマ,などの利用が必要. ■2004.07.28 現在位置と目標位置を比べて指定誤差範囲なら移動完了とし,次の目標へ移るプログラムを作成(Ver 0.33). ■2004.07.31 Ver 0.33 の動作テスト. Sleep()を導入. デバッグ完了. 目標位置・姿勢を複数与えて,順次移動させることが可能. これでスーパーボールすくいはできる(カメラ・戦略部分は別).