Amalgam Blog

ついに5日を切ってしまいました。
もちろん世界大会へのです。

行っている間もちゃんとしたネット環境さえあればブログも更新するつもりですし、画質を落としてでも動画をアップしたいなと思っています。

明日に最後の自習があるので、そこでロボットをひたすら動かして気になるところを微調整…なんて考えています。
今のところ大きな問題はないので少し安心していますが、事件は起きる物なので臨機応変な対策をしたいです。

少し早いですが、今まで世界大会行きを応援してくださった方々。
本競技、スーパーチーム、プレゼンのすべてでトロフィーを持って返れるよう頑張ります!!

今日は、赤色のゾーン。通称、レッドゾーンについてです。

1.6.赤色のゾーン
1.6.1 黒いラインは、レッドゾーン(2階)の入り口か傾斜路の下で終わりにして、そこからは、ロボットが何らかの捜索手段を用いて被災者を見つけなければならないようにしてもいい。
1.6.2 レッドゾーンの入り口には、横25cm、幅2.5cmの反射する銀のテープが貼られる。
1.6.3 避難場所はレッドゾーンの、(入り口の角を除く3つのうちの )1つの角に設置される。
避難場所は、黒色で30cm×30cmの正方形を半分にした直角三角形である。
1.6.4 セカンダリの避難場所は、高さが6cmである。(それ以外の条件は1.6.3と同じ)
1.6.5 レッドゾーンは、入り口のみで、出口は存在しない。
被災者を避難場所に運び終えた時点でゴールとする。

昨年度ルールから変更点はありませんでした。

下線を引いたところは、大会運営側に 書いてあるのでしょうか?
見つけなければならないようにしてもいい。 
 果たして、未だにレッドゾーンまで線が引いてある大会など存在するのでしょうか?(ロボカップジュニア レスキューAで。)

深い深いなぞですね!!


すいません。どうやら、世界大会までにルールの解説??が終わりそうにありません。
まぁ、このルールは2013年度のノード・ブロックでも使いますので....許してください。。。 

それでは。

いきなり専門用語です。

プリプロセッサとは…僕も説明しろと言われると困るのですが、簡単に言うと…簡単に言えません。
適当に言うと、プログラムの本文をコンパイルする前に先にコンパイルされて、プログラム全体に影響する特殊能力みたいなものを持っています。

Amalgamでは#include, #define, #ifdefを使っており、次の効果があります。
 
#include
指定したテキストファイルの内容をそのまんまそこにコピペします。
これでセンサーの設定や絶対に変更を加えない部分をまとめる事が出来ます。
僕等の場合、距離センサー(通称DIST)の設定に使っています。
元が何百行もあってしかも意味不明な文字の羅列なのでちょうどいいです。

#define
確実に一番多く使っています。
どんな事が出来るかというと、「定数」を作る事が出来ます。
例えば「
#define A 10」と打てば、Aと言う入れ物に10という数字が入り、プログラム内での変更は出来ません。
センサーの閾値など、数値を固定したいときに便利です。
また、便利な事に数値だけでなくテキストも 入れる事が出来、例えば「
#define SET_I2C_S1 SetSensorLowspeed(IN_1)」と打ち込み、その後SET_I2C_S1と命令すればSetSensorLowspeed(IN_1)と命令したのと同じになります。凄く便利です。これのおかげでプログラムが解りやすくなります。
この「
#define」は応用性が非常に高く、他にも使い方がたくさんあります。

因にこれ、全関数・タスク内で有効になるのでその点でも便利です。 

#ifdef
一種のスイッチのような物で、ON/OFFを切り替える事で、プログラム本文の指定した場所をコンパイルしな事が可能です。
様々な状況を想定し、それに対応したプログラムを作った時の使い分けに便利です。

他にも#ifndef, #endif, #if, #elif, #undef, ##, #line, #error, #pragmaがあります。
はっきり言って用途が解りませんが調べれば簡単に解ると思います。

で、Amalgamではこのプリプロセッサだけで50行使っていますが、人によっては200行あったりプログラムの半分がこれだったりと、いろいろです。
もちろん全く使ってない人もいます。

ではでは 

タイトルの通りなのですが、何が起きたかって言いますと…

自分のブログをブックマーク(お気に入り)に入れていたのですが、誤操作でそれを消してしまいました。
URL収得のために自分のブログを検索しようとして、Googleで「Amalgam」って打ったら予測候補に「Amalgam ロボカップ」と出てきました。

なんか、凄く嬉しかったです。
で、もしやと思って「Amalgam」だけで検索したら2ページ目に出てきました。

まともなブログ作れば2ページ目ぐらいは簡単にいくみたいですね。



〜お詫び〜

なんと、ハードウエア〜アーム編〜と言う記事が違う内容ですが二つある事に気がつきました。
ここここです。
全く…やってしまいました。
でも結構言っている事がずれているからいいかと…

今回は、瓦礫と障害物についてです。

1.5.1 瓦礫は、減速バンプ(直径10cmのプラスチック製パイプや木製の棒を白く塗ったもの)や、直径3mm以内の木製の棒で構成される。
これらの瓦礫は、アリーナ、通路、傾斜路に置かれる事がある。
ロボットは、これらを乗り越えるか押しのける。 
1.5.2 瓦礫は、部屋や通路や傾斜路の壁に瓦礫がついた状態で置かれる事がある。 
1.5.3 障害物は、煉瓦の塊やブロックなどの重いもので構成される。
障害物は、アリーナに置けるが通路や傾斜路には置けない。
競技中に、障害物を倒したり動かしたりしても 、その競技が終了するまではそのままとする。

こんな感じでしょうか? 

1.5.1の減速バンプは、↓ で、その周囲にあるものが、「木製の棒」ってやつです。
 バンプ
あれ?木製のサイコロのようなブロックは置いてはいけませんでしたっけ??

1.5.3 に、「煉瓦の塊やブロック」と書いてありますが、最近の世界大会では、どうやら砂の入ったペットボトルが多用されているようです。因に、ノード・ブロックは煉瓦。ジャパンは、四角い石のようなものでした。
関東障害物 障害物JAPAN
ノード・ブロック   ジャパン


1.5.3の赤字部分は、2011年度位、ローカルルール対応していたものをルールで明確化といったところでしょうか?

このページのトップヘ