忍者ブログ
ロボット製作のblog  日々の生活も書くかも・・・
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
最新CM
[05/01 nyamo]
[12/14 アいス]
[11/06 あおのり]
[11/05 IKETOMU]
[11/05 超二足]
最新TB
カウンター
プロフィール
HN:
あおのり
性別:
非公開
バーコード
ブログ内検索
フリーエリア
アクセス解析
[PR]
2024/04/29(Mon) 01:44:23
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

動画を取り込んだので、予選での失態を公開




以前ルンゲ・クッタ法での微分方程式を数値解析的に解く方法を試みましたが、計算にかかる時間により一時断念していました。
今回、固定小数点での計算になるよう手直ししてみました。
コレでH8でも制御周期内で次の重心位置の座標を求められるかな?
問題は精度だけどね。

こんな感じのコードです。
1000倍してるだけなんですけどね。

#include <stdio.h>
#include <math.h>

void drunge(long *x, long *y, long *z, long h , long (*f)(long, long, long),long (*g)(long,long,long))
{
 long k1,k2,k3,k4,l1,l2,l3,l4;
 k1 = f(*x, *y, *z);
 l1 = g(*x, *y, *z);
 k2 = f(*x + (h / 2), *y + h * k1 / 2/1000, *z + h * l1 /2/1000);
 l2 = g(*x + h / 2, *y + h * k1 / 2/1000, *z + h * l1 /2/1000);
 k3 = f(*x + h / 2, *y + h * k2 / 2/1000, *z + h * l2 /2/1000);
 l3 = g(*x + h / 2, *y + h * k2 / 2/1000, *z + h * l2 /2/1000);
 k4 = f(*x + h, *y + h * k3/1000, *z + h * l3/1000);
 l4 = g(*x + h, *y + h * k3/1000, *z + h * l3/1000);
 *x += h;
 *y += h * (k1 + 2 * k2 + 2 * k3 + k4)/6/1000;
 *z += h * (l1 + 2 * l2 + 2 * l3 + l4)/6/1000;
 return;
}

long f(long x,long y,long z)
{
 return 0*x + 0*y + z;
}

long g(long x, long y, long z)
{
 return 0*x - 3000*y/1000 - 500*z/1000;
}

int main(void){
 long x = 0, y= 500, z = 1000, xmax = 10000, h;
 int i, n = 100;
 
 h = (xmax - x) / n;
 for(i = 1; i<=n ; i++){
  printf("%4d %d %d %d \n",i,x,y,z);
  drunge(&x,&y,&z,h,f,g);
 }
 return 0;
}



あと、今までルートってどうやって求めればいいんだろう?と思っていたんですが、ちょっと調べて見るとえらく簡単に求められるみたいですね。ちょっと目からウロコ。
これも固定小数点で計算できるようにしました。
これも10000倍しているだけなんですけどね。(10000倍だから、返ってくる値は100倍になります)

int sqrt(long a){
 long b;
 int i;
 
 a = 10000*a;
 b=a;
 for(i=0;i<20;i++){
 b = (b + (a/b))/2;
 }
 return(int(b));
}



PR
ROBO-ONE 14thを終えて
2008/10/13(Mon) 20:13:58
ROBO-ONE 14thに行って来ました。
残念ながら予選落ちです。

ロボットが歩き始めたのが大会二日前、前日の夜から資格審査のスロープ越えの調整をはじめて、そこそこ安定してスロープを超えられるようになったのが当日の朝という有様だったので、当然の結果ですね。

資格審査自体は当日の午前中にちゃっちゃと終わらせて、出番が来るまでデモンストレーションのモーション作製をひたすらしていたのですが・・・・・・本番ではロボットがコケコケで・・・モウミテランナイって状態でした。
後で気がついたのですが、初期位置がずれまくってました。
たしか何かの拍子で初期位置の値を変更した覚えがあったのですが、それ以外にも三回転ジャンプをさせまくったりしてた影響もあったのでしょう。たぶん。
その辺りの確認もせずにいきなり本番に突入してしまったので、もうダメダメです。
本当はもっと安定するはずだったんだけどなぁ・・・。

・・・まぁ、最後にお客さんから拍手だけはもらえたのが救いですが。


そもそもロボットの部品を作製し始めたのが9月16日からというのが間違っていますね。
とってもお久しぶりです
2008/10/01(Wed) 00:48:17

体調を崩して長い間学校に行けない日々が続いていました。
各方面にご迷惑をおかけして申し訳ありません。
学校へこれる程度には体調が回復したので、これからはできる範囲で頑張っていきます。





で、ここ2週間ほど頑張った成果

a01b16e3.jpeg







腕の分のサーボがまだ届いていないので、とりあえずここまで仮組みを行いました。


b1d00a9b.jpeg







胸にはKHR-2のフロントカバーをまんま使用。
中にPS2無線コントローラの受信機を入れます。(まだ固定するようになってないけど)

4305678a.jpeg







回路の構成は今までと変わりません。
本当はいろいろと変えたかったけど、時間が無いので今までのプログラム等をまんま使うため変えませんでした。
ハンダ付けは9割りくらい終了。あとはセンサとスイッチ周りのハンダ付けだけ。
それと、今回はちゃんと主電源のスイッチを取り付けました。



今度の機体はPS2コントローラーで動かしますよ。
すでに、コマンドの入力をH8側で認識できることを確認したので問題は無し。
さらばプロポ、こんにちはゲームパッド。

現在は、仮組みしたのをバラして本組みしている最中です。
腕が無いけどね。

明日(すでに今日)の部会までには全身に火を入れて、少しだけ動かせるようにします。
腕が無いけどね。

文化の祭典
2008/06/10(Tue) 07:34:06
文化の祭典が終わりました。
例年よりも多くの方がブースに訪れてくれて、大盛況でした・・・かな?


しかし、準備日から当日の終わりまでいろいろと問題があり、部長の指導力に疑問を抱くところ・・・・・・。
今回は装飾面が寂しかったのと、ロボットの展示も少なかった(二足と相撲)のがかなり残念。他にもいろいろとあるけど・・・・・・。
あと、SOKO-ONEやるならもっとよく考えないと駄目ですね。
一週間前まで開催するかどうか未定だったので、宣伝のビラとか用意していなかったけど、無駄になる覚悟でもビラを用意すべきだったかな・・・。
あと、客の呼び込みももっと計画的に考えておくべきだった。
プロジェクターも使ったほうがよかったな・・・・・・ブースの配置が変わって面倒なことになるけど。

いろいろと反省点の残る文祭でした。
芝浦ロボットフェスティバル
2008/05/27(Tue) 16:51:17
行って来ました。
トーナメントは2回戦敗退。
チーム戦は(いちおう)優勝しましたw

周りは自分よりも重い機体ばかりですね。
攻撃モーションとかはまったく作りこんでいないので、自分よりも重い機体はなかなか倒せません。
もっと移動時のスピードを活かした攻撃モーションを作らないと駄目か・・・。
現在の歩行軌道の計算の途中に、どうやって攻撃モーションに切り替えるかが問題ですけど・・・・・・。

あと、現在のAonori2の最大の問題点は、横移動がまともに出来ないことです。
原因は、サーボの出力不足で指定した軌道に追随しきれていないせいだと思われます。
根本的に解決するには、高出力のサーボを使うか大幅な軽量化をするしかないんですが、どれも現状では不可能。
よって、やりたくなかったんですが横移動のときだけフィーリングモーションで歩かすことにしました。
皆やってるキモイ横歩きです・・・w

優勝した(?)チーム戦なんですが、同じチームにクロムキッドが入っていただけたおかげです。
クロムキッドがばったばったと相手をなぎ倒しては得点を入れまくってくれたおかげですw
Aonori2はリングの隅っこで、同じくらいのレベルの相手と戯れていただけで、気がついたら優勝していました。
決して私の実力ではない。
忍者ブログ [PR]

Designed by A.com