« 週刊myRobotを作ろう(58) | トップページ | 週刊myRobotを作ろう(60) »

2007年5月22日 (火)

週刊myRobotを作ろう(59)

■更新情報 ブレッドボードとデザイン (2007/5/23)
■更新情報 ダウンロードエラー復帰 (2007-5/23)
■更新情報 障害物回避するプログラム追記 (2007/5/25)
■更新情報 ファイルの置き場 (2007/5/26)
■更新情報 T-DroidControlCenterがV3.0に (2007/5/26)


今週64号をもってバインダー4冊分が終了し、次週号からは5冊目に突入します。
本来なら週刊myRobotは、5冊目の75号で終了となりますが、皆様ご存知の通り90号まで延長されたため、バインダーは6冊必要になってしまいましたね。
それにしても、週刊myRobotもいよいよ大詰めになってきて、だんだんとID-01の本来の姿になってきました。
あとがきには、69号までの簡単なスケジュールを載せておきました。

■64号『温度センサーの取り付け』
今週64号は「温度センサー」です。
12×15mmの小さなボードで、表面には”Temp Sensor”の文字が見えます。Id01_64_04_1
68号に付いてくるアームボードに接続されると、音声により温度を告げてくれたり、VCLEのプログラムで温度変化により何かのアクション、例えば、熱くなった(28℃以上)のでエアコンのをONにする(90号までの赤外線コマンダーのパーツが必要ですが・・・・)などが出来るようです。

マニュアル通りに作成されている方も、今回は保管せずに取り付けができます。
バックパック内側ケース下部にある、温度センサー用のステー(赤角丸印)に取り付けます。Id01_64_05  
   
ポイントは、方向を間違えないように取り付けが必要です。
ケーブルが出たほうが上を向き、センサーの黒い突起がケース下側にある半円形の切り込み位置(赤丸印)にある事を確認してください。Id01_64_06
   
59号付属の2.6×8mmのフランジネジ2本で取り付けます。
68号のアームボードが来るまでは配線がブラブラしますので、セロテープなどで仮止めしておいても良いかと思います。Id01_64_07
今週の作業はこれでおしまいです。

■ブレッドボードとデザイン
65号についてくるブレッドボードは、新たな回路を作り、色々実験する事が出来る便利この上ないツールです。Id01_64_08
これから先、66~67号、81~83号では、実際にこのボード上に回路を作り、VCLEで組んだプログラムで動かすなどの実験を行いますので、この分厚いボードを取り付けないわけにも行きません。
65号のイタリア語のPDFマニュアルを読んでみると、このボードは、「粘着性の糊で(バッテリーケースの蓋に)ペタッと付けたたら簡単にはがれないようになっているので、取付けには注意」と書いてあるようです。
(私の翻訳間違いなら良いのですが・・・)

どうせなら、今までのバッテリーケスとは別に、蓋つきのブレッドボードを設計してくれれば、必要に応じて差し替え出来るのに・・・などとぼやいてみたところで、今となっては仕方がないですね。

私のID-01はオリジナルデザインのままですからブレッドボードが付いていても、さほど気にならないのですが、デザイン或いはカラーなどに凝った方たちは、このブレッドボードをどのように溶け込ませていくのか、腕の見せ所かもしれませんね。Id01_64_09
75号PDFマニュアルに載ってしる完成画像です
 
回路の実験以外は必要ないといえば、無いほうがすっきりしますね。
そういえば、バインダーの表紙も、ブレッドボードが何処にも見当たりません。
来週までに、ブレッドボードが着脱可能な方法を見つけられれば良いので、今のうちからシンキングタイムですね。
もっとも、そう思うのは私だけでしたら、単なる独りよがりというところでしょうね・・・

■VCLEが不調
今週、VCLEのプログラム記事を予定していたのですが、VCLEからID-01にプログラムを転送できなくなってしまい、テストが出来ません。
先日、イタリアWebサイトから、色々なJAVA、その他のPGをダウンロードしてテストした為かもしれません。
今後リカバリーにつとめ、無事回復したら記事に載せようかと思っています。暫く、お時間を・・・・・・

◇ダウンロードエラー復帰
VCLEからID-01にプログラムを転送しようとすると次ようなメッセージが出て、先へ進めません。Id01_64_10
Code generation failed
javax.xml.transform.TransformerException: java.lang.NullPointerException
  
何回か条件を変えて試してみても同じです。
その日は原稿を書き上げなければならないのと、他にも用件がたまっていましたので、対処はあきらめました。

翌朝、気を新たに対処しようとしたところ、ある事に気が付きまいした。
デジャヴ・・・私は、かってこの光景を見た・・・・
思い出したのです。「掲示板」に同件でロボ01さんからHELPが来たこと・・・そして、「発送センターの中の人」さん、「hisami」さんにお世話になったことを・・・・Id01_64_11
掲示板の内容です (画面クリックで拡大します)

色々なJAVAをインストールして、それらが悪さをしていたようです。
「掲示板」に載っていたそのままの内容を試してみました。
●対処方法
①「JAVA」及び「VCLE」を全てアンインストールします。
②アンインストール後、PCを再起動します。
③再度、「JAVA」及び「VCLE」のインストールを行います。

以上の方法を試したところ、問題なく転送(ダウンロード)が出来るようになりました。
ロボ01さんから依頼されて書いた文章とはいえ、まさか自分かその文章で助かるとは思ってもいませんでした。
先程、「掲示板」にも同件の投稿をしてきました。

お陰様でVCLEのプログラムのテスト環境が整いました。
(20007/5/23)

■障害物を回避するプログラム
やっとVLCEが使用できるようになったので、何か手を付けてみましょう。
使用する命令、方法等については、あくまでもVCLEユーザーガイドの範囲内とし、皆様が活用、アレンジされる上での足掛かりになれば・・・と思っています。

ID-01の中に「物体回避」というモードが有り、以前ムービーでご覧頂きましたように、物に衝突しないで走行できます。
この辺のロジックを自分で組むことにより、超音波センサーを利用した物体回避の原理を考えてみましょう。
VLCEでプログラムを組む前に、プログラムの流れを考えます。Id01_64_13

◇プログラムの流れ
最初から凝った物を考えずに、単純に物をよけるだけのロジックを考えていきます。
ID-01の超音波センサーは、前方向左右60度の障害物を検知するように設計されています。
VCLEのマニュアルには、0~255cmまで計測できるような記述があります。
私が「C-C」で超音波の距離を計測したところ、最短で23cmでした。
衝突を回避する為には、こんな近距離を計測していたのでは意味がありません。
私は、衝突回避距離を40cmと決めました。この距離以内にあるもの全てを回避する様にプログラミングを考えました。
まず、超音波センサー(左・右・中)のステータスを決め、それに伴う行動についてルールを決めて行くことにしました。

●計測モジュール
最初に、超音波センサーによる計測(左・右・中央)モジュールを考えていきます。
3センサーの計測を先にするのは、方向転換の方向、角度決定には複数センサーの情報処理が必要なためです。
40cm以上のものは「
」でステータスの値としては”0”を、40cm以内のものは障害物として「」で値としては”1”を与え、其々ステータスコードとして認識させます。
その後、不必要な回避行動が見られる事から、左右の距離を30cm以内に変更してみました。センターは40cmのままです。

●行動モジュール
次は、各センサーのステータスに応じて、どのような行動を取るかの行動パターンを考えていきます。
最初は、あまり複雑な動きをせず、3つのセンサー全てが「
」の時だけ前進し、それ以外の組み合わせでは、全て方向転換をする事にしました。
いずれ、回避のテストを通じてノウハウを集め、斜め左方向の前進とか、バックとかを組み合わせていきたいと考えています。

(センサー情報による行動パターン)

Left

Center

Right

コード

行  動

000

前進

100

R45°

110

R90°

111

R180°

011

L90°

001

L45°

ステータスコードは、3桁の0と1の組み合わせコードで、Leftが100の位、Centerが10の位、Rightが1の位で、障害物有りが”1”、無しが”0”としました。
従って、LeftとCenterに障害物有り、Rightが無しの場合は、”110”となります。
行動で、Rは右回転、Lは左回転、後の数字は回転角度です。R90°は、右に90度の回転となります。


具体的に画像で説明しますと、上の行動パターンでステータスコード”011”は、次のような状態です。
真上から見下ろした図で、ID-01の両側は、白い壁に囲まれた通路とします。斜め右寄りに向いた状態での、超音波計測の結果では、左「
」、中央「」、右「」となります。Id01_64_14_1
 
◇ループ動作
ところが、ここで問題が発生しました。
ステータスコード”011”の行動は”L90°”。つまり、その場で左
に90度に向きを変えます。
向きを変えた時点で、新たに超音波の計測をします。すると図のように、左「
」、中央「」、右「」となり、ステータスコードは”110”です。”110”の行動は、R90°つまり、その場で右に90度・・・・・
この状態でいる限り、ID-01はバッテリーが切れるまでこの動作を繰り返し続けます。Id01_64_15

このような、プログラムミスで繰り返しから脱出できない状態の事を「ループ」と呼んでいます。
又、壁に正対して止まっている場合(ステータスコード”111”)でも、180度半回転しても、反対側の壁に正対してしまいますので、同様のループ運動がおきてしまいます。

◇ループからの脱出
自分でプログラミングをしている以上、なんとか工夫してこの状態を抜け出す方法を考えなくてはいけません。
ここまでご覧になった皆様でしたら、どのように対処されますか?

私は前回どのような行動をしたか(ステータスコード)をメモリーしておき、今回の行動(ステータスコード)と比較することにより、イレギュラー処理を行うようにロジックを考えました。

◇イレギュラー処理
①ステータスコード=”110” AND 前回ステータスコード=”011” では”R45°”
②ステータスコード=”011” AND 前回ステータスコード=”110” では”L45°”
③ステータスコード=”111” AND 前回ステータスコード=”111” では”L90°”


この処理によって、ループによる反復運動は回避されるはずです。
さあ、それでは以上の条件で、VCLEでプログラミングしてみましょう。


■VCLEによるプログラミング
それでは、今回の処理の心臓部ともいえる、超音波による計測モジュールからプログラムしていきましょう。
処理の流れは次の通りです。

「計測モジュール」
ステータスコード(Status1)を0にする。
②超音波センサーを読む
③左センサーの値が40cm以上なら、Status1に100を加える
④中央センサーの値が40cm以上なら、Status1に10を加える
⑤右センサーの値が40cm以上なら、Status1に1を加える
以上③~⑤の処理で、3桁のステータスコードが生成されます。Id01_64_16

(画像をクリックすると拡大します)
3つのセンサーは必ず計測しなくてはいけませんので、IF文の中に入れ込む(入れ子)処理にはしません。


「行動モジュール」
計測モジュールと異なり、ステータスコード(Stasu1)の値を読み出すだけですので、一つのIF文の中にIF文を組み合わせ、入れ子状態で判定文を作成していきます。
先程記載した「センサー情報による行動パターン」と、イレギュラー処理を元に、プログラムミングしていきます。Id01_64_17

(画像をクリックすると拡大します) 

現段階では、目的もなく歩き(走り)回るだけで、部屋の何処に行ってしまうか分からない状態です。
何かに引っかかって止める方法として、当初は「音声コマンド」や「タッチセンサー」を用いましたが、遠くに行ってしまうためあきらめました。

PC-Cntrol或いは、Mobi-lControlの中の「行動」にある「ユーザープログラムON/OFF」でプログラムを終了させるて、停止させています。

■物体回避サンプルプログラム
バッテリー節約のため、LED発光や音声発生などは一切していません。
部屋の広い方に向けてプログラムを実行、走行させてみてください。
平面の物体は間違いなく回避しますが、机の脚などはケースバイケースですのでご注意ください。
狭いところでテストしましたので、前進がワンステップで10cmになっています。ワンステップ20cmくらいは変更しても大丈夫かと思います。
上の条件に加え、同じところで何回も回転し続けるバグを止める仕組みを組み込みました。
(テスト時には、有線でパワーを取得しているもので・・・)
「ステータスコード音声読み上げモジュール」を組み込みました。必要に応じてCALL命令で呼び出してください。
もし、参考にされたい方は、以下の方法で読み込んでみてください。

プログラムは「掲示板」で良く使われているプログラムソース形式と、ファイル置き場にある圧縮ファイルの2本立てにしました。

ソース形式のプログラムは、カット&ペーストで、テキストエディターに読み込み、適当な名前で保存してV-CEditaで読み込んでご利用下さい。

ここから下です。--------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="VisualClike.xsl"?>
<!DOCTYPE Program PUBLIC "VisualClike" "VisualClike.dtd">

<Program Version="1.0" Author="fumi" Description="fumi systemus">
  <Variable Type="Counter" Name="Status1" />
  <Variable Type="Counter" Name="Status2" />
  <Variable Type="Counter" Name="AngleCount" />
  <Main>
    <Call Target="Init" />
    <Start Target="Behavior1" />
    <End />
  </Main>
  <Behavior Name="Behavior1">
    <While>
      <LessThan>
        <Counter Name="AngleCount" />
        <Number Value="8" />
      </LessThan>
      <Loop>
        <Call Target="Measure" />
        <Call Target="Walk" />
      </Loop>
    </While>
    <Stop Target="Behavior1" />
  </Behavior>
  <Procedure Name="Init">
    <SetCounter Name="Status1" Value="0" />
    <SetCounter Name="Status2" Value="0" />
    <SetCounter Name="AngleCount" Value="0" />
  </Procedure>
  <Procedure Name="Measure">
    <CopyCounter Target="Status2" Source="Status1" />
    <SetCounter Name="Status1" Value="0" />
    <Read Source="proximity" />
    <If>
      <LessThan>
        <Proximity Source="Left" />
        <Number Value="30" />
      </LessThan>
      <Then>
        <IncCounter Name="Status1" Value="100" />
      </Then>
      <Else />
    </If>
    <If>
      <LessThan>
        <Proximity Source="Center" />
        <Number Value="40" />
      </LessThan>
      <Then>
        <IncCounter Name="Status1" Value="10" />
      </Then>
      <Else />
    </If>
    <If>
      <LessThan>
        <Proximity Source="Right" />
        <Number Value="30" />
      </LessThan>
      <Then>
        <IncCounter Name="Status1" Value="1" />
      </Then>
      <Else />
    </If>
  </Procedure>
  <Procedure Name="Walk">
    <If>
      <EqualTo>
        <Counter Name="Status1" />
        <Number Value="0" />
      </EqualTo>
      <Then>
        <MoveDist Speed="10" Dist="10" />
        <SetCounter Name="Status2" Value="0" />
        <SetCounter Name="AngleCount" Value="0" />
      </Then>
      <Else>
        <If>
          <EqualTo>
            <Counter Name="Status1" />
            <Number Value="100" />
          </EqualTo>
          <Then>
            <Turn Speed="1" Angle="45" />
            <IncCounter Name="AngleCount" Value="1" />
          </Then>
          <Else>
            <If>
              <EqualTo>
                <Counter Name="Status1" />
                <Number Value="1" />
              </EqualTo>
              <Then>
                <Turn Speed="-1" Angle="45" />
                <IncCounter Name="AngleCount" Value="-1" />
              </Then>
              <Else>
                <If>
                  <EqualTo>
                    <Counter Name="Status1" />
                    <Number Value="110" />
                  </EqualTo>
                  <Then>
                    <Call Target="Sta110" />
                  </Then>
                  <Else>
                    <If>
                      <EqualTo>
                        <Counter Name="Status1" />
                        <Number Value="111" />
                      </EqualTo>
                      <Then>
                        <Call Target="Sta111" />
                      </Then>
                      <Else>
                        <Call Target="Sta011" />
                      </Else>
                    </If>
                  </Else>
                </If>
              </Else>
            </If>
          </Else>
        </If>
      </Else>
    </If>
  </Procedure>
  <Procedure Name="Sta110">
    <If>
      <NotEqual>
        <Counter Name="Status2" />
        <Number Value="11" />
      </NotEqual>
      <Then>
        <Turn Speed="1" Angle="90" />
        <IncCounter Name="AngleCount" Value="2" />
      </Then>
      <Else>
        <Turn Speed="1" Angle="45" />
        <IncCounter Name="AngleCount" Value="1" />
      </Else>
    </If>
  </Procedure>
  <Procedure Name="Sta111">
    <If>
      <NotEqual>
        <Counter Name="Status2" />
        <Number Value="111" />
      </NotEqual>
      <Then>
        <Turn Speed="1" Angle="180" />
        <IncCounter Name="AngleCount" Value="4" />
      </Then>
      <Else>
        <Turn Speed="-1" Angle="90" />
        <IncCounter Name="AngleCount" Value="-2" />
      </Else>
    </If>
  </Procedure>
  <Procedure Name="Sta011">
    <If>
      <NotEqual>
        <Counter Name="Status2" />
        <Number Value="110" />
      </NotEqual>
      <Then>
        <Turn Speed="-1" Angle="90" />
        <IncCounter Name="AngleCount" Value="-2" />
      </Then>
      <Else>
        <Turn Speed="-1" Angle="45" />
        <IncCounter Name="AngleCount" Value="-1" />
      </Else>
    </If>
  </Procedure>
  <Procedure Name="CheckCode">
    <If>
      <EqualTo>
        <Counter Name="Status1" />
        <Number Value="0" />
      </EqualTo>
      <Then>
        <SayNumber Value="0" />
      </Then>
      <Else>
        <If>
          <EqualTo>
            <Counter Name="Status1" />
            <Number Value="100" />
          </EqualTo>
          <Then>
            <SayNumber Value="100" />
          </Then>
          <Else>
            <If>
              <EqualTo>
                <Counter Name="Status1" />
                <Number Value="110" />
              </EqualTo>
              <Then>
                <SayNumber Value="110" />
              </Then>
              <Else>
                <If>
                  <EqualTo>
                    <Counter Name="Status1" />
                    <Number Value="111" />
                  </EqualTo>
                  <Then>
                    <SayNumber Value="111" />
                  </Then>
                  <Else>
                    <If>
                      <EqualTo>
                        <Counter Name="Status1" />
                        <Number Value="11" />
                      </EqualTo>
                      <Then>
                        <SayNumber Value="11" />
                      </Then>
                      <Else>
                        <SayNumber Value="1" />
                      </Else>
                    </If>
                  </Else>
                </If>
              </Else>
            </If>
          </Else>
        </If>
      </Else>
    </If>
  </Procedure>
</Program>


ここから上です。-------------------------------

尚、「VCLEに読み込むには」「サンプルプログラムの実行」等については、『週刊myRobotを作ろう(55)』の中ほどに解説してありますので、宜しければご覧下さい。

◇ご注意
尚、動作に関しましては、プログラムが正常に処理されて、ロボ君の超音波センサーが動作する状態にあり、且正しく動いてくれて・・・という前提条件が付きます。
また、検証途中でもありますので、プログラミングミスが多々あるかと思います。
実際に走行させる方は、思わぬ動きをする場合もありますので、広めの場所で、周囲の安全を確認してから、注意をはらいながら走行させる必要があります。
もし、動作中にロボ君が何かに引っかかってそのままにしていると、モーターが止まり過電流が流れ、ボードから煙が・・・などのトラブルも考えられます。
ロボ君がひっかかったらすぐに持ち上げ、速やかに電源を切るなどの処理が必要です。
ご使用にあたっては、そのあたりをご理解の上、あくまでも自己責任でお願いします。

また、実際に検証された方で、バグ等お気付きの点がございましたら、是非、ご意見をコメントでお寄せ下さい。
(2007/5/25)


尚、圧縮ファイルでのダウンロードを希望される、とのメールが入りました。
「ファイル置き場」においておきます。宜しければご利用下さい。

◇デバッグ機能付きPGを追加
障害物回避プログラムを2台のID-01でテストしたところ、どうも1号機の動きが思わしくありません。
そこで、超音波センサーによる計測結果のステータスコードを音声で読み上げながら動き回る「デバッグ機能付き物体回避サンプルプログラム」ID01SenserWalk02.zipを追加しました。又、各ステップ間に1秒の待ち時間を入れました。
オリジナルプログラムに2つのコマンドを追加して、先に組み込んだ「ステータスコード音声読み上げモジュール」を動かしています。
「センサー機能による行動パターン」の表をご覧になれば、超音波センサーがどのように機能しているかを音声でチェックする事が可能です。宜しければお試し下さい。
1号機をこのPGでチェックしたところ、お腹から出ている20芯ケーブルとバッテリーボックスの接触不良が判明、コネクターを深く差込んだところ、不具合が解消しました。

Line01s_26

■ファイルの置き場
今週の記事で作製したサンプルプログラムを公開します。
大したものでなくて恐縮ですが宜しければダウンロードしてご利用ください。
データーはウィルスチェク済みですが、安全のため、ダウンロード後再度ウィルスチェックをされてからご使用ください。
ダウンロードの時、何故か拡張子が”VCLIK”から”XML”に変わってしまうため、zip形式で圧縮してあります。

データーは、右クリック「対象をフィアルに保存(A)」で任意のフォルダーに保存してください。
そして保存されたデーターを解凍ツールで解凍してからご使用ください。
ご使用にあたっては、あくまでも自己責任でお願いします。

サンプルデーター』---------------------------

(物体回避サンプルプログラム

「ID01SenserWalk01.zip」をダウンロード


(デバッグ機能追加物体回避サンプルプログラム)

「ID01SenserWalk02.zip」をダウンロード NEW (2007/5/26)

Line01s_59 ■「T-DroidC-C」がV3.0に
ついこの間「日本語化対応」下ばかりの「T-DroidC-C」の進化が止まらないのです。
こんどはV3.0になり、「T-Library」という新しいアイテムを携えて参上してきました。Id01_64_19

「T-Library」とは何かというと、例えばID-01のCMOSカメラを利用してセキュリティの用途に使いたい場合ですが、今までの仕組みですとたえずB-T接続を行い、信号のやりとりをしていなければいけませんでした。
ところが、この「T-Library」を使用することにより、何かあったらID-01からメール連絡が来るらしいのです。Id01_64_20
詳しくは「T-Library」の解説ページをご覧下さい。設定の仕方と、詳細な使用方法が載っています。

Id01_64_21 それ以外の機能で関心してしまったのが、「VocalCommandeパネル」です。
ワードセット1とかワードセット2などが日本語でリアルタイムに表示されるのです。
「アクション」でワードセット2にすると、このような画面が出ます。
つまり選べる言葉は日本語で表示されます。これを見て「ベース(前へ)」とか命令すれば良いので、非常に便利な機能です。
これから先期待がもてる、ものすごく便利で楽しみなアプリだと思います。

T-DoridC-CのV3.0は、ここのWebサイトの画面、真ん中あたりからダウンロードすることが出来ます。
ご興味があるようでしたら是非トライしてみてください。
尚、このアプリを使用するにあたっては、個人の責任の範囲でお願いします。
(2007/5/26)
 

Line01s_57 ■DONGO
物を探して棚の奥を覗いてみたら、古いロボットの箱入りキットが出てきました。
”クラッシャージョウ”という人気アニメの中に登場する”DORLOY MABOT DONGO”の1/12スケールのプラモデルキットです。Id01_64_01
 
中にセル画プレゼントのチラシが入っており、締め切り日が1983-2-5迄となっていました。おそらく1982製のキットだと思われます。モデルのメーカーは”タカラ”でした。
おやっと思ったのはご覧のように腰がリフトする事です。そしてキャタピラ走行で二本足走行ではありません。
顔つきや手の形状、胸のディスプレイなど、全体的にID-01になんとなく似ているのに驚いてしまいました。
完成すると、身長150mm、腰リフトで195mmになるそうです。
キャタピラは別パーツになっていて、小さいわりには結構良くできています。
ID-01を改造されたり、塗装されているモデラーの方には参考になるかと思い、紹介させて頂きました。

ID-01のベース部をキャタピラー化するには、戦車などのギアユニットが市販されていますので、それらを利用すれば物理的には変更が可能であると思います。Id01_64_03
 
問題は、モーターの仕様が、7.5Vで動くか、その消費電流は・・・などを調べる事と、オプチカルエンコーダーをどう組み込むか・・あたりでしょうか。
キャタピラー式の改造をお考えでしたら、DONGOのデザインはなかなか参考になりますね。
一方、ID-01同様、DONGOの腕もかなり細く、全関節をパワー化するのは難しそうです。Id01_64_02
DONGOのマニュアルの一部で、裏が組み立て説明になっています

Line01s_58 ■あとがき
これから先、65から69号までのスケジュールです。

号 数

主な作業押す(短く)

補   足

65号

ブレッドボード取り付け

66号

ブレッドボードのパーツ

CD-ROM3
ヘッド部に、ベースボード、ベース部、バックパックの取り付け

67号

ブレッドボード上で配線

  

68号

アームボード取り付け

  

69号

左肩と腕のパーツ

CD-ROM3に関しましては、デアゴ社「週刊myRobot」66号の掲載内容に以下の文章がある事を教えていただきました。
・・・今号(66号)に付いている『ID-01 CD-ROM 3』の概要についても解説する。
盛り沢山の66号ですが、発売日は2007/6/5です。楽しみですね。

だんだんと、第一目標である75号に近づいてきましたね。
マニュアル通りにベース部が組み込まれる66号と、そしてそのベース部をテストをするあたりが、ひとつの山場かもしれません。
私もベース部の左右モーターボックスは、かなり手を加えました。
おそらく、他のモーターボックス以上に手ごわいボックスです。
そして、忘れてはならないのは、腰リフト用の腰部モーターボックスです。
このモーターボックスは、イニシャライズの時、上下しますので、首のチルト/パン用モーターボックス同様に、きちんと動作しないとエラーが出てイニシャライズ不成立となってしまい、その先何も出来なくなる可能性が大です。
今がベース部モーターボックスを整備するラストチャンスかもしれません。是非・・・・・!

完動(完全に動作)するID-01を目の前に、90号、お互い皆様で完成を祝いたいですね。頑張りましょう!
     

|

« 週刊myRobotを作ろう(58) | トップページ | 週刊myRobotを作ろう(60) »

コメント

ふみのへやさん  今日はYIです。

東急ハンズ渋谷店シリコンOリング22mm・20mmを
注文(東急ハンズ名古屋店経由)1週間で入手でき
ましたので本日交換作業をし下記結果を得ました。

ふみのへやさん・KENさんの電流値までは下がりませんでしたが満足しております。

シリコンOリング22mm  左前輪   右前輪
 タイヤ付駆動軸水平  85mA    80mA
 タイヤ付駆動軸垂直  77mA    72mA

腰部       黒ベルト   シリコンOリング20mm
ベースアップ    360mA     200mA
ベースダウン    400mA     210mA

ふみのへやさん・KENさん有難う御座いました
大変感謝しております。

投稿: YI | 2007年6月 9日 (土) 12:29

全角大文字の「KEN]です。

名古屋店のOリングは太さが違うのですか!そういうのもあるのですね!知りませんでした!

渋谷店では需要が結構あるみたいで、22mmのシリコンのOリングが店頭に並ぶようになりました。

でも、2こしかありませんでしたが、置いてあるだけでもいいですね。

投稿: KEN | 2007年5月31日 (木) 17:51

こんばんは、ふみさん。
お忙しい中ご親切なコメント有難う御座います。
やはり仰る通り、習うより慣れろですね。どうも私は臆病な所があり
もし壊したらどうしよう?、
が先に立ち思うように先に進めませんでしたが、これからはダメ元で頑張ってみます。
有難う御座いました。

投稿: hisami | 2007年5月30日 (水) 23:16

YIさん、ふみのへや様こんばんは。
ZAXPROです。
Oリングの件、ふみのへや様にはわざわざメールまでいただきまして お手数かけました。
このリングは YI氏、またこちらのブログを見てから 名古屋のハンズに行ってるわけではありませんので、気になさらないで下さいませ。^^v

KEN様の所を見て型式 4CP-20を頼りにハンズへ
名古屋でもないか?との事から購入したのです。
現物は確かに Oリング シリコン、20mmありましたので、2つ入りで価格も安く思わず購入して
今回の結果に至ったので、なにも気にしていません。ご心配かけました。

JIS企画なので太さも信用していましたが、今は
皆さんと同じ物を発注してますので、届くのが待ち遠しいです。

P.S 本場イタリアは 89号まで転載されましたね^^

今後とも 皆様よろしくお願いします。

投稿: ZAXPRO | 2007年5月30日 (水) 23:00

YIさん こんばんは。

Tハンズ名古屋点の、店頭販売は、今回の対策に使用できないとの事、了解しました。
ブログの方は、早速、取り消し処理を行いました。ご安心ください。

当方も気になりますので、ZAXPROさんの方にはメールで連絡を差し上げておきます。
ご連絡、有難うございました。

投稿: ふみのへや | 2007年5月30日 (水) 22:45

ふみのへやさん 今晩はYIです。

ふみのへやさんブログ(58)にコメントした
東急ハンズ名古屋店の店頭販売シリコンOリング(22mm)は線径3mmでした。
線径2.4mmより太く今回の対策には使用出来ない物を判りました。

「魔法のリング」とし写真の下に「オリジナル黒ベルトよりは若干太めの白いリングです」と紹介されていたので東急ハンズ渋谷店の(20mm)と名古屋店は同じ商品と思い込んで(20mm)と合せて(22mm)も購入しました。

その後コメントを見ても私のようにモータープーリーを0.5mm外に移動させることともなくそのまま交換ができるように読取れ、JISでは線径2.4mmとの記述があり、私の電流値が皆様のように100mA以下にならない事などから東急ハンズ名古屋店で店頭販売されている(22mm)は今回の対策には適さない物と理解しました。

私の早とちりのコメントで東急ハンズ名古屋店で購入されたZAXPROさんがお困りとブログ(59)で知り大変申し訳なく思います。
ZAXPROさん御免なさい。

ブログ(58)にYIさん追加情報として東急ハンズ名古屋で店頭購入可能の追加記載頂きましたが、今回の対策には使用出来ない物と訂正文を記載いただけますようお願い致します。

投稿: YI | 2007年5月30日 (水) 21:24

hisamiさん こんばんは。

>VCLEでプログラムを組むにあたり・・・ここを理解すれば全体像が解るよ!と云うツボみたいな物があれば教えて下さい。

そのようなツボがあれば、私も教えて欲しいくらいです。
でも、そのツボは、プログラミングを好きになる事かもしれません。

その点、ロボットのプログラムは非常に面白いと思います。
何故? プログラム結果が、動作で帰ってくるから分かりやすいのです。

まず、VCLEのユーザーガイドにある、全ての命令を片っ端から、VCLEに書いて、実行させてみては如何でしょうか?
もちろん、未装着なパーツは無理としても、それ以外は全て動作で帰ってきます。
この命令を使うとどのように動くか・・・と言う事が分かってくると、こう動かしたい時には、この命令を使えば良いなと分かってきて・・・などと、少しづつ体得(体と間隔で覚える)されて行くのが宜しいかと思います。

それができてきたら、なるべくシンプルな動きを考えてみてください。
前進(80cm)させて、10秒停止、後退(80cm)させて、プログラム終了。
慣れてきたら、一部アレンジ。
後退の変わりに、180度ターンで戻らせるとか・・・・
このように、一連の動きの一部アレンジを行い、バリエーションを付けていくのも、上達えの早道かとも思います。
それも慣れてきたらこんどは、人が組んだプログラムの解析もしてみると思わぬ収穫が・・・
まず、サンプルプログラムから始めると、とっつきやすいかもしれません。ユーザーが理解しやすいように分かりやすく作ってあるからです。
などと、偉そうな事を言ってすいません。
あせらず、騒がず、楽しんで・・・・くらいの気楽な気持で取り組まれてみては如何でしょうか?

シリコンベルトのお話了解しました。シリコン素材、不思議で便利なもののようですね。

投稿: ふみのへや | 2007年5月30日 (水) 00:22

こんにちは、ふみさん。hisami です。
超音波にセンサーによる物体回避プログラム興味深く拝見しました。
行動プロセスを検証する所までは薄々ですが分かります、でもいざ
VCLEでプログラムを組む段階になると、タチマチ、ギブアップです。
この様な人間にも分かる方法は無いものでしょうか?
やはり勉強と実践のみなのでしょうか?
気持ちばかり焦り先へ進みません、ここを理解すれば全体像が解るよ!
と云うツボみたいな物があれば教えて下さい。

PS・私が以前、印刷会社で使用していた、シリコンベルトは
通常のゴムベルトの2~3倍の耐摩擦性と引張り強度がありました。
ただ事業用ですのでこの小さなベルトに当てはまるか不明ですが、
強い事は間違いありません。

投稿: hisami | 2007年5月29日 (火) 23:14

ZAXPROさん はじめまして。
当ブログをご愛読頂いているようでありがとうございます。

>「魔法のリング」チェック用にデジタルテスターで電流チェックをしようとしたけれど、測定できない・・・・

測定できない理由として思いつくのは以下の通りです。
●最大電流値の範囲をオーバーしている場合
(私のは最大10Aまで計測できます)
●接続回路が直列になっているか?
(電池→テスター→モーター)

電流測定の記事は『週刊myRobotを作ろう(55)』に接続方法を含めて載っていますので、今一度ご覧下さい。

テスターの接続端子が幾つあるかは、テスターのメーカー、機種によって様々ですので、そのテスターのマニュアルの指示通りに接続すれば良いと思います。
(同一メーカーでも、もう一台のテスターは穴が4つあります)

それから、「購入したOリングが太過きた・・・」という事ですが、「モーターのプーリーの位置を5mmほど調整して対応した」との記載をどこかで読んだ記憶があります。

どうか頑張って対応されてください。

投稿: ふみのへや | 2007年5月29日 (火) 17:43

ふみ様 初めまして。
ここはずっと拝見させていただいてます。
いつも 興味津々で楽しくID-01をここを参考に
作成しております。
さて、私も魔法のリングにチャレンジしようと
思い、解体し修正しました。ひっかかりは無くなり、いざテスターで測ろうと思いましたが、デジタルテスターも所有してますが、どうしても測定できません。
こちらの同じテスターではないのですが、電流測定も出来る物なんですが、、?_?
DC_A AC_A 対応ですが、一つ疑問があり
ふみさんのテスターと 赤と黒のリード線が刺す
穴が 私のは +と-の二つしかないのですが、
ふみさんのは 3つありますよね? それが原因かと思っているのですが、、実際にはどうなんでしょうか? よろしかったら 教えて下さいませ。


P.S 名古屋の東急ハンズでOリング購入しましたがリングの太さが太すぎの為、1.5Vでは回転しなくなりました。RD-01の付属のOリングでは問題なく動くため、結局 渋谷店のハンズより現在取り寄せしてもらっています。 ご参考までに。

投稿: ZAXPRO | 2007年5月29日 (火) 16:44

Aさん こんばんは。

>輪ゴムでブレット・ボードをとめたらどうですか?

一般論で言える事は、ベース部のモーターには大電流が流れます。
これらは全てベースボード背面のピンから供給を受けていますので、通電中、輪ゴムで仮止めしたボードが抜け落ちたら・・・考えただけでも恐ろしい事になるような気がしますが・・・

ただ、輪ゴムで止めて何をされたいのか全く不明ですので、現在、どういう状態なのかと、これから何をしたいのかを教えてください。お願いします。


投稿: ふみのへや | 2007年5月27日 (日) 21:28

輪ゴムでブレット・ボードをとめたらどうですか?

投稿: A | 2007年5月27日 (日) 20:37

KOBAさん こんにちは。

前輪の完成度がかなり上がった・・・良かったですね。
こだわりのKENさんのお陰で、主輪は本来以上の性能が出始めた感がします。

後輪を大きくする改造・・・・
主輪に対してあまりにも小さい後輪なので、私もなんとかしたいと思っていました。明日の「掲示板」を楽しみにしています。

投稿: ふみのへや | 2007年5月27日 (日) 11:05

ふみさん、こんにちは。
ふみさんやKENさんはじめ、皆さんのお陰で前輪の完成度もかなり上がりましましたね。
そうなると気になるのは後輪です。
自分なりに後輪を大きくする改造をしてみました。
たいした改造ではないですが、明日、デアゴの掲示板に投稿する予定ですので一度、ご覧下さい。

投稿: KOBA | 2007年5月27日 (日) 09:27

SeireiKさん こんにちは はじめまして。

当ブログをご愛読頂いているようでありがとうございます。

DONGOを作られた・・・オムニボットもお持ちだった・・・とは、昔からロボットがお好きだったのですね。
プラモは作ってしまった後の保管が難しく、時間のある時にでもゆっくり作ろう・・・などと保管していて、そのまま忘れ去ったものがいくつか有ります。
DONGOもそのひとつですが、たまたま見つけ、あまりにもID-01との共通点があったので、思わず紹介してしまいました。

オムニのコントローラーで夢想するのは良い事だと思います。
イマジネーションが刺激されクリエイティブな思考が生み出され、ロボット作りに役立つのでは・・・などと考えています。

第一目標の75号もだんだんと近づいてきました。
ID-01の製作、お互いに頑張りましょう。

投稿: ふみのへや | 2007年5月27日 (日) 07:41

ふみさんこんばんは。はじめまして。
いつも陰ながら楽しく拝見させて頂いておりましたが今回DONGOのあまりの懐かしさに思わず反応してしまいました。アニメは全く見てませんでしたがただただスタイルの可愛さに惹かれて買った(作った)記憶があります。確かに今改めてじっくり見てみるとID-01っぽさを感じてしまいますね。
それと、以前紹介なさっていたオムニボットも家にありました。今では押し入れにコントローラーが眠るのみですが、これでID-01が動かせたらなぁと夢想したりなんかしてます。

マイロボットの最新情報を常に検証・提供し続けるのはご苦労も多いことと思われますが、今後も楽しい記事を心待ちにしておりますのでよろしくお願い致します。それではまた。

投稿: SeireiK | 2007年5月27日 (日) 03:33

ふみさん、おにゃにゃさん、

「魔法のリング」は本当に苦労のたまものでした。

皆様に喜んで頂ければ、本望です。

リングの交換は車輪と腰だけに留めておいて欲しいと思っています。

私はまだ、腕のモーターボックスも検証中ですが、もともとのドライブベルトが細いので、結果の電流のバラツキが大きく、一概に良い結果が得られるとは限りません。

試されるかたは、余程、注意しないと、逆効果だけではすまず、ボードを損傷(損焼?)する危険性さえありますので、くれぐれも、自己(事故)責任で、、、           全角大文字のKENでした。

投稿: KEN | 2007年5月24日 (木) 22:51

おにゃにゃさん おはようございます。 いつも情報有難うございます。

一年3ヶ月ですか・・・来る6月中には左腕の一部もリリースされ、75号は目の前。本当に早いいものです。

モーターボックスカバーの不良とのこと・・・基幹部分なので一刻も早く手に入れたいとろこでしょうね。

「魔法のリング」を入手及びテストをされたようですが、わたしも、KENさんから紹介された時には本当に驚きました。
ブログを読むと、かなり色々なリンングを試されたようですね。
KENさんの研究熱心さと、何事もあきらめないという執念が生み(探し)出したリングだと思います。

あのリングの秘密は、柔らかさとプーリーへの食いつきの良さが、魔法効果を出しているようです。
自己責任の範囲内で、ご本人が満足して、結果良しであれば、これ以上の事はないでしょう。
おにゃにゃさんの仰る通り、他のベルト交換の事も検討しておかなければいけませんね。

只今、VLCEで衝突回避の簡単なプログラムを作製、テスト中です。
うまく動作すればいずれ記事にする予定です。

投稿: ふみのへや | 2007年5月24日 (木) 08:13

 ふみさん おはようございます。

 思えばマイロボを製作開始して、もう1年3ヶ月にもなってしまい、第一大目標75号が見えてきましたね。早いものです。

 さて、私のほうは、ベース上下時の異音対処でベースを分解したところ、モータボックスカバーに不良があり、部品待ちになっていることを機会に、今話題の「魔法のリング」を入手しテストをしていますが、まさに魔法と言う言葉がピッタリで、驚くべき結果です。KENさんに感謝感謝です。かなりご苦労された結果ですが、素晴しい結果を得られて大満足です。

 ふみさんとKENさんも書かれていましたが、耐久性が未知数ですが、オリジナルであってもベルトはメンテで交換するべき部品と理解していますので、仮に多少寿命が短くなったとしても、得られる結果が大きいので、ヨシとすべきと思います。

 

投稿: おにゃにゃ | 2007年5月24日 (木) 07:27

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: 週刊myRobotを作ろう(59):

« 週刊myRobotを作ろう(58) | トップページ | 週刊myRobotを作ろう(60) »