Re: The history of "M&Y"

Team "M&Y" and "花鳥風月"
the soliloquy of the father
毎日更新!

NEW CoSpace Rescue Simulator 2021 V7

2021-06-15 | RoboCup2021

前の記事はこちら Rescue Simulation(CoSpace)のプログラムコンバート

 

RoboCupJunior の Rescue Simulation(いわゆる CoSpace)ですが・・・

(MRDS Versionではなく)CoSpaceRobot Studio Version は、まともに動きませんでした。

勿論、2021年版のはなしです。

上のリンクにある「前の記事」で書いたように、コンパスセンサーがまともに動きません。

それを何回か開発元に伝えたのですが・・・なかなか伝わらなくて・・・

でも、やっと、昨日伝わって

早速新しいバージョンがリリースされました。

Version 21.7.0.4です。

ダウンロードして、起動すると・・・

あれっ、またアクティベーションが必要なようです。

でも、まあ、一応は動くようなので・・・(毎回、アクティベーションしなさいと言われるのが面倒ですが・・・)

稼働確認をすると・・・

ちゃんとコンパスが使えるようになっていました。

 

 

まあ、一歩前進です。

でも、不思議なのは・・・これ、コンパスが使えないっていうのは、重大なバグですよね。

この重大なバグを私以外のだれも気が付かなかったのでしょうか!?

さすがに、コンパスを使わないプログラムは無いですよねぇ・・・

今、丁度、RCAPを中国でやっています。

沢山のチームが CoSpace に参加していると思うのですが・・・

 

その沢山のチームは、CoSpaceRobot Studio Version ではなく、皆がみんな MRDS Version だけを使っているってこと!?・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ご当地袋ラーメン!? 続き

2021-06-14 | ブログ

前の記事はこちら ご当地袋ラーメン!?

 

名古屋でお世話になった「寿がきや」の赤からラーメン

 

見た目も赤くて・・・辛そうですが・・・そうでもありません。

名古屋特有の八丁味噌が効いて・・・おいしい! です。

 

今度は尾道ラーメン

 

コクがあって「ぶちうまい」らしい・・・

いや、ふつうにおいしいです!

やさしい、しょうゆ味で、私は好きです。

 

最後は・・・

寿がきやの「富山ブラック」

 

名前のとおり、黒いスープで・・・香辛料が凄い感じです。

これはこれで、大変インパクトがあって良いのですが・・・私は、もうちょっと優しい感じのラーメンが好きです・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

津久井湖城山公園

2021-06-13 | ブログ

津久井湖城山公園に行ってきました。

 

これ、どっちから読むんだよ!(笑)

 

分水嶺のようなオブジェがありました。

手前側には・・・

甲斐国と相模国

じゃあ、もう一つはどこでしょう!?

 

 

答えは、武蔵国でした。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

RoboCupJunior Rescue New Simulation 障害物の回避

2021-06-12 | RoboCup2021

前の記事はこちら RoboCupJunior Rescue New Simulation GPSによる迷路探索

 

自分のPythonの勉強も兼ねて、ちまちまと  RoboCupJunior Rescue New Simulation のプログラム作りを楽しんでいます。

前回は・・・GPSを使った迷路探索ができるようになりました。

これは、距離センサーを使って壁との距離を測りながら進まなくても、(GPSを使えば)単純にロボットの絶対座標がわかるので、それを使って進む、というものでした。

普通の迷路探索であれば、これで終わりなのですが・・・

迷路上には障害が置かれています。

だから、いつも「経路の真ん中を進む」では、障害物にぶつかって先に進めないかもしれません。

 

ということで、やっぱり距離センサーを使って、障害物を(検知して)回避することが必要になります。

ロボットの左前、右前の距離を測りながら進んで、障害物があって通路が狭くなっているところは、その狭いところをすり抜けるように進みます。

動画はこちら

 

RoboCupJunior Rescue New Simulation(DEMO) sample robot-8

 

動画の 0:43 と 2:12 あたりで、綺麗に障害物をよけて進んでいます。

ところで、なぜ上の動画は最新バージョンのプラットフォームでないのか・・・ですが・・・(Erebus-v21_1_2)

 

最新版(Erebus-v21_2_0)で、同じプログラムを実行してみたのがこちら

 

RoboCupJunior Rescue New Simulation(DEMO) sample robot-9

 

こちらも、動画の 0.43 あたりで障害物をよけますが・・・なんだかぎこちないです。

さらに・・・ 2:05 あたりで、障害物の影響で多少経路が曲がるハズなのですが、全然曲がらず・・・その先で、うまく障害物をよけられずに、(障害物に)ぶつかって動かなくなってしまいます。

(仕方がないので、「Give Up」です。)

プログラムが悪いと言われれば、そうなのかもしれませんが・・・やっぱりプラットフォームのデグレなんじゃないかと・・・(笑)

 

続きの記事はこちら RoboCupJunior Rescue New Simulation ハザードマップの発見

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

プリウスαねた サンバイザー

2021-06-11 | プリウスαねた

私は、早朝にドライブに行くことが多いのですが・・・

日の出にぶつかると、本当に真ん前に太陽があって、まぶしいことがよくあります。

これ、なんとかならないかなぁ・・・と考えて、サンバイザーを購入してみました。

 

購入したのは、こちら

 

なぜ、これを購入したかというと・・・Amazonでの評価が良かったから・・・(笑)

昼用(黒)と夜用(黄)の2枚が付いていて、クルッと回して切り替えができるのが便利らしいです。

なるほど、機能的には良さそうです。

 

で・・・実際に取り付けてみると・・・何かクルマの天井が狭くなった・・・

 

機能的には、良いのですが・・・空間的にダメな感じがします。

これも、何回か使ってみて・・・ダメなら外そうかと思っています。

 

 

2021/6/28 追記

太陽がまぶしい日に使うと、とっても見やすい! 

太陽光が前の車のバンパーやリアガラスに反射してまぶしい時など、サンバイザーは有効です。

ということで・・・すぐに外すのはもったいないという結論になりました。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

RoboCupJunior Rescue New Simulation GPSによる迷路探索

2021-06-10 | ブログ

前の記事はこちら RoboCupJunior Rescue New Simulation 被災者の発見・・・続き

 

自分のPythonの勉強も兼ねて、ちまちまと  RoboCupJunior Rescue New Simulation のプログラム作りを楽しんでいます。

今回のお題はGPSです。

もともと、被災者発見のためにGPSが必要なのでに、組み込んでいました。

で・・・このGPSですが・・・(当たり前ですが)ロボットの現在位置(絶対座標が)分かってしまいます。

これは、強力です。

まさにチートです。(笑)

M&Yが参加していたRescue-B(今のRescue Maze)では、脱出ボーナスを得るために、マッピングをします。そして、現在ロボットがそのマップの中のどこにいるのかを、ずっと継続して管理します。迷路を進んでいくうちに・・・進む距離がズレたり、回転が足りなかったり、何かに引っかかったりして・・・(いわゆる)マップがズレてきます。チームは、いかにマップをズラさない努力をしてきました。2012年の世界大会では、まともにマッピングをして、脱出ボーナスを得られたのは、M&Yのみでした。そういう苦労した経験があるからこそ・・・この GPS は、簡単(安易)すぎる! と思います。

と、ひととおり、ほざいたところで・・・

このGPSを使って、1タイル分、進む機能を作りました。

普通は、タイヤの回転数(回転角)を検知するロータリーエンコーダーを使って、1タイル分を進んだかどうかを判断するのですが・・・GPSは、自分(ロボット)の現在の位置(座標)が分かります。ですから目的地の座標が分かれば、目的地に着いたかどうかが簡単にわかってしまいます。

左右の壁との距離なんか、測らなくても経路の真ん中を通ることができちゃいます。

Rescue Maze では、壁が少ないマップは難易度が高いのですが・・・この New SIM では、GPSが使えるので、壁が多かろうと少なかろうと、関係なく簡単に(そして正確に)迷路を進むことができちゃいます。

下の動画は、サンプル Aria1-03 です。

 

RoboCupJunior Rescue New Simulation(DEMO) sample robot-7

 

全然、危なげなく進み、すべての経路を探索して、もう確実にスタートタイルに戻れます! 

完璧ですね!(笑)

 

個人的には・・・GPSは使えなくした方が、競技が面白くなると思います。

(GPSがあると、誰でも簡単に戻れちゃいます。誰でも簡単に脱出ボーナスが得られてしまいます。)

実際のレスキュー現場に照らして考えても・・・広い運動場でレスキュー作業をするのではなく、大きな(倒壊した)建物の中でレスキュー作業をするのだからGPS信号は届かなかったり不正確な状況ですよね・・・

 

続きの記事はこちら RoboCupJunior Rescue New Simulation 障害物の回避

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

RoboCupJunior Rescue New Simulation 被災者の発見・・・続き

2021-06-09 | ブログ

前の記事はこちら RoboCupJunior Rescue New Simulation 被災者の発見・・・

 

自分のPythonの勉強も兼ねて、ちまちまと  RoboCupJunior Rescue New Simulation のプログラム作りを楽しんでいます。

先日、やっと被災者の発見ができるようになったのですが・・・

改めてルールを見て、「これ」ダメなんじゃない!?」と思いました。

 

 

ルールには、ご丁寧に図まで掲載されていますよね。

(自分で書いておいてナニですが・・・笑)

少なくとも、Rescue Maze では、ロボットが経路の真ん中を通るようにします。

ですから、私の New SIM のプログラムもロボットが経路の真ん中を通るようにしています。

でも、それだと、New SIM では、(少なくともルール上は)被災者の発見が確実ではありません。

なぜなら、ロボットの中心が被災者から半タイルの距離に入っていなければ被災者発見にならないからです。(逆に、ロボットの中心が被災者から半タイルの距離に入っていないと、誤発見で減点されてしまいます。)

つまり、経路の真ん中を通るということは、被災者からの距離がギリギリ半タイルの距離を通ることになり、被災者発見と誤発見の微妙な境界上にあるということです。

今思うと、何でこんなルールになっているのでしょうか?

(Rescue Maze では、被災者から半タイルの距離の半円に「ロボットが掛かっていれば発見」になる)

 

ルール通りであれば、経路の真ん中を進む私のロボットは、運が良いと被災者発見の得点になるのですが・・・運が悪いと誤発見になってしまいます。

 

でも、実際には・・・経路の真ん中を進むロボットでも、ちゃんと被災者発見の得点になっています。

どうも、(ルール上は半タイルの距離となっていますが)実際には、半タイルより長い距離で被災者発見を判断しているようです。

試しに、どのくらいの距離で発見になるか、手動で確認してみると・・・

( x , z ) = ( -36 , -12 ) が、半タイルの座標なのですが、x方向に2cm、z方向に1cm ズレたところで被災者発見になりました。

と言うことで、半タイル分の距離よりかなり外れても被災者発見になるようです・・・(ルールの図と合ってない! 笑)

まあ、すこし判定を緩くして競技者に有利になるようにしてくれているのでしょうね。

 

続きの記事はこちら RoboCupJunior Rescue New Simulation GPSによる迷路探索

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

カラスのハンバーガー

2021-06-08 | うんちく・小ネタ

M&Y母が買ってきた昼食

カラスのハンバーガー

 

 

香港で鳩は食べたことはありますが・・・カラスは食べたことは無いなぁ(笑)

 

まあ、おそらく、千歳烏山の「からす」の意なのでしょう。

あくまでネタということで・・・

 

肝心の味は・・・洋食屋さんのハンバーガーでした。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

狭山茶どころ

2021-06-07 | ブログ

休日のサイクリング・・・

本日は、入間に行ってきました。

見渡す限りのお茶畑です。

 

 

 

 

で・・・「狭山茶どころ」というと・・・

いやっ、もうっ、お茶畑が見えたころから、志村けんさんの東村山音頭が、ずっと頭の中で鳴り響いていました。(笑)

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

プリウスαねた 今回の燃費は28.3km/L

2021-06-06 | プリウスαねた

2月にガナドールのマフラーに交換してから・・・なんだか燃費がとっても良いように思います。

走行距離が600kmのときに、コンソールに表示されている燃費表示が 30.1km/L になりました。

久々の30.0km/L突破です。(あくまでも「表示」だけですが・・・)

 

で、本日、ガソリンスタンドに行って、給油してきました。

今回は、605kmを走破して、給油量が21.36Lだったので、燃費は 28.3km/L です。

素晴らしい!

 

今回は、素晴らしい数値だったのですが・・・

本日、ガソリンスタンドに行って、そのまま家に帰る、いわゆる「チョイノリ」だからか・・・

ガソリンスタンド⇒自宅 まで、ずっとエンジンが掛かったままでした。(バッテリーの充電量が殆ど空だったので)

ということで、次回の燃費に響きそうで、ちょっと心配です。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

RoboCupJunior Rescue New Simulation 被災者の発見・・・

2021-06-05 | RoboCup2021

前の記事はこちら RoboCupJunior Rescue New Simulation ロボットの絶対位置・・・

 

被災者に発見に挑戦しようと、まずはサンプルプログラム

victim_detection_test.py

を実行します。

すると・・・ModuleNotFoundError: No module named 'cv2' というメメッセージが表示されます。

これは、モジュールが読み込まれていない、ということなのでモジュールを読み込みます。

コマンドロンプトで ・・・

python -m pip install opencv-python

で、なんか読み込んでくれるらしい・・・

 

よし、これでエラーは出ないはず。

もう一度、victim_detection_test.py を実行します。

スタート地点には何も(被災者は居ない)無いので、無反応ですが・・・3色の矢印で手操作して、ロボットを被災者の前に持っていくと

Victim at x=50 y=24

こんな表示がでました。

ということで、(良く分からないけど)このサンプルプログラムの内容を組み込めば、被災者の発見ができそうです。(被災者の種類は特定はできないでしょうけど、とりあえず発見はできそう。)

 

プログラムの中身の意味は良く分かりませんが・・・(それじゃダメでしょう 笑)

victim_detection_test.py の内容を自分のプログラムに組み込んでみました。

カメラは、ロボットの右側(右前)のもの(だけ)を使います。

常に右側の壁を監視していて、被災者があると分かるので・・・被災者が通過したところで、「1.5秒停止」「Hの被災者発見の通知」をします。

本当は、被災者の種類( H , S , U )を判断すると、「被災者発見の得点」だけでなく「被災者の種類の得点」も得られるのですが・・・種類の判断は、今の私には無理のようです。(だから、被災者を発見したら、とにかく「H発見!」)

 

RoboCupJunior Rescue New Simulation(DEMO) sample robot-5

 

これまでは、迷路を一周してスタート地点に戻っても、途中のチェックポイントの得点(10点)しかもらえなかったのですが、多少の得点がはいるようになりました。(10点 ⇒  66点 よくやった おれ! 笑)

 

 

ついでに・・・プラットフォームの新しいバージョンが出ていたので、入れてみました。

Erebus-v21_2_0

何が変わったのかは知りませんが・・・ロボットのデザインが変わっています。

で・・・上と同じプログラムを実行してみると、なんか怪しい動きです。

 

RoboCupJunior Rescue New Simulation(DEMO) sample robot-6

 

動画の

0:53 壁の前まで進んで左回転をするハズなのに、その前で停止して動かない・・・10秒位してからやっと左回転します。

2:23 こちらも壁まで進んだ後に、長い間止まったままです。

他にも壁の前で同様なことが何度も発生しています。

このときにロボットが何をしているか、ですが・・・壁との距離を測って、近過ぎたら離れます、遠すぎたら近づきます、丁度よい距離になったら次の動作に進みます。という部分なのですが・・・新しいプラットフォームでは、ここの動作が「うまくいく時」と「うまくいかない時」があります。

 

これ、デグレじゃないの!? (笑)

 

続きの記事はこちら RoboCupJunior Rescue New Simulation 被災者の発見・・・続き

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

RoboCupJunior Rescue New Simulation ロボットの絶対位置・・・

2021-06-04 | RoboCup2021

前の記事はこちら RoboCupJunior Rescue New Simulation マッピングできた!

 

ロボットの絶対位置を簡単に知ることができてしまう、素晴らしいセンサー・・・それがGPSです。

これまで、そんなチートのセンサー使ってやらない・・・と意地になっていたのですが・・・

被災者発見は、GPSの値を使うので、次のステップアップにはGPSが必要なようです。

で・・・サンプルを見ると、簡単です。

gps = robot.getDevice("gps")

gps.enable(timestep)

  x = gps.getValues()[0]
  z = gps.getValues()[2]

たったこれだけで、ロボットの絶対位置がわかってしまいます。

やっぱりチートセンサーですよ(笑)

上のサンプルで、( x , y ) ではなく( x , z ) となっています。このシミュレータでは、y軸は上方向なので、平面座標は( x , z )のようです。

 

この絶対位置が分かってしまうと、左右の壁との距離を測って、通路の真ん中を通る・・・というロジックがで努力をしたのが馬鹿らしくなりますねぇ。

 

実際に動作させて、GPSの値を読んでみると(表示させてみると・・・)スタート地点が( 0 , 0 )ではありません。座標の中心は、マップの中心(あたり)にあるようです。

ここらへんが、まだ良くわかっていません。

 

続きの記事はこちら RoboCupJunior Rescue New Simulation 被災者の発見・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

プリウスαねた Anti-Slip Mat Dashboard Cover Pad Accessories

2021-06-03 | プリウスαねた

またまた AliExpress で怪しいものを購入しました。

プリウスαのダッシュボードの上のカバーです。

夏になると、太陽の熱でダッシュボードが熱くなりますよね。

駐車中は、サンシェードを広げていますが、運転中はそうもいきません。

で・・・このダッシュボードカバーを手に入れてみました。

 

 

裏に、こんな意味不明のシールが貼ってありましたが・・・なんて書いてあるのかすらわかりません。(笑)

 

 

さて、あるふぁ君のダッシュボードに置いてみると・・・

「ピッタリ」ではないですが、「全然合わない」訳でもなさそうです。

 

ただ、一番奥の通風孔(フロントガラスの曇り止め用の穴)が、ちょっとマッチしていないように思います。

まあ、使ってみて・・・ダメならここだけ手動で穴を開けようかと思っています・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

RoboCupJunior Rescue New Simulation マッピングできた!

2021-06-02 | RoboCup2021

前の記事はこちら RoboCupJunior Rescue New Simulation のプログラム

 

さて、いよいよマッピングに挑戦です。

で・・・Pythonを良く知らないので、文法をググりながらコーディングをしていきます。

今回は、自分のPythonの勉強を兼ねているので・・・できるかぎり単純なプログラムでマッピングをしています。

こういうマッピングは2次元配列に地図情報を書き込んでいくのですが・・・

今回は1次元配列を2つ使ってマッピングをしています。

出来たのがこれです!

マップは、NewSIMのページにあるサンプルコース(Area1-02)です。

 

RoboCupJunior Rescue New Simulation(DEMO) sample robot-4

 

相変わらず、元々ロボットに装備されているセンサーしか使っていません。

周囲6方向の距離センサーと、床の色を見分けるカラーセンンサー、あとは車輪の回転角を検知するロータリーエンコーダです。

ジャイロやGPSを使えば、より正確になると思いますが・・・基本のセンサーだけを使うことにこだわりました。

 

で・・・今回 Python の配列を使って・・・これはすごい(便利!)とおもったのが・・・

・配列の大きさを宣言せずに、配列の大きさがダイナミックに変化すること

 例えば m=[1,2,3] に m.append(4) で m=[1,2,3,4]になる

・配列の最後の要素を簡単に取り出せること

 例えば m=[1,2,3,4]のときに m[-1] で最後の4が取り出せる

・配列の要素の中にある数値があるかを簡単に調べられること

 例えば m=[1,2,3,4]のときに result = 3 in m とすると、mの配列の中に「3」があるかどうか調べることができる。この場合は、 result は Ture になる。

これらを駆使して、マッピングのプログラムができました。

 

と・・・マッピングのプログラムは、意外とあっさりできたのですが・・・苦労したのはここからでした。

壁からの距離や、1タイル分の進む距離、90度回転の微妙な調整など・・・迷路を普通に進むための調整が大変でした。

努力の結果・・・上の動画のように、正確にマップを一周できるようになりました。

(誰もほめてくれないので、自分でほめときます。よくやった! 俺! 笑)

 

続きの記事はこちら RoboCupJunior Rescue New Simulation ロボットの絶対位置・・・

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

RoboCupJunior Rescue New Simulation のプログラム

2021-06-01 | RoboCup2021

前の記事はこちら RoboCupJunior Rescue New Simulation の Screen recording

 

前回、右手法で進むロボット(のプログラム)を作成したのですが・・・

そろそろ、マッピングに挑戦しようかと・・・

まず最初に、自分の位置を認識できるようにしてみます。

どうも、ロボットの絶対位置を把握できる GPS というセンサー(!?)があるらしいのですが・・・

普通にロジックだけで管理します。

 

スタート時に向いている方向を北にします。

右90度回転なら東に、左90度回転なら西にします。

同じように・・・最初の座標を( x , y )=(20,10)とします。

北に1タイル進めば、ロボットの位置は(20,11)になるし、さらに東に2タイル進めば( 22,11 )になります。

という、単純なロジックで・・・

スタート地点に戻って、ロボットの向きが北になれば、競技終了です。

 

動画は、こちら・・・

RoboCupJunior Rescue New Simulation(DEMO) sample robot-3

 

相変わらず、被災者を発見する機能が無いので、単に経路を進んで、スタート地点に戻って終了するだけです。

ちなみに・・・私は Python を知らないので・・・たまにプログラムを作るときに、ググりながらプログラミングをしてます。

今回分かったこと・・・

・関数の外で宣言した変数を関数の中でも使いたいときには、globalを付ける

・割り算の余りは mod で計算する。

・配列の添え字は0から始まる

・・・

と、やってみて、初めて基本的なことが分かりますね(笑)

 

続きの記事はこちら RoboCupJunior Rescue New Simulation マッピングできた!

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする