K R-Lab.

K's Robot Laboratory


第13回大会 ・・・の頃にやってた事徒然(不定期日記のただのログ・・・)


■近況
2008年4月4日:母、永眠

4月1日、母が亡くなりました。
本日、無事に告別式、初七日の法要を終えました。


ここ二ヶ月ほどは介護で忙しく、ロボットをいじる
どころではありませんでした。

ピカチュウの亀蔵君を乗っけてロボット歩かせるのを
生きている内に見せたかったのですが、残念ながら
間に合いませんでした。


活動再会はまだまだ先になりそうですが、墓前にて動画を
再生できるよう、今のマシンは完成させたいと思います。

2008年3月10日:生存報告

生きてます。

・・・ふぅ。

何も出来ないなりにテクニカルカンファレンスの
記事をRobotwatchで見たりしてはましたが、欲求不満が
溜まりますね。

ロボット作りたい&いじりたいです。orz

2008年2月11日:次回大会も・・・

見合わせになります。

ちょっと、色々ありまして・・・。

本人の体調不良に加えて家族の体調不良、
マシンメンテ出来る状態じゃないっス。

う〜ん、SISOさんの新型G-Tuneと思しきマシーンを
直に見たいんだけどなぁ・・・。

2008年1月26日:風邪引いた・・・。

なんか、風邪は頻繁に引いてますが、今回はちょっとしんどい。
久しぶりに病院に行きました。

で、診察室に入ると、
「去年はロボットに指を挟まれたんですよね。大丈夫でしたか?」

はぁ、もうそんなに経ちますか・・・って、先生、その笑いは何スカ?

ちなみに、ここんとこ作業できてないです。

一応、課題として、ロール軸の強化の他に脚フレームの剛性UPを
考えています。ロール軸方向揺れへの対策です。

ロール軸を作り直す前に剛性UPを試してみようと考えています。

まあ、脚のフレームは基本的に2mmのABS板材でして、
前々から厚みを増やそうとは考えていました。

方法は、同じ形のフレームをABSで切り出して接着剤で
貼り付けようかと思ってます。

真面目に強度考えて設計すると、自分の性格だとマージンを
多めにとりすぎてしまって重くなりすぎる可能性が高いので、
この辺はいい加減に決めようかと思ってます。

2mm+1.5mmにしようかな。

2008年1月13日:新直行パーツ設計中

脚ロール軸についてリンク比でトルクを稼ぐ直行パーツの
設計中です。ちなみに屈伸の深さも改善できます。

方針は決まりましたが、このリンクがどんな動きを
するのかの解析が結構面倒です。

最大可動範囲はパーツの干渉がないものとした時に
内側に約20度、外側に約65度という事は実際に図面上で
確認しましたが、サーボホーンの回転角に応じてどんな
軌跡を辿るのかまだ分かってません。

これから暫く数学モードです。

2008年1月12日:

あまり格好良くないですが、予告していた動画公開です。
ちゃんとVS-RC003HVでAX-12を動かせてます。

旋回モーション《1MBytes .wmv》

これまで圧縮しないで公開してましたけど、今回はやってみました。
画質は落ちてますが少しは軽いと思います。

2008年1月11日:ロール軸のトルク不足対策

いえね、しつこいようですが腕をAX-12に戻した時には
絶対に不足するんですよ。これが。

当のロール軸か、膝用にHVとか、強力なサーボを購入して2350を
使いまわすかしないといけないかなぁ〜とか正月中は思ってましたが、
まだ出来る事があるのに気がつきました。

リンク比でトルクを稼ぎます。1:1.5くらいで。
すると、換わりにスピードが落ちて可動範囲が狭まりますが、
5801は元々素早いサーボなのでスピードが落ちても2350よりちょっと
遅いくらいで済むし、角度は外側により大きく広げられるように
配置してやればなんとか実用に耐えそうです。
図面引いてみないとなんとも言えませんが・・・。

明日からの3連休は今の構成でモーション作成しますが、
一通り出来て動画を撮ったら新しい直行ブロックの設計を行います。

脚ロール軸のトルクを5割り増しに出来れば再度膝ダブルにしても
遊脚の重さにダレる事無く動いてくれるのではないかと・・・。

2008年1月6日:便利だよVS-RC003HV

・・・というか、モーションエディタのRobovieMaker2、
流石ですね。あっという間に前後歩行が完成しました。

本当は今日、AX-12をVS-RC003HVで動かしている証拠動画として、
旋回モーションを公開したかったのですが、左旋回は出来ているのですが、
それと対照に作っているはずの右旋回が安定しないところを見ると、
ホームポジションか、左旋回モーションに欠陥があると思われます。
これが修正できてから公開します。多分来週ですが。

・・・で、RobovieMaker2の威力に話を戻しますが、
パラパラマンガ方式で作成する分にはこのフローチャート形式で
モーション作れるのって、とっても便利です。
しかも操作チェックも同時に出来てしまうとは!

更にFlashに書き込まなくてもRAMに一時的に転送してモーションの
チェックが出来るも楽です。
調整の度にFlashの書き換え回数を気にしなくて良いのが◎。
自作コアでは一々マイコンのFlashや外付けのEEPROMに書き込んで、
マイコンの再起動をしながらモーションチェックしてましたんで。

真似しても良い所は積極的にしていきたいと思います。

2008年1月3日:やっぱトルクなのか・・・

膝シングル化による軽量化によってなんとか安定しつつ
ありますが、腕をAX-12に戻したら重量が増えて不安定に
なりそうです。
その場合、脚ロール軸のトルクがまた不足してしまいそうな
予感がひしひしと・・・。

現在脚ロール軸はJRの5801。
これを2350にすればおよそ15%のトルクアップが図れます。
15%って数字は、786→788HVと同程度のトルクアップ。
小さいようで大きな差です。

ただ、そうすると膝サーボがなくなってしまうのですが、
こいつをさらに強力な奴に換装できればジャンプも問題なく
できるだろうし、大会参加を考えるのであれば熟考する
価値のある方法かと。

膝サーボの候補は、JRの8901と、2350HV、HS-59xx。
2kg弱のボディを支えるピッチ間距離80mmの膝には、今の5割増し
程度のトルクは欲しいので。

HS-59xxシリーズは、この文章書いてる途中で調べてみたら、
寸法的にちょっと横幅(サーボホーン−フリーホーン間距離)が
広すぎで、併用が難しそうなので却下。
この期に及んでメカの設計から大幅に変えたくありません。

2350HVを使う場合は部品を新たに削る必要はありませんが、
もちろん部分HV化になるのでバッテリーを二つ積むか、
昇圧回路を組む必要が出てきます。
バッテリー二つ使う場合、管理と重量増がやっかいです。
昇圧回路を使う場合、出力電流に激しく不安が出てきます。

8901の場合もフレームを新規に作成する必要がありますが、
横幅の寸法が2350と大きく違わないのでまだ楽に設計できるかと。
コンプライアンス制御が出来ないので目的であるジャンプをさせる
場合に大きな不安がありますが・・・。

なんか、難点ばかりが浮き彫りになってきて、先に進めなさ
そうですが、昇圧回路の設計&製作してみて、今の機体に
収まりそうだったら2350HVを採用。
駄目なら8901にしようかと。

まずは今のままで歩かせる事が先ですが。

2008年1月2日:なんというか・・・

結局、膝シングル構造に直しました。
ダブルサーボにしてから全然歩行が安定しなくなって
しまいまして、どうも全身の揺れ具合から重量増、
特に遊脚の重さが影響してそうに見えたので。

やってみると、確かに足踏みが安定しましたが、
ジャンプできなくなりました。(T_T)
ピッチ間距離が長くなり、膝サーボのトルク不足が
目に見えて明らかになりました。

このマシンじゃ大会の規定演技は無理っぽいです。

カメちゃん乗っけて歩く動画撮ったら膝トルクアップを
目指します。

2008年1月1日:あけましておめでとうございます。

今年はイベント出られるかなぁ〜〜。

2007年12月31日:モーション作成中

今日は大掃除をしました。
夕方までかかってしまったのでロボ作業はこれからです。

ジャイロは設置スペースの都合から、専用はちょっと難しそう。
KRG-3を試しましたがあまり芳しくないので、足首だけにKRG-2を
使うことにしました。

これから年越し蕎麦を食べてそれからジャイロを組み込む作業を
したいと思います。

では皆さん良いお年を。

2007年12月30日:モーション作成中

・・・ですが、ジャイロが無いと足踏みも危ういです。

さて、どうしたもんか。
手元のアナログセンサボードとKRG-3(1個)でなんとか
するべきか、専用ジャイロを購入するか、ジャイロ無しで
がんばってみるか。

2007年12月24日:作業進捗

メリークリスマスイブ。(^○^)
ちなみにシングルベ〜ル!(ー_ー)!!

なんとか火入れまで出来ました。

いままでカメちゃん乗っけるスペースを
用意しておきながらも、いざ配線や
バッテリーを積んだりすると結局
そのスペースが侵食されて載せることが
出来ませんでしたが、今回はご覧の通り、
しっかり乗れてます。(^_^)v

大型化してしまいましたが、脚ピッチを
全て2350(NotHV)にすることでホームポジションで
自立させても結構しっかりしてます。

ああ、そうそう、小細工ボードはしっかり
威力を発揮してまして、VS-RC003HVで
AX-12を3個をしっかり動かす事が出来てます。

2007年12月22日:作業進捗

最近マメに更新していたせいか、1週間しかあいていないにも
関わらず随分ご無沙汰な感じがします。

本日の進捗は、先週書き上げた図面をようやっと切り出して
その他小細工ボードを固定するパーツと、脚ピッチを全て
2350にするための脛パーツを加工。

この3連休中に火入れまでは出来そうです。
そのための残作業は、

1.脚サーボへの信号供給用の中継基盤の作成
2.下半身への電源供給用基盤の作成
3.パーツの組み立て
4.配線

なんとかなりそうっス。

2007年12月15日:作業進捗

ようやっとバッテリーホルダとマイコンボード固定パーツの
図面描けました。
小細工ボード固定パーツはまだなんですが、丁度A4に収まる
だけの展開図を描いたので今日はここまで。

明日加工します。

それから、瑠璃茉莉用の小細工ボードにBTC067使っちゃったんで、
鳳仙花用のサブボードのためにもう一つ補充しておきました。

・・・でも、今動かせるようにしようとしているマシンって、
ちょっとコンセプト的に中途半端。

ハード面では肩の構造以外は全部鳳仙花のままで、
それに電装面とソフト面だけ瑠璃茉莉って感じ・・・。

2007年12月13日:情報が遅い・・・(T_T)

腰のヨー軸ブロックをなんとかするために小細工を
したわけですが、その労をあざ笑うかのように
ピボットターンなんたらが出るそうですね。
あと一週間ほどで。(泣)

う〜ん、どうしてもロボスポ行きたくなったら買おうかな。

2007年12月10日:

わーい ONO-ONEだーい \(^o^)/
ありがとうございました。m(_ _)m

アリンコの上のゲームウォッチの方が気になる
というご意見もいただきましたが・・・。(^^;

・・・
003HVのマニュアル読んでますけど、結構めんどいですね。
それだけ多機能という事ですが。

それから、メカ部について、腕は無理やり引っ付けられたけど、
基盤類と、バッテリーを固定する器具は作らないとな・・・。

2007年12月9日:AX-12をPWMで動かす

・・・ための実験に成功しました。

というか、小細工ボードが完成しました。

《動画》(11,712KB / .MPG)

パルスの発生源はジャイロを使ってます。
ジャイロを動かす都度AX-12が動いているのが分かると思います。

これで、パルスの発生源をコントロールボードに置き換えれば、
市販のコントロールボードからでもAX-12を動かすことができるでしょう。
・・・多分。

使うプロセッサが何相のパルスを読み込めるかによって使えるシーンは
大分制限されますが・・・。

実験で用いたのはBTC067(ATmega32)で、これは2相までパルスを読み込めます。
今回の目的では3個のAX-12を動かしたかったのですが、脚ヨー軸の分は
1相のパルスで左右反対側に開閉させる仕様にしたのでこれでOK。

ただしこれは、ハード的にキャリブレーションされているAX-12だから
良いのであって、汎用的に使うのであればホームポジション設定のために
1対1にしないと実用に耐えないでしょう。

回路図はこの間のパワーポイントで書いた図から想像していただくとして、
ソースコードはこちら

pbfirm.c

GDL 1.9.1.6で、最適化オプションなしでコンパイルしています。

小細工なので、今回の使い方は特殊ですが、
普通にDynamixelとの通信や、ジャイロ等パルスの読込みプログラムの参考になるかと思います。
外部割込み関係のレジスタ名は、ざっと調べたところ、ATmega128と共通みたいなので、
このままBTC068(ATmega128)で使う事も出来るでしょう。

ご自由にお使いください。


・・・
さて、VS-RC003HVのマニュアル読みこなすか。(^^)

2007年12月7日:購入!

本日早めに帰宅して、王国でVS-RC003HV買いました!
アナログ入力ボードとスピーカーも一緒に。

ついでに高屈曲ワイヤーも欲しかったんですが売り切れとの事。
次はいつ入るんでしょうかね?

今日の作業進捗は、昨日考えた小細工ボードのパターンを
作ってました。

・・・といっても、薬品やCNC使ってどうのじゃなくって、
パターンシールとジャンパ用の線材用意しただけですが。(^^;

VS-RC003HVへの通電は小細工ボード作ってからね。

2007年12月6日:小細工

自らに問いかけるわけだ。

786×3個で腰のヨー軸ブロックを上手く組めるのか?と。

それが出来ないからAX-12を採用したんじゃなかったっけか?
・・・つーことで、小細工をする事にしました。

ATmega32を使ってPWMを読み取って、AX-12にパケット送ります。
これで、VS-RC003HV(予定)からAXを動かせるようにしようかと。
右の回路(に見えないか・汗)で読み込めるパルスは2相で、
脚ヨー軸は一つで二つを反対方向に動かします。
で、もう一方のパルスは腹ヨー軸の信号を読み込みます。

制御周期に気を使う必要がありそうですが、短いファームウェアを
ちょこちょこっと書くだけでなんとかなりそう。

・・・話は変わりますが、
オリジナルのコントローラーを作る上で最も手間がかかるのが、
(と主観的に感じているのが)PC側モーションエディタの作成で、
今回市販コントローラーを使ってみたいと思ったのも、その辺で
ちょっと手を抜いても手軽に動かせる環境が欲しかったのと、
製品の機能を実感してみたかったからでもあります。



・・・あ、またロボスポが遠ざかった。(−_−;

AX-12に送るGaolPosition = 512 + ( pulse_N - 3000 ) / 4
(キャプチャはクロックをφ168で使う事を想定。)

2007年12月5日(←45分早いけど):2機のサーボ内訳

瑠璃茉莉は、メンテもデモも気軽に楽しくって事で、構成は、
腕:786×4(片腕辺り)
腰:ヨー軸ブロック786×3
  (前回泣いた構成なので、加工に細心の注意を払う必要があるけど。)
脚:(ピッチ間距離65mm。)
  腰オフセットブロック
  ・ピッチ:786
  ・ロール:2350
  膝:2350(シンングル)
  足首オフセットブロック
  ・ピッチ:2350
  ・ロール:786

市販コントローラーを採用。VS-RC003HV(予定)

ALL近藤サーボ! ロボスポデビュー?


鳳仙花は、フラッグシップマシンというか、
個人的な研究用プラットフォームとして色々な事に挑戦。構成は、
腕&腰ヨー軸ブロックをAX-12、
脚は直行軸必須で、
ピッチ軸に4014(3)を膝シングルサーボで想定、(購入はいつだ?!)
ロール軸は
リポ3セル→9Vに降圧&トランジスタで電流増幅して
5801を採用する予定。(電源二重化も視野に入れる。)

コントローラーは自作のPX-Core Ver.3。
DynamixelとPWMの併用&自作スクリプト言語の採用が特徴。(計画)



・・・バトル用がないね?(笑)

2007年12月4日:取り急ぎ・・・

動かしたい理由が出来たので、
鳳仙花のファーム&モーションエディタよりも先に
瑠璃茉莉を動かせるようにします。

鳳仙花のファームも並行してやりますが、
優先順位を変更するということで。

結果、3月のROBO-ONEに出られなくても仕方なしと
考えてます。(←瑠璃茉莉をバトル大会に出す意思無し。)

・・・瑠璃茉莉は徹底して楽をします。
まず、フレームは80%鳳仙花のものを流用します。その上、
これまで拘ってきた全てをかなぐり捨てて兎に角動かします。
つまり・・・、
市販のボードを使います。(^^;;;;;

新型鳳仙花のファーム、というか、自作スクリプト言語を
構成するにも、市販のボードで出来ることを知っとくのも
いいかなと。

ボードの選定ですが、デモンストレーション用として
必要なので、音声なんか出したいので、VS-RC003HVにします。

ただ、ジャイロは専用じゃないといけないのかとか、
まだ調べないといけない事ありますが、値段も他社製の
半分くらいと安いので、その点からもこれに決定。

(アナログ入力ボードでKRG3とか使えないのかな?
 ちなみに、ジャイロはパルス出力の方が好きなんですよね。
 ノイズ対策が面倒なんで。
 ・・・そもそもIXBUSの通信仕様が分かればKRG1繋げる
 拡張ボード作るのに。・・・まあ、いいや。)

2007年12月2日:2台体制・・・

今浮いている786とMicroMGを組み合わせると
もう一台作れてしまう。
・・・それとも、6V機とHV機で2台に
するか、などと贅沢なことも考えたりして。
AX-12は12Vの方がスピーディーだし。

どのサーボを使うかはともかくとして、
2機目の名前とコンセプトは決まっています。

名前は瑠璃茉莉(ルリマツリ)

脚の直行軸や肩の軸配置など、鳳仙花で拘っている
構成には囚われず、効率の良い設計で作る予定です。

ターゲットを次回ROBO-ONEじゃなくて、Specialに
変更しようかな?
んで、2台じゃなくて3台用意できればサッカー
チーム編成できるし。

あ、その場合オペレーターあと二人頼まなきゃ。

・・・
逃避はこのくらいにして、鳳仙花の進捗はというと、
メインボードのディップスイッチ部を直して、
ファームのプログラムに本格的に入ったところです。

来週末にはAX-12のホームポジションを設定できる
くらいはいけそう。

年内にサブボード完成させたいっス。

2007年11月30日:メカの気分と慣性の法則

ボーナス日も近いことだし、401xの購入が頭をよぎったり
しましたが、やっぱり2350膝ダブルでがんばってみようかと
思い直しました。

・・・そもそもジャンプって、屈伸姿勢から立ち上がる際の
慣性で浮き上がるわけで、その時に必要となる要素って、
サーボの性能レベルで言えば、確かにトルクとスピードですが、
物理現象で言えば屈伸姿勢からどれだけ素早く立ち上がれるかって
事なわけで、それには何が必要かというと、

上下方向の加速量 ≒ 屈伸から元の直立姿勢にもどる量 ≒ 屈伸量

なんか、"量"って、曖昧な表現ですが、これはつまり、屈伸が深ければ、
立ち上がるまでにサーボが回転する角度が大きくなって、その角度分、
サーボが回転した分だけ力が加わり、上方へ加速できる、という理屈です。

ちなみに、今の鳳仙花の屈伸角度って、サーボ一つあたり50度〜60度程度です。
直行ブロックが縦に長く、低い姿勢が取れないのが原因です。

・・・ぶっちゃけて言えば、昨日の日記に書いた直行ブロックの
見直しによってジャンプ力が改善するのではないかと。

それから、やっぱり腹ピッチ軸は欲しいかなと思います。
前傾姿勢にすることで膝への負担を軽く出来るはずで、
多少の重量増加は屈伸量の改善でなんとかなるのではないかと。

2007年11月29日:メカの気分

そういえばメカ部分を早期に用意できてしまっていたので
暫く触ってなかったけど、エレキとソフトばっかり
やってると発作的にメカの見直しをしたくなります。

・・・脚ロール軸のアームを短くしたいとか、2年間使ってきた
直行軸の構成を変更しようか、等と考えています。

具体的には40xxシリーズでメジャーな直行軸の構成を、
KRS2350と、RBS5801で作りたいなと。
5801はノーマルのままでは難しいので、582のサーボケースを
使います。本日早めに仕事を切り上げて王国で購入。
丁度ロール軸の4個分があったので買い占めちゃいました。
狙ってた人いたらすみません。

あと、ロンダートやるには、腹のヨー軸の他にピッチ軸があると
楽かな、などと考えています。(ヨー軸が上、ピッチ軸が下。)
軸を一つ追加するべきか検討中。

でもそうすると重量も増えてしまうし、膝ピッチ軸への負荷が
増してしまいます。
膝をダブルにして脚のピッチ軸間距離を抑える事でトルクの余力を
稼いでいますが、これ以上重くすると2350でジャンプするのは
困難になるかもしれません。

うちの鳳仙花にとってはいやらしい規定演技のコンボです。

・・・やっぱり4014か?
脚が軽い方がロンダート簡単なはずだし、トルクのあるサーボを
使って膝をシングルに直すというのも手かな?

2007年11月29日:毎日骨骨

ブレッドボードで試したところ、
やっぱり、両方問題でした。(−−;

H8の時はこの辺いい加減に作っても動いてたんだよなぁ〜。
やっぱり電気的特性が違うということですか。

ボード作り直そうかなぁ・・・。
AXとの通信に74HC125使っているけど、トランジスタ
買い足したからもっとコンパクトに構成できるし。

2007年11月28日:今日からファーム

DipSwitchの状態に応じてモード変更という
基本の基本から実装。

さらっと終わるはずがノイズが激しくて
使いもんになりません。
回路がまずいみたいですね。
ONでプルアップ(5V)、OFFでHigh-Z。
しかもプルアップ抵抗が100kΩと大きすぎ。

High-ZをOFFにするのがいけないのか、
抵抗値が大きすぎるのがいけないのか。

とりあえず、High OR Low で区別できるように直します。
ポートの機能でプルアップかけて、今5Vに吊ってるのを
プルダウンに直してみよう。

0時過ぎて半田付けしたくないのであとは明日。

・・・DipSwitch周り作り直したほうが早いかな?

2007年11月25日:連休の成果

・・・はあんまり芳しくないです。
ずっとPC側モーションエディタ作ってました。
全然終わってません。
今回、二つの目的があってシステムを大幅に改修します。

  1. AXのプロトコルでPWMサーボを動かせるサブプロセッサ製作
  2. 自作スクリプト言語でモーション制御

どの位大幅な改修かというと、全部作り直しってくらい。(^^;

間違いなく進捗はあるはずなのですが、やっぱサーボが動かないと
進んだ気がしなくてモチベーションが上がりません。

一応、作ったのは、以下の5つで、データベースと連携が出来てるのは2まで。
シリアル通信はまだ実装できてないのでマイコンとはつながりません。
ファーム側もまだ作ってないし。(汗)

  1. ホームポジションの設定画面
  2. パラパラマンガでのポーズ作成画面
  3. 逆運動額でのポーズ作成画面
  4. 歩行パラメータ設定画面
  5. センサ値読込み画面

逆運動額とパラメータ歩行は後回しにしてでもさっさと動かせる状態にしたいもんです。
来週にはホームポジション設定くらいは出来るようにしておきたいッス。



2007/11/27追記
こんな感じで作ってます。

シリアル通信プログラムまで実装完了。
後、マイコン側のファームを修正してやればパラパラマンガでの
モーション再生は出来るようになります。
平日中にAXを動かすテストをやって、今週末(12月1日/2日)には
サブプロセッサを完成させたいです。

翌週末(12月8日/9日)にはAX12を経由してPWMサーボを
動かせるようにしないと、大会参加が危うくなります。

2007年11月22日:サーボについていろいろ

■401x:
 規定演技を考えると4014が欲しいなぁ〜とか、物欲が
 ふつふつと沸いてきます。
 実は住環境の問題で中々買えずにいますが、Modela購入資金を
 積み立ててきた経緯がありまして、資金はあるのです。
 脚ピッチ軸8個だけとか・・・、まぢで物欲の安全弁がグラついてます。

 でも、401xのシリアル通信、ちょっとやっかいっぽいですね。
 115.2kという数字からして手持ちのマイコンでは出しずらい
 ボーレート立ったりする上、角度は上位と下位を7ビットずつに
 分けて指定しないといけないみたいだし。

 う〜ん、どうしようか・・・。
 AXとの親和性も考えると導入したところでPWMで使わざるをえないだろうし。

■AX-12:
 上半身をこいつで構成してます。
 制御するためのファームとPC側ソフトを製作中ですが、
 よく考えてみると、1Mbpsで通信できるこいつには、
 RegWriteっていらないかもしれませんね。
 サーボ24個分データを送信するのに3msかかりません。
 (これ、位置と速度の4バイトを常に送信するとしての計算です。)
 これまでPWMサーボを2.5ms×8×3相の制御周期で使っていた事を考えると、
 全部Writeでも大して誤差出ないんじゃない?
 って思います。

 ちう事で、手抜き工数削減のためWriteコマンドだけ実装します。
 サブプロセッサにDynamixelのコマンドを解釈させる手間も
 考えると書き込み系が1種類の方が楽だし。

2007年11月18日:仕切りなおし

さて、資格試験も(色んな意味で)終わったし、
次回ロボワンに向けて仕切り直しです。
とりあえず・・・

  1. 膝はやっぱりダブルサーボにする。そのためのフレーム作成。(脚ピッチ全部2350)
  2. サブボードを完成させる
  3. ボード、バッテリー、分配器を取り付けるフレームを作成する。
  4. パラパラ漫画方式でも良いのでとりあえず動く状態にする。
  5. 自作スクリプトをファームに実装する。
  6. 膝ダブルの逆キネを実装する。
  7. パラメータ歩行を実装する。
  8. モーション作成。

なんか、4番までで力尽きそうな気がしてならない。
そんときゃ、今回はパラメータ歩行を諦めてパラパラ漫画でモーション作成します。
でもそれだと資格審査がどうかなぁ・・・。
あれ、パラメータ歩行が出来れば、センサで傾斜読み取って、傾斜に応じて重心位置を
変更すればあっさりできそうな審査なんだけどな・・・。

2007年11月16日:ろ、ロンダート・・・(汗)

何かなってググってみたらショックを受けた。(−−;
まあ、きれいにやる必要はなかろうが・・・。

資格審査については、こういうのを待ってましたって感じです。

それから、またジャンプしないといけないんですね。
180度方向転換するだけの時間、滞空してないといけないので、
それなりの高さが必要でしょう。
結局、ハイトルクサーボが必要そうです。

HV化の頃合かな・・・。

日曜帰宅後から頑張ります。

2007年11月14日:

週末に資格試験受けんといかんので、
今週はロボット我慢して試験勉強中。

興味ないことって、全然頭に入ってきません。orz

ところで、トルク100kgf・cmのサーボって、
はっきり言って怖いです。
だれも事故起こさないよな・・・。

あと、KONDOさんがKCB-1って出すそうですね。
あれ幾ら位になりますかね?
1万円プラマイ2千円位なら多分買います。

2007年11月7日:UI

VC++6(古!)でPC側モーションエディタ作成中。
UIを固めてるとこですが、この作業、めんどいです。

それから、サーボからのキャプチャ機能を付けるか否か、
いまだに悩み中。

原点出しにしか使わない機能だけど、買ったサーボを
値段分しゃぶりつくすには使わないと勿体無いかな。

・・・などというドケチ根性による悩みですが。(^^;

2007年11月4日:ビルドが通った。

WinAVR+AVRStudioで開発中ですが、
ソースを分けるにはやり方があるみたいです。

WinAVR単体ではMFileというツールを使い、
MakeFileの中身を確認しながら作成ますが、
AVRStudioではMakeFileは自動的に作成されます。
ソースファイルを追加するには、AVRStudioの
NewFileからファイルを追加する旨AVRStudioに
知らせないと、うまく反映できないみたいですね。

つまり、お気に入りのテキストエディタで打ち込んで
いく前に、空のファイルの作成をAVRStudioで行う、
という手順を踏めば良いと。

2007年11月3日:?!

こ、この時期に・・・。

2007年11月1日:?

どうも、書いてるコードが長くなってきたので
ソースファイルを分割する作業をしてみました。

・・・

ビルドが通らなくなった。(−−;

ひょっとしてMakefileを書き換えないといけないのかな?
一度単純なプログラムで試してみよう。

それで、もしMakefileの書き換えが必須だというのであれば、
サブプロセッサをGDL対応のmega32に乗り換えることに決めたし、
今回もGDL大先生に頼ることにします。

ファイル分割容易に出来なきゃWinAVR+AVRStudioのメリットないし・・・。
シミュレータ&デバッガ使いこなせてない説が有力ですが。(^^;;

2007年10月31日:足りない・・・

やっぱ、Tiny2313だと足りません。
FlashじゃなくてSRAMが・・・。

つう事で、

本日早めに仕事を切り上げて王国で購入。

Tiny2313放置するのも勿体無いので、Proboの
読込みでもさせましょうかね?

それとも、今度腕にPWMサーボを使うときにでも
とっておきますかね?

2007年10月22日:鬱鬱鬱・・・

てか、技術職に戻りたいと思う今日この頃。
5年のブランクは大きかろうが・・・

・・・ATtinyのプログラム、やっぱジャイロは別の方が良いかな?
サブプロセッサをもうひとつ設けて、そちらにジャイロ&Probo
読込みさせるとか・・・。

いや、もう少し粘ろう。


2007年10月21日:運動会

15時に時間が出来たので観戦に行ってきました。
現地への到着は15時30分。
皆さんランブルされてましたね。

残念ながら動くガンプラのデモは見られませんでしたが、
準決勝以降の試合には間に合いました。

クロムキッド&ガルーの前進性能良いですね。

・・・

その他、会場では企業ブースが幾つか出ていたので
テキトーに回ってきました。JRのブースでシリアル版
8801がいつ頃幾ら位で発売されるのか聞いてみましたが、
まだ調整しないといけない事が多いそうで、未定だそうです。

6〜9Vで使えるサーボでトルクが大きくて、カタログ見ると
シリアル通信は1Mまで対応している模様。
とっても興味があります。金額が不安だけど。(^^;

それから、ゴシックレーサー!
WEBで見て面白そうだと思ってましたが、
現物も面白い動きしてました。

余ったサーボ使ってああいうの作ってみようかな。
小軸で軸配置色々工夫してって、普通にROBO−ONEの
ロボット作るのとは違った楽しみあると思います。

2007年10月20日:

明日、見に行けるかな?
makoさんのガンダムのデモ見たいんですが・・・。

今日もアキバに行く事は行ったけど、別件で
立ち寄っただけでサッカー見に行けなかったし・・・。

なんか、微妙に忙しないんですよねぇ・・・。

2007年10月18日:

ONOさんからご紹介していただいたコメントの中に、
「通常mainは無限ループさせておくものかと思っていました・・・」と
ありましたが、それが正しい認識なのだと思います。

ループさせなくても大丈夫なケースがあるのは、
おそらくコンパイラが"良きには計らって"自動的にループを
付加してくれているからなのかと。

これまで自分でマイコン向けに作ってきたC言語のプログラムを
見返すと、本当にたまたまだと思うのですが、PCとの通信等、
意図的に処理を無限に繰り返すものばかりで、今回のように一通り
処理を終えたらプログラム終了というものがありませんでした。

だからこのような現象に出会わず、意識するのが遅れましたが、
よく考えてみると、main()からのreturnがどこに帰っているのかが
分からない以上、OS上で動かしていないケースにおいては無策に
放置しない方が良いのでしょう。

僕が知らなかっただけでマイコンプログラミングの常識ですかね?
ひとつ賢くなった気がしますが、我ながら無知は怖いです。

・・・どう怖いかというと、
今回、uartの処理だけでしたから大事ありませんでしたが、
これがもしプログラム領域変数への書き換え処理で、同じ事を
していたら一瞬でFlashの書き換え可能限界を迎えて5千円近い
マイコンが使えなくなっていたかもしれません。

くわばらくわばら・・・。(^^;

・・・

次は、脚のKRS2350をAXのプロトコルで動かすためのサブボードを
作ろうかと思います。

これにはATtiny2313を用いますが、2KBのFlash、128BytesのRAMに
収まるか少々不安です。

ジャイロの読み込み&ミキシングも考えると不安がありますが、
工夫するだけしてみます。久しぶりにアセンブリで組む必要が
あるかもしれません。

手順としては、ボードを組む前に試しにプログラムを作ってみて、
.hexファイルがどの位のサイズになるのかを確認してから現物を
作ろうかと。

それで、どうしても駄目ならATmega32(BTC067)にスイッチかな・・・。

2007年10月16日:微妙に違う・・・

昨日の無限ループ云々の話ですが、実はGDLでコンパイルしてました。
GDLのサンプルを見てみると、smpl5, smpl6 等、入力待ちに戻るもの
以外はmain() の最後を無限ループにしています。

今日、同じプログラムをAVR-Studio + WinAVR(20070525)でコンパイルして、
無限ループの有り無しで比較しましたが、無限ループ無しでも通常終了しました。

どうやらGDL(1.9.1.6)の問題のようです。
WinAVRと微妙に違います。

微妙に違うのはコンパイラだけではなくて、フラッシュライタも
そのようで、何やらブートローダーのバージョンも違うようです。

バージョンアップするかって、聞かれましたが、ちょっと怖いので
調べてからということで、後回しにしました。
バージョンアップしなくても一度は書き込めましたが、2回以降は
書き込めませんでした。
何故?

書き込みはGDLのフラッシュライタを使って書き込みました。
終始GDLにはお世話になりっぱなしです。

2007年10月15日:

main()の最後に無限ループ入れたら問題解決。
なんか、ほっとくと繰り返しちゃうみたい。

なんでだろ?AVRのクセかな?

・・・

ところで、今月18日で田端に引っ越して1周年。
早いもんです。
土曜日にアド街が紹介されていたけど、以前住んでた
浅草よりも地元感を呼び覚まされて自分でも驚きです。

2007年10月13日:続・マニュアルはしっかり読まないと・・・

ようやくAXとの通信が出来ました。

・・・CSUMの計算、IDからですよね。(^^;
長いことパケット開始の"0xff,0xff"から足しちゃうもんだと
誤解してて全然繋がりませんでした。(^^;;;;

後、問題がひとつ。
同じサーボに対して連続してGoalPositionを送るようにすると、
ループさせてないのに首振り運動を繰り返して止まってくれません。
これもマニュアルに書いてありますかね?

調査調査・・・。

2007年10月1日:( ̄д ̄; 

オイラの目は節穴かぁーーーーーー!

 > 「rs.h」は通信を行う上で最低限必要な機能をまとめたライブラリ(libm128.a)
 > に定義された関数のヘッダファイルです。
 > 自分のソースにincludeし、ライブラリをリンクすれば下記の関数が使えるよ
 > うになります。

2007年9月30日:じぇんじぇん時間が取れねぇ〜〜〜!

・・・なりにコツコツとプログラムのテスト。
WinAVR+AVRStudioでGDLのUART送信プログラムを
コンパイル試してみたり。

・・・通らない。
・・・・・・・・・。(-_-;;

ヘッダ持ってくるだけとかじゃ多分駄目だろうな。
暫くはGDLにしようか。

開発環境の移行は、2313のプログラム組む事も考えると
絶対避けては通れないけど、今考えているアルゴリズムで
問題ないかのテストはさっさと白黒つけたいので、
それまでは・・・。

いかにGDLが使いやすいか他の環境使ってみるとよくわかります。

2007年9月28日:マニュアルはしっかり読まないと・・・

BTC068のマニュアル読んだら、フツーにWinAVRで書き込み
出来るって書いてあった。(-_-;

それから、AVRのICP、捕獲入力って書いてあるけど、
立ち上がりと立下り両エッジ取れるわけじゃないみたい。
まるでINT0〜7のような・・・。
一応捕獲入力と書いてあるので、エッジ切り替えをソフト的に
行えばちゃんとパルス拾えるのかな?

出来なかったらどうしよう・・・。
tiny2313じゃなくってBTC068の方でジャイロ読まないと
いけなくなっちゃいます。

逆キネ計算させるので、負荷となる割り込み要素は出来るだけ
減らしたいので、パルスじゃなくてアナログで処理できるよう、
KRG-1を改造するか、KRG-3を購入するかしないといけません。

・・・実験しないといけない項目が増えてしまいました。

作業項目とスケジュールを再度書き直さないと・・・。

2007年9月27日:

atan のテーブル実装をどうしようか悩み中。
他はみな 0 〜 1 ( 0 〜 π / 2)と簡単に範囲を絞れるけど、
atan は2バイトで収まらないような大きな数字を引数にしないと
π / 2 を返してくれない。
まあ、愚直に全部テーブルで実装なんて馬鹿げてるので、
分岐が必要になってくるけど、使用頻度が高いので出来るだけ
処理は軽くしたいです。

今考えている方法以下の2種類
方法1:脚ロール軸の可動範囲を思い切って±45度に絞る。
方法2:テーブルを二つ用意。
分岐を使って引数が1を超える場合は精度の低いサブテーブルで値を返す。



日頃オイラを悩ませている頭痛やら眩暈やら、もしかして
内科じゃなくて心療内科にかかった方が良いのかなぁ・・・。orz

2007年9月25日:送信用構造体

typedef struct {
short GP;
short SPD;
} Mvmnt;

typedef struct {
unsigned char CWCM;
unsigned char CCWCM;
unsigned char CWCS;
unsigned char CCWCS;
} AXCompliance0;

typedef struct {
unsigned char fd;
unsigned char sd;
unsigned char AXID;
unsigned char PacLength;
} PacBytes;

struct PacStructure {
PacBytes PB;
unsigned char INST;
unsigned char ADDR;
union Mdata {
Mvmnt MV;
AXCompliance0 AXC0;
} MD;
unsigned char CSUM;
} PacS;

このPacStructureという構造体をchar*に
キャストして送信するつもりです。

それから、実験して差し支えない事を確認しないと
なんともいえませんが、SyncWriteは使わないように
しようかと思ってます。
複数サーボはRegWrite & Action で動かそうかと。

サブマイコンにSyncWriteの読込みプログラムを
実装するのがちょっと面倒そうなのと、AX-S1の
ReadOnlyのアドレスにデータを書き込む事になるので
壊さないかと心配なのが理由です。
(8:2で大丈夫だと思いますが・・・。(^^;)



・・・ああ、そうそう。関係ないけどアレ、 無事放映されました。(^-^)


2007年9月24日:本日の進捗

なんか気乗りしないので本日はプログラムではなくて
Chanさんの簡易ISPライタを作りました。
tiny2313に書き込むのに使います。

BTC068のブートローダはstk500互換とのことですが、
やっぱり高価なマイコンでよく理解していない書き込み
ツールを試すのも怖いので、AVRStudioで作ったプログラムを
先に試すのはtiny2313の方にしようと思ったからです。
(いや、GDLの書き込みツール使えば良いといえば
 そうなんですが・・・。)

進捗率 16.0%

2007年9月23日:本日の進捗

AVRStudio & WinAVR 習熟訓練中...。
パスに2バイト文字が含まれているとだめみたい。
これに気づくのに半日かかった・・・アホです。orz

D 直下に作業フォルダ作って色々試行中。

明日には動かしたいッス。

進捗率は昨日と変わらず。

2007年9月22日:本日の進捗

また頭痛がしてきてプログラム組むだけの集中力が
得られず、しぶしぶサブボードのパーツ配置を決定。
しかし半田付けまでは出来ず。

進捗10.3%

それから、ATtiny2313のプログラム組むのに必要なので
AVR Studio を入手。4.13のSP1まで適用。

一休みして頭痛が治まったら通信用の構造体を検討します。

・・・
・・・ところでオヤシロサマ、東海&京都で休止って、
今後はどうなりますかね?

今回分はともかく作中に類似シーンばっちりなわけで、
自重したいって理由は理解できますが、一ファンとして
惜しいです。
うちは月曜チバですけど、どうなりますやら。

2007年9月19日:色々整理

そういえば、WEBコンテンツのバックログを整理していて
気が付いたけど、7月初旬時点でカウンタ1,000HITS達成とか
書いてありました。
そんで、今5,000HITS・・・。
ONOさんの所で紹介され始めたのが無茶苦茶影響していると思います。
本当にありがとうございます。m(_ _)m

んで、2回連続でAX12ネタで紹介していただいているんですが、
調べ物ばかりで全然進んでなくて大変恐縮しております。

今日、残作業の洗い出しとスケジュールを線表に書いてみましたが、
今のところ全35工程のうち、4工程、作業時間にして9.8%を消化。

順調良くいけば11月3日にモーション作成に入れる見込みになっております。

今回は色々とソースコードを公開していく予定です。
PWMサーボとシリアルコントロールのサーボの併用を検討している人の
参考になればと思います。

・・・そういう検討をする人は自分でも作れるでしょうか。(^^;

2007年9月18日:本日の作業

ATmega128の、というか拙い半田付けがミスってないか、
ボードの動作チェックのため、GDLのサンプルをテスト。

・・・ちゃんと動いた。!(^^)!
一応買ったばかりのマルチメータで通電確認はして置いたので
大丈夫なはずなんですが、どこか調べ忘れていないかと
心配になってしまいます。

次にAXの通信プログラム、やっぱりCM5からの流用じゃなくて
一から作ることにしたので、色々調べ物。
SIG_UART1_TRANSで割り込みかけてやれば送信完了がわかるんだな。
φ(..)メモメモ

H8はWORDデータがメモリ上リニアに格納されていたけど、
ATmegaはPCと同じように格納されてるようですね。
unsigned short の配列を転置しないで通信できるので
H8の時よりは楽に書けそうです。

それから、HPコンテンツが溜まってきたのでバックログに移動。

2007年9月17日:

は、連休の成果がこの半田付けONLY・・・。

これからAXとの通信プログラム作ろうと思ってGDLの
中を色々見てたら、なんか、KONDOの4000番向けの
ライブラリまであったんですね。
AT91SAM7S用みたいですが。

ちょっと脱線。
ファームより先にPC側エディタ作っとくかな。