南 晴輝のブログ -3ページ目

南 晴輝のブログ

マイクロプロセッサを応用した、自立動作型ロボットの開発を

目指します。

とくに ロボカップジャパンジュニア の

サッカー

レスキュー

に使用できるロボットを、目標とします。

こんにちは、南 晴輝 です。


動画を集めました。 特にレスキューは、彦根ノードのチームには、


なじみがないと思います。 しかしながら、レスキュー部門は


偶然に勝ったということは、ほとんど起こらないと思うので、


プログラミング技術の向上に貢献します。



ロボカップジュニア ブロック2013 世界大会 SuperTeam 三位決定戦


http://www.youtube.com/watch?v=B0T3Q42wpkY



ロボカップジュニア 2011 レスキュー (セカンダリ) 練習風景


http://www.youtube.com/watch?v=_22mDSfTN1Y


チームのコメント
京滋奈大会に向けて練習してきました。結果は4位で上位入賞をしました。



Amalgam ロボカップジュニア 2012 レスキュー 日本大会 尼崎


一回戦

http://www.youtube.com/watch?v=pIewXMZWfTQ


二回戦

http://www.youtube.com/watch?v=mbRzXQXbn-0


チームのコメント

3月30・31日に行われた、ロボカップジュニアの日本大会。
レスキューのA、プライマリに出場しました。
30日に1・2回戦。31日に、3回戦を行い、優勝することができました。

ブログ:http://amalgam.ldblog.jp/


最後まで読んでくださり、ありがとうございます。


ペタしてね 読者登録してね


こんにちは、南 晴輝 です。



レスキューで、毎年優秀な成績を残しているチームです。


ステッピー アンド ロックオン さんの HP です。


http://kamenokokko.blog.fc2.com/blog-entry-42.html




ステッピー アンド ロックオン さんの 動画です。


2012 Stepy & RockON


http://www.youtube.com/watch?v=OU2UOpdBhKE



2011 Stepy & RockON


http://www.youtube.com/watch?v=iJXhSmy4jdQ



今年は、レスキューにチャレンジしたいと思います。


レスキューは、サッカーと違って、ロボットが壊れにくいので、


私に向いています。技術的には相当難しいので、やりがいがあります。



現在、このロボットの制御に使える、CPUボードを設計中で、


ノイズレス モータドライブボードも、ほぼ設計終了しています。


このボードは、私がプロとして製品設計した時の技術を導入していますので


安定して動作すると考えています。


期待していてください。



最後まで読んでくださり、ありがとうございました。









皆さん、こんにちは、 南 晴輝 です。


ロボカップジュニア2013 の動画を集めました。



ボールが、白線の外にでる、アウト オブ リーチ 
の判定のタイミングが良く分かります。


ロボットが、白線の外にでる、アウト オブ バウンズ は、

なかなか判定が難しいですね。


審判の判定が、良く分かりますので、ぜひオープンリーグの


動画を見てください。


YouTube で面白い動画を見つけました。

全日本で活躍した、関西のロボットです。



ロボカップジュニア2013 京滋奈ブロック大会
サッカーAライトウェイト 決勝戦前半

帝塚山DELTA VS NH-RB


http://www.youtube.com/watch?v=GA-81bxhQQY

帝塚山DELTAの、素早い動きに注目してください。



ロボカップジュニア2013 関西ブロック大会

サッカーAライトウェイト 決勝戦前半
忍者 VS MONOChrome


http://www.youtube.com/watch?v=HpSN8lUmqLU



YouTube で見つけました。

ロボカップジュニア JapanOpen 2013 準決勝 前半と後半です。



ロボカップジュニア JapanOpen 2013 準決勝 前半


http://www.youtube.com/watch?v=Bfa3cvEESWc


ロボカップジュニア JapanOpen 2013 準決勝 後半


http://www.youtube.com/watch?v=MwB475qyAf0


ボールが、白線の外にでる、アウト オブ リーチ 
の判定のタイミングが良く分かります。


ロボットが、白線の外にでる、アウト オブ バウンズ 
は、なかなか判定が難しいですね。



レスキューです。

レベルが高く、確実に完走しています。


http://www.youtube.com/watch?v=LGc8SncETYE


http://www.youtube.com/watch?v=OU2UOpdBhKE


皆さん、最後まで見てくださり、ありがとうございます。


次回からは、海外の優秀なロボットの動画を紹介したいとおもいます。




ペタしてね      読者登録してね


皆さん、こんにちは、南 晴輝 です。


8月17日は、ヒコニャンカップ でした。


北原先生、理科会のスタッフ、彦根市教育委員会の皆様に、大変感謝いたします。


彦根ノードの技術委員長として、子供たちの最近の進歩には、眼をみはるものがあります。


これからは、世界レベルの競技会へ、出場しても困らないよう、すべて英語の試合を


提案したいと、思っています。


ご父兄の皆様、子供たちの活動に惜しみない応援を、お願いします。



勝ち負けも大事ですが、上手にコミニュケーションをとることも、同じくらい重要です。


本当に暑いですが、熱中症に気をつけて、


ロボットに、熱中してください。




今回は、以前に解説した、sizeof() 演算子 の実例を示します。


このプログラムをコンパイルし、実行すると



a:4

b:1

c:4


long:4

char:1

double:8


int:4

float:4


となりました。 ( 実行環境により、少し違うかもしれません。)



#include "stdio.h"

void main(void){


long a;
char b;
float c;


printf(" a:%d \n b:%d \n c:%d \n\n", sizeof(a), sizeof(b), sizeof(c));

printf(" long:%d \n char:%d \n double:%d \n\n", sizeof(long),

     sizeof(char),sizeof(double));

printf(" int:%d \n float:%d\n", sizeof(int), sizeof(float));


}


よくあることですが、計算結果が、予想していた値と違う場合は、まずこのように 


sizeof() 演算子使って、各変数のビット数を調べることが重要です。


自分が予想していた、ビット数と違うと、計算結果が合いません。



最後まで読んでくださり、ありがとうございます。




皆さんこんにちは、南 晴輝 です。


今回から、未公開のC言語講座 です。



ポインタとは


プログラムが実行されているとき、プログラムや変数などはメモリー上に格納されています。

すべてのメモリーにはアドレスが付けれています。


変数にアクセスするときプログラムはこのアドレスを指定してアクセスします。


アドレスは単なる数字なのでプログラマーにとってはわかりにくい存在です。

そこで変数名というプログラマーにわかりやすい名前で変数にアクセスすることができます。

ポインターは変数名ではなく、アドレスで変数にアクセスするためのものです。



今まで簡単に 変数を定義してきました。


変数の定義とは、メモリーに変数を入れるための領域を確保し、そのアドレスを保存しておく


という操作です。



試しにint型の変数を宣言し、それがどの領域(アドレス)に確保されたかを表示する


プログラムを示します。

#include <stdio.h>

void main(){
int n;
printf("変数nは%x番地に確保されました\n", &n);
}

上の例のようにアドレスを知るためには、変数の前に「&」をつけます。

アドレスで変数にアクセスするためには、アドレスを格納する変数が必要になります。

これは何型の変数なのでしょうか?



この変数がポインタと呼ばれるものです。ポインタはアドレスを入れるための専用の変数です。

これは今使っているコンピュータによってサイズが異なります。

現在のコンピュータの大半は 32bitのサイズ を持っています。


また、ポインタは色々な種類があり、int型のポインタ、char型のポインタなどがあります。



ポインタ変数の宣言は下のように、型の後に「*」をつけます。今までの変数のように、

宣言しただけではどんな値が入っているかわかりません。



int *p;

そのポインタが指すメモリーにアクセスするときには、ポインタ変数の前に「*」をつけます。

以下の例を参考にしてください。


#include <stdio.h>

void main(){
int a = 5;
int* p;

p = &a; // ポインタ変数pに変数aのアドレスを入れる

printf("変数aの値は%dです。\n", a);
printf("ポインタ変数pの値は0x%xです。\n", p);
printf("ポインタ変数pの指すメモリーの中身は%dです。\n\n", *p);

*p = 10; // ポインタ変数の指すメモリーを書き換える
printf("変数aの値は%dです。\n", a);
printf("ポインタ変数pの値は0x%xです。\n", p);
printf("ポインタ変数pの指すメモリーの中身は%dです。\n", *p);
}

変数aの値は5です。
ポインタ変数pの値は0x65fdf4です。
ポインタ変数pの指すメモリーの中身は5です。

変数aの値は10です。
ポインタ変数pの値は0x65fdf4です。
ポインタ変数pの指すメモリーの中身は10です。


ここで示すポインタ変数pの値は0x65fdf4ですが、これは、コンピュータの処理系によって

変わります。



くどいようですが、ポインタを使うときは、 メモリーのアドレス と そのアドレスの内容 を


セットとしてとらえたください。


最後まで読んでくださり、ありがとうございます。


次回は、配列について解説します。ポインタと配列は、いっしょに理解するのが効率がいいです。


今回より、かなり内容が複雑になりますが、一度理解できれば、とても有効ですので、

がんぱってください。



読者登録してね

ペタしてね