ソフトウェアのページ

概要

このページではソフトウェアについて説明します。 この機体にはパソコン用、A3000(Z80マイコン)用 、PIC(16C84)用、E200(ポケコン)用のソフトがあります。

ソースコード公開のスタンス
よくロボットを見ていて「このロボットはどんなソフトで動いている のだろう?」と興味を持つ事が多いので、自分のロボットの制御ソフト のソースコードを公開します。前作からの流用部分も多いため、 コメントが嘘になっている部分や、実験の途中で使った後 使われなくなっている部分等ありますが、適当にご覧ください。
今のところ、詳細な説明をする予定はありませんが、これらソースコード の中に利用可能な部分を見つけられた方は、ご自分の責任の下に、自由に 使っていただいて結構です。

[パソコン用ソフト] [A3000用ソフト] [PIC用ソフト] [E200用ソフト] [制御波形]

パソコン用ソフト

開発環境:DOS上のMicrosoft Quick C Var.2.0にて開発した、前の魚ロボットのソフトを 雛形として開発を始めました。開発の途中からWin95のMicrosoft Visual C++ Var.4.0 に切り替えました。制御波形表示ルーチンなどのグラフィックサブルーチン を切り離し、コンソールアプリケーションとしてコンパイルしたところ、 パラレルポートへのI/O部分まで含めて問題なく動いたため、DOS上で開発した アルゴリズムとCのコーディングをそのまま採用しました。

ソースコードのダウンロード :zip形式で圧縮したテキストファイルです。6legs.cにmainがあります。 (Program name: 6legs / 61Kbyte)

機能概要:本ロボット用のソフトは、制作途中の要素試験に使用したルーチン、 制御波形を作るルーチン、制御波形でロボットを動かすルーチン、 リアルタイムの軌道計算をしながら、接地センサーなどの情報を 元にロボットを動かすルーチンの 4種類におおよそ分けられます。それらのルーチンの下には、 各種データファイルを読み書きするファイルI/Oルーチン、 逆運動学計算等に使う幾何計算・行列計算ルーチン、 I/Oポートを操作するルーチン等があります。

要素試験用ルーチン:制作途中で各部の試験を行うために作ったルーチンです。 ロボット製作の進行状況に合わせて作りました。主なものに「関節番号を指定して サーボデータ(8ビットの整数)を直に出力」、「足先のX,Y,Z座標を指定して 脚1本だけを動かす。」などがあります。

制御波形作成ルーチン:直進、緩旋回、超信地旋回などそれぞれの歩行 パターンで、歩行ピッチや速度を変えた制御波形を作るルーチンです。 入力として、軌道接地部分の長さ、足先を持ち上げる高さ、軌道分割ピッチ (何mmピッチで接地部分を分割するかを示す値)等を入力します。

制御波形再生ルーチン:制御波形を指定回数繰り返し出力します。

リアルタイム制御ルーチン:足先軌道から制御波形を計算しながら 歩行します。

動作確認ルーチン:制御波形の正しさを確認するために使用します。 制御波形を入力として与えると、画面に6本の脚だけが3次元の ワイヤフレームでアニメーション表示されます。このプログラムによって、 その制御波形を実際にロボットへ流しても、ロボットを破損するようなことが無いか 前もって確認します。


A3000用ソフト

開発環境:パソコンでプログラムを作成し、アセンブルした後に シリアルポート経由でRAMへ転送します。 パソコン用のクロスアセンブラは(株)無線パーツ製のMPZ80を使用しています。 MS-DOS Var.2.11の頃のソフトです。
出来上がったプログラムは、32KbyteのEEP-ROMに入れて使用しています。

機能概要:有線制御用のプログラムと、無線操縦用プログラムがあります。

有線制御用プログラム:常に各サーボ用の信号を作り続ける ソフトです。パソコンやポケコンから出力チャンネルと出力データを 受け取り、それに沿って信号を作ります。データ受け取りの手順は プリンタと同じようなものになっています。

ソースコードのダウンロード :mpz80用のソースコードです。(Program name: SAVOCON6 / 6 Kbyte)

無線操縦用プログラム:有線制御用プログラムに制御波形再生機能 を加えたソフトです。RCデコードボードから波形番号を読み取り、 ROMに格納された制御波形のデータを順にサーボへ出力します。

ソースコードのダウンロード :mpz80用のソースコードです。(Program name: SAVOCON8 / 48 Kbyte)


PIC用ソフト

開発環境:パソコンでプログラムを作成し、アセンブルした後に シリアルポート経由で転送します。 パソコン用のクロスアセンブラはMicrochip社のMPASM for Windows を使用しています。

ソースコードのダウンロード :PIC16F84用のソースコードです。(Program name: rc_read1.asm / 6 Kbyte)

機能概要:RC受信機の出力信号がハイレベルになっている時間を、 ディレイループを何回実行できたかで計測し、計測結果を以下のような テーブルに沿ってコード化します。

送信機(プロポ)のスティックの状態とバイナリコードの対応の 一部を以下に示します。

左スティック 右スティック コード 動作
中立 中立 停止
中立 前進
後ろ 中立 後進
右旋回

E200用ソフト

開発環境:基本的にA3000と同じです。

ソースコードのダウンロード :E-200用のベーシックとアセンブラのソースコードです。 zip形式で圧縮してあります。 (Program name: 6legs1.bas & 6legs3.zas / 4 Kbyte)

機能概要:制御波形再生ルーチンとテンキーを読むルーチンからなっています。 ベーシックとアセンブラのプログラムから成り、実行はベーシック の方から始まります。制御波形をRAMエリアにセットして歩かせるので、 無線用のソフトと比べると、簡単にいろいろな制御波形を試せます。

テンキーと動作コードの対応の一部示をいかに示します。

テンキー コード 動作
停止
前進
後進
右旋回

制御波形

以下のグラフは直線歩行時の制御波形です。脚1本分、1サイクルの サーボモーターに出力するデータをプロットしました。 Ch.0,Ch.1,Ch2がそれぞれ サーボレイアウト図のサーボ0、サーボ1、サーボ2に対応します。 本ロボットは、このような波形データをくり返しサーボに出力すること によって歩行しています。通常の波形のスタートデータは、足先の中立 位置に相当します。

Controle Wave

6足歩行ロボットのトップページへ戻る

ホームへ戻る