新規にnxtOSEKをインストールした。
インストールマニュアル通りにインストールしたつもりだったが、コンパイルできない???
cygintl-3.dll がないらしい
cygwin のセットアップ時に libs の libintl3 : GNU internationalization runtime library をインストールしなければならなかったらしい
sg.exe もコピーするのを忘れていた。これはインストールマニュアルにはないが、途中に書いてあった
これで、なんとかコンパイルができるようになった \(^ ^)/
2010年12月3日金曜日
2009年10月31日土曜日
ETロボコン
東海地区大会を見に行ってきた。RCXでの参加チームは少なかったが、東海地区からチャンピオンシップに進めれるのは、1チームと狭き門だった。
NXTは上位3チームがチャンピオンシップに進めれるが、去年の1位、2位のチームが順調に進出した。
走行部門では守りの走りだったが、モデル部門では完璧に決めてきた。
他の大会を見てないが結果からだけ判断すると、東海地区のレベルは高すぎると思う。
RCXの操舵について
操舵をPID制御で実現するためには、演算周期と操舵周期からあまり現実的ではないと思う。
モータのトルクを0~255まで入力できるが、1msec周期でモータトルクを積算して、255を越えた時は、モータを駆動する。255を越えなければモータを駆動しない。これを繰り返しているため、モータトルクを高速で微妙に変更しても、指令は追従しない。
操舵を切り替えた時は、積算値が255を越える様にすると操舵の切り替えが少しだが早くなる
NXTは上位3チームがチャンピオンシップに進めれるが、去年の1位、2位のチームが順調に進出した。
走行部門では守りの走りだったが、モデル部門では完璧に決めてきた。
他の大会を見てないが結果からだけ判断すると、東海地区のレベルは高すぎると思う。
RCXの操舵について
操舵をPID制御で実現するためには、演算周期と操舵周期からあまり現実的ではないと思う。
モータのトルクを0~255まで入力できるが、1msec周期でモータトルクを積算して、255を越えた時は、モータを駆動する。255を越えなければモータを駆動しない。これを繰り返しているため、モータトルクを高速で微妙に変更しても、指令は追従しない。
操舵を切り替えた時は、積算値が255を越える様にすると操舵の切り替えが少しだが早くなる
2009年7月26日日曜日
2009年7月24日金曜日
RCXのバージョン
RCX(マイコンの入った黄色い大きなブロック)にVer 1.0と書かれていると思うが、知っている限りでは3種類存在している。
1.Ver 1.0 で充電コネクタがついている
教育用セットを購入するとこれがついてくると思う
2.Ver 1.0 で充電コネクタがついていない
MindStormをお店で、一般のキットを買うとこれになると思う
3.Ver 2.0 で充電コネクタがついていない
MindStormをお店で、一般のキットを買うとこれになると思う
2.と3.は、お店で買うとどちらかになるが、販売された当初に購入したMindStormには Ver 1.0 がついてきたが、販売終了間際に購入したMindStormには、Ver 2.0 がついてきた。
MindStormは、RCX版のことです。(お店にはもう無いと思います)
同じソフトで2つを比べるとVer 2.0 では走行モータの指令値を下げなければ走ることが出来ない。Ver 1.0 を使っていて、走行モータへの指令値を最大にしても走れるソフトが出来ているのであれば、Ver 2.0 を使えば更なるスピードアップが出来る。想像だが、モータの駆動回路の内部抵抗が下がった思う。
チャンピオンシップ大会では、この Ver 2.0 を使っているチームが数チームいた。このことに気づいていたかは不明だが、モデルには書かれていなかったと思う。極秘なのか?
1.Ver 1.0 で充電コネクタがついている
教育用セットを購入するとこれがついてくると思う
2.Ver 1.0 で充電コネクタがついていない
MindStormをお店で、一般のキットを買うとこれになると思う
3.Ver 2.0 で充電コネクタがついていない
MindStormをお店で、一般のキットを買うとこれになると思う
2.と3.は、お店で買うとどちらかになるが、販売された当初に購入したMindStormには Ver 1.0 がついてきたが、販売終了間際に購入したMindStormには、Ver 2.0 がついてきた。
MindStormは、RCX版のことです。(お店にはもう無いと思います)
同じソフトで2つを比べるとVer 2.0 では走行モータの指令値を下げなければ走ることが出来ない。Ver 1.0 を使っていて、走行モータへの指令値を最大にしても走れるソフトが出来ているのであれば、Ver 2.0 を使えば更なるスピードアップが出来る。想像だが、モータの駆動回路の内部抵抗が下がった思う。
チャンピオンシップ大会では、この Ver 2.0 を使っているチームが数チームいた。このことに気づいていたかは不明だが、モデルには書かれていなかったと思う。極秘なのか?
2009年2月9日月曜日
ETロボコン
バッテリ電圧を取得するには、get_battery_mv() が用意されている。これは、現在のバッテリー電圧をmVで取得できる。
int get_battery_mv()
{
long b = ds_scale(BATTERY) * 0xABD4L;
return (int)(b / 0x618L);
}
OSでこのような計算がされている、8bitマイコンで32bit演算しているので処理負荷は高くなると思う。ds_scale(BATTERY) だけでバッテリ電圧値を取得すれば良く、LSB=28.1974(mV)として値を扱えばよい。
しかし、この値はモータの駆動開始時、駆動中、停止中でバッテリー電圧が変動する。
走行前と走行中で変化する、走行中も走行モータの指令に255をセットしてなければ、モータの駆動と非駆動ができる、ステアモータの指令も同じことがいえる。
走行調整用のバッテリー電圧は変動していない電圧が必要になる、フィルタかけて用いると使いやすい
int get_battery_mv()
{
long b = ds_scale(BATTERY) * 0xABD4L;
return (int)(b / 0x618L);
}
OSでこのような計算がされている、8bitマイコンで32bit演算しているので処理負荷は高くなると思う。ds_scale(BATTERY) だけでバッテリ電圧値を取得すれば良く、LSB=28.1974(mV)として値を扱えばよい。
しかし、この値はモータの駆動開始時、駆動中、停止中でバッテリー電圧が変動する。
走行前と走行中で変化する、走行中も走行モータの指令に255をセットしてなければ、モータの駆動と非駆動ができる、ステアモータの指令も同じことがいえる。
走行調整用のバッテリー電圧は変動していない電圧が必要になる、フィルタかけて用いると使いやすい
2009年2月7日土曜日
登録:
投稿 (Atom)