2足歩行ロボット(2L1)の製作日誌 その1

製作の区切りごとに、古い物から新しい物の順に書いてあります。(2001.1.8〜2001.3.27まで)

01.01.08
股の関節
図面の詳細化が済んだので作り始めました。下の図で黒い線で書いてある部分の片方が、約80% 位の進捗度です。例年ですと、連休を挟めば製作が進むのですが、引っ越し (念入りなパッキングと運送屋さんの配慮で、幸い機材の破損は無しでした) 等をしていたのでほとんど進みませんでした。

加速度センサーの搭載
いろいろと考えた末、下図のようにH8と同レベルにPIC16C84を付け、加速度のデータを 8bitのデータに変換しPCに読み込む構成に決めました。 読み取りのレンジ調整と読み込みタイミングが上手く行くかどうかちょっと不安です。

CPUの構成

2年ほど寝かせてあったPICの開発環境をセットアップして写真の様なボードを動かしてみました。 (H8のマザーボードに2階建てする予定)初めて使うPICCと使い方を忘れかけていたライター の組み合わせで、つまらないトラブルにはまらないか心配でしたが、テスト用に書いた LED点滅プログラムが無事動きました。(配線はほとんど出来ていません)

表側 裏側
左のICが74HC245で右がPIC16C84-10です。セラクロックは4MHzにしました。

01.01.21
加速度センサーの搭載
とりあえず秋月の加速度センサーキットを接続してみました。 スペースと電源容量には余裕があるのでこのままにしようかと思っていましたが、 C言語でPIC16C84のプログラム(タイミングループでパルスの長さを測り8bitパラレル で出力する)を書いたところ、スピード不足で読み取り分解能が低すぎました。 (±2gのフルレンジで6ビット位)
簡単に思いつく対策として、ADXL202の測定周期を下げる手と、Cからアセンブラに変えてソフト のスピードを上げる手の どちらにしようか考えた結果、アセンブラを使いたくないので、ストックしてあるADXL202の 測定周期を3msec程度に下げて接続する方針にしました。 (ちなみに秋月のキットの周期は約0.96msecです。)
表側 裏側

01.01.28
加速度センサーの搭載
先週はストックしてあるADXL202の測定周期を3msec程度に下げて接続する方針にし ていたのですが、抵抗とコンデンサのストックが無いことに気が付いたので、方針を 変えてCに一部asmインストラクションを混ぜて高速化を図り1kHzのまま、±2gで だいたい8bitの読み取り分解能になるように調節しました。 ここから先のチューニングは姿勢制御ルーチンに組み込んだ後にする予定としました。
01.02.14
股の関節
股の関節と制御回路などを内蔵するスペースを兼ねた部分を制作中です。 11/26の図面と比較すると、ペイロードスペースの形が少し変わりました。 今日のところは左側の関節がほぼ完成しています。

マイコンボード、RC受信機、加速度センサー、角速度センサー、電池を内蔵する予定なので、 大体このくらい有れば収まりきるだろうとの見通しのもとペイロードスペースの広さを 決めました。

写真はバージョン1の足を付けて仮に組んでみて、何か問題はないか確認したところです。 後ろにぶら下がっている2L1v4に付けるとだいぶ見た目の印象が変わりそうです。
0番サーボ(v4で一番高いところに付いている)は現在FP-S9303ですが、SX-101Zでも 用が足りそうな気がするのでSX-101Zを付けてしまいました。v5として動ける状態に なったときには、12個全てのサーボが普及型のサーボに統一されます。「全部一番安い サーボで済ませる」ことにこだわってみました。(と言いつつ簡単にサーボの型式を変え られるような構造にしてありますが・・・)

2001.02.13のスナップ(胴体 兼 股関節)

01.02.18
股の関節
自由度12の形に組上がりました。今日から呼び名を「2L1v5」に変え ることにします。 左右それぞれの脚の0番と5番のサーボの配線が まだです。傾斜センサーボードもロボットの外にはみ出しています。と言うことで 次は配線に進みます。
2001.02.17のスナップ(正面) 2001.02.17のスナップ(背面)
2L1v5の仕様
(合計自由度12)
全高 405mm
全長 217mm
全幅 140mm
本体の重量 1240g(CPU含まず、モーター用バッテリー含む)
モーター RC用サーボモーター
(メーカー:三和 機種:SRM-1301(SX-101Z) 個数:12)
センサー 3軸角速度センサー(RC用 圧電振動ジャイロ)
(メーカー:GWS 機種:PG-03 個数:3)
2軸加速度センサー
(メーカー:アナログデバイセズ 型式:ADXL202 個数:1)
CPU Win98 PC(運動の制御用)
H8/3048F(サーボコントローラー用)
PIC16C84-4(加速度センサー読み取り用)

2L1v4の仕様
(合計自由度10)
全高 375mm
全長 150mm
全幅 140mm
本体の重量 950g(CPU,バッテリー含まず)
モーター RC用サーボモーター
(メーカー:三和 機種:SRM-1301(SX-101Z) 個数:8)
(メーカー:双葉 機種:FP-S9303 個数:2)
センサー 3軸角速度センサー(RC用 圧電振動ジャイロ)
(メーカー:GWS 機種:PG-03 個数:3)
2軸加速度センサー
(メーカー:アナログデバイセズ 型式:ADXL202 個数:1)
CPU Win98 PC(運動の制御用)
H8/3048F(サーボコントローラー用)
PIC16C84-4(加速度センサー読み取り用)


01.02.25
サーボの配線の修正
サーボモーターの配線を終え、ジャイロは5番サーボの裏側、加速度センサーとモーター用の 電池は頭の中に納め、吊した状態で以前作った横歩きの動作パターンをかけてみました。 すると、重心を片足に移したときに足首が曲がる向きが反対でした。 よく調べてみると、新しく取り付けた0番サーボと 5番サーボの配線が左脚と右脚で逆になっていたので直しました。

アイプレート
保管するときに吊したり、転倒防止の紐を結びつけるためのアイプレートを付けました。
ところで、2足歩行ロボットを保管するときの一般的な方法はどんなものでしょう? スイッチが切れたロボットを寝かせるのは、壊しそうで、なかなか気を使うし 何か折れそうな突起があったりと、初めから寝かせるつもりで作らないと 寝かせられません、やっぱり「台で支える」が一般的でしょうか?


01.03.04
制御ソフト
拡張を重ねてきた逆運動学計算のサブルーチンが、だんだんとぐちゃぐちゃになってきたというか、 見通しが悪くなってきたので、当面脚の構造を変える予定のない今、良いタイミングなので 書き直すことにしました。
1989年ころに初めてこの類のプログラムを書いたときには、プログラミングにも計算手法 にも不慣れだったので夏休みいっぱいかかって出来なかった様な記憶があるのですが、 今は慣れているし、作り置きしてあるソフトの部品があるので、多分すぐに出来上がる でしょう。
01.03.11
足先の軌道生成ルーチン
新しい逆運動学計算のサブルーチンが、ちょっと動かしてみた感じでは、計算間違えもなくなり 落ち着いてきたので、v3で試したのとはまた少し違う足先の軌道生成ルーチンを書き、 PG03とADXL202からのフィードバックは無しで重心移動のパターンで動かしてみました。 「安定してその場で足踏みが出来る」様なプログラムにつなげて行こうと考えています。

01.03.20
横歩き
v2とv3の横歩きのパターンを混ぜたようなパターンで横に歩かせてみました。 今回はPG03とADXL202からのフィードバック有りです。
1歩毎に揺れが収まったかどうか、0.2秒間ほどジャイロの読みの中立信号からの偏差の 絶対値を平均し、ある数値以下になったら「止まった」という判断にしました。 そして「止まった」状態でADXL202を読み、傾斜が約10度以上ならば転倒した と判断してパターン再生を止めました。


01.03.27
タッチセンサー
つま先にタッチセンサーとしてマイクロスイッチを取り付けました。 片足あたり4個つけたいと思っているのですが、取りあえず一番付けやすいつま先を 初めて取り付ける場所として選びました。初めはタクトスイッチにしようと思っていたのですが、 スイッチを動作させるのに必要な力をストックしてあったマイクロスイッチとタクトスイッチで 比較してみて、マイクロスイッチの方が少ない力で動かせたことと、取り付けやすかったので マイクロスイッチにしました。

つま先のマイクロスイッチ

0番関節のトルク変更
動かしてみてトルク不足を感じたので、サーボホーンのリンク取付穴を17mmの所から11mmの 所に変えました。これでサーボのトルクを3.3kg・cmとすると、5.8kg・cmから9kg・cmに 変わりました。(サーボが中立位置の時)


つづき

戻る