東京工業大学 ロボット技術研究会

東京工業大学の公認サークル「ロボット技術研究会」のブログです。 当サークルの日々の活動の様子を皆さんにお伝えしていきます。たくさんの人に気軽に読んでもらえると嬉しいです。
新歓特設ページ        ロボット技術研究会 HP        ロボット技術研究会 twitter公式アカウント

2014年04月

「ロボット技術研究会」通称「ロ技研」は、その名前の通りロボットの制作や研究はもとより、電子工作や機械工作、プログラミングなどの幅広い分野にわたるものつくり活動を行っています。

カテゴリ一覧: loading

【CG^2】 新歓ゲームAIのちょっとした話

こんにちは。
CG^2研のやけぬる(@jken_ull)です。

新刊展示ではこんな感じのゲームを展示していました。
無題2

↓ゲームの動画


ルールは
・同じ色を4つ並べると消える
・連鎖すると相手におじゃまブロックを送ることができる
・ウィルスを全部消すと勝ち
・ブロックが置けなくなると負け
という感じのゲームです。

制作期間は新歓展示まで半月でした。だらだらと短期間制作なのです。


今回はパズルのAIについて少しお話しようと思います。
先週のrogyゼミで話したことと似たようなお話です。


AI(人工知能)とは、人工的にコンピュータに人間のような知能を持たせようとすることを指します。
今回のゲームではパズルを解くAIを作りました。


では、どうやって解くのかを簡単にお話します。

AIにパズルを解かせるときには、出来る限りクリアできるようなやり方をさせたいと思いますよね。
比較
上の図の例でも、左の置き方よりも、右の置き方をさせたいですよね。

今回のゲームでは置く場所を決めていくわけですが、配置していくブロックは何個か分かっているだけで、それ以上はランダムに決定します。
そのため、事前に全探索してクリアできるように配置の仕方を決めよう、というわけにはいきません。
そこで、与えられたブロックの情報から、より良い配置の仕方を決定していくことになります。
今回は評価関数を使うことにします。

評価関数とは、ゲームの状態を評価して数値に変換する関数のことを言います。
その評価した値を見て、ゲームの状態をより良くするように進めていきます。

今回の場合は、
・できるだけ同じ色を並べていくようにする
・4つ並べると消すことができる
・連鎖したほうがよい
・ウィルスを優先的に消す
ということを意識して評価関数を考えることができます。

例えば、あるブロックを座標xに置いた時の評価関数を
g(x) = { (消せるブロックの数) + 10×(消せるウィルスの数) }×20×(連鎖する数) + (並んでいる同色ブロックの数)
という感じで定義します。
そして、すべての座標xでこの関数で評価してみて、g(x)を最大にする座標xに配置する、としておきます。
これでも、そこそこ良い感じのAIになります。

他にも、何個か先を見たり、乱択アルゴリズムなどいろんなアルゴリズムを使ったり、ゲームの状態によって評価関数を使い分けるなど、いろんなやり方があります。

評価関数はこうすれば必ず強いという定石はなく、プログラマの経験や理解の程度に影響します。
作り方によってAIの強さが変わるので、きちんと調整する必要があります。


最後に、AIを作るにあたって大切なことを書いておきます。

判定を時間内に終わるようにする
探索するAIでは、より多く探索していくと強いAIが作れるのですが、調べすぎて時間内に終わらないことがあります。
今回のゲームの場合、AIとして分かっている4個のブロックの配置状態をすべて探索するようにすると、その時の最適な置き方が分かり強いAIが作れるのですが、時間的に膨大な時間がかかります。 
この時、メインルーチンで処理している場合には、探索処理が時間内に間に合わないと次の処理に移れないため、ラグが発生してしまいます。
ラグはプレイヤーのゲームプレイのテンポを崩したり、誤操作してしまう原因になってしまうため、できるだけ避けたいものです。
また、別スレッドで処理している場合にも、探索処理が時間内に終わらない時でもブロックは動き続けるため、ゲームの状態によっては計算が終わる前に配置が決まってしまう可能性があります。
そのため、うまく枝刈りする(無駄な計算をしないようにする)などの処理を行い、探索の時間を減らす必要があります。
最悪の計算時間でも時間内で終わるようにAIを作るようにしましょう。

強すぎず、弱すぎず
AIは作り方によってはすごく強いAIができたり雑魚なAIができたりします。
強すぎるAIを作ってしまうとプレイヤーの心が折れてしまい、弱すぎるとプレイヤーにすぐ飽きられてしまいます。
これではゲームとしてあまり良くないものになります。
きちんと調整した、ほどほどの強さのAIがちょうど良いのです。


今回の話はここまでです。


次のゲームは何作るか決めてませんが、工大祭にはきっと何かできてると思うのでお楽しみに。
ではでは _(:3」∠)_

【めかとろの玩具箱】ライントレースロボットの製作その4

こんにちは、めかとろの玩具箱の州すけです。

新入生歓迎展示で展示していたライントレースロボットです。とりあえずひとまずの完成となりました。
家では問題なく動いていたのですが、展示では講義室の照明が明るかったためかうまく動いてくれず、動画を流しているだけという結果になってしまいました。

HI3D0180


現在のプログラムでは動作前に白い場所において白地のデータを読み取りそれを基準値とし、ライントレース中に取得した値と基準値との差分の定数倍をPWM最大値から引いて出力するという構成になっています。

pwm=MAX-k(基準値-取得値)

のような感じ。センサは6つついているため、

pwm左=MAX-k1(基準値左1-取得値左1)-k2(基準値左2-取得値左2)-k3(基準値左3-取得値左3)
pwm右=MAX-k4(基準値右1-取得値右1)-k5(基準値右2-取得値右2)-k6(基準値右3-取得値右3)

みたいな感じになっています。
線を見ているセンサがある方のタイヤが減速するイメージです。

これからは微分制御を加えることと、外乱光の対策に始めに黒の値を取得して走行時の値との比を扱うことを考えています。

また今回は消費電力が大きかったために電池がモーターを別にせざるを得なかったため、そこをどうにかして2本にしたいなと思っています。

それではまた来月お会いしましょう。

玉乗りロボット(3) 機械工作

井土です。
今回は玉乗りロボットの機械部分についてです。

じつはフライスとか旋盤を使ってものを作るのは初めてなのですが、
ロ技研の詳しい人に教えてもらいながらでできちゃいました。
今回は製作過程を紹介していきます。

まず3DCAD(inventor)で設計します。
今回はボールに上手く接することが重要なので面倒臭かったです。(結局ずれた)

名称未設定

設計データを元にアルミを加工していくのですが、
ロ技研の部室にはHAKUというNCフライスがあるので、
CADでデータを作ると自動でアルミ板を削ってくれます。
47

これはモーターを斜めに固定する部品です。
31

こんな感じで部品が削り終わるので、折り曲げて組み立てていきます。
03
 
次はタイヤの軸部品です。
タイヤの軸部品はフライス盤・旋盤で加工します。
21

 18
 
そして合体
ちなみにタイヤはこれ http://store.kornylak.com/ProductDetails.asp?ProductCode=FXA357
モーターはこれ http://www.robotshop.com/en/pololu-12v-50-1-gear-motor-encoder.html
を使用しました。
22
このタイヤはオムニホイールと呼ばれるもので、
モーターの回転方向にはグリップしますが軸方向にはフリー回転するので、
3つのタイヤを三角形みたいに並べると全方向に移動できます。

前回紹介した制御回路を上に乗せて、玉乗りロボットが完成です。
01

 
次回は実際の動作と制御関連の紹介をする予定です。 

機構学習室 -ゼネバとタイガー計算器-

きたろーです.
 
新歓展示をしておきながら,rogyゼミで発表をしませんでしたので
この場を借りて説明させていただきます.話長いから注意!
今回僕が新歓展示で展示していたものは3つです.
展示員はおにぎり君がやってくれました.ありがとう!

◆メタルゴム銃
昨年工大祭で展示した物です.以前の記事(こちら)でも少し紹介しましたし,
動画もありますので省略.
銃2

◆ゼネバストップと錠ハンドルホイール
メカニズムの事典に載っている機構2つです.とりあえず動画を見て貰うのが良いかと.
ゼネバストップ↓ 

今回新歓向けに作りました.過去に同じ物を作っている人が当サークルでいましたが
それを踏まえて僅かに改良型です.新規性はありません!

ゼネバストップはスイス,ジュネーブ(=geneva=ゼネバ)で
発明された動力伝達機構の1つで,
・間欠運動を作る(入力側が一定速でも出力側が動いたり休んだりする).
・出力が休んでいる最中もバックドライブ(※)が不可能.
といった特長を持っています.
ただ現在では,電子制御の進化,同様のことができる機構は他にもある,
設計自由度が低い,動作の非線形性が高い,といった理由から
あまり使用されなくなっています.

機構の動きは面白いので趣味で作る人は多くいます.
スイスのオルゴール職人たちは昔良く使ってたみたいです.
美術館で当時の物をいくつか見たことがあります.
動く角度が1/4,1/6,1/7,1/8の物は過去に見たことがあったのですが
1/5の物は見たことが無かったので1/5で作りました.素数イイデスネ.
※バックドライブ…出力側に力を加えたときに入力側が動くこと.平歯車はバックドライブ可能な機構で,
ウォームギアは不可能な機構.状況によってバックドライブできた方が望ましいケースもあるし,望ましくないケースもある.


錠ハンドルホイールは2つのハンドルA,Bがついた機構で
・Aがホームポジションにいるときは,Bは自由に動ける.
・Bがホームポジションにいるときは,Aは自由に動ける.
・でもAとBが同時にホームポジションから離れることはできない.
という機構です.こちらも動画をどうぞ.

この機構の魅力は,動きはちょっと複雑なのに,
欠けた円板2枚で実現できるというシンプルさのギャップです.
そのためお客さんに機構部分を見せてから動きを見せると
「そんなの当たり前じゃん,何が面白いんですか?」
というリアクションを取られ凹みます.
この機構を「面白い」と言ってくれた新入生は良い人です.

◆タイガー計算器
tiger
↑タイガー計算器の外装を外した状態
おそらく僕が展示した物で一番人目を引いたのはこれでしょう.
国産の手回し機械式計算器です.
整数の四則演算のほか小数の計算や,分数の計算など色々できます.

「ロボット技研的に製品として売られていたものを展示するのはありなのか?」

という議論を起こしそうですが,それはまたの機会に.

大正時代に開発された機械で,僕が所有しているモデルは1965年ぐらいに
製造された製品です.大正の開発当初は「国産はすぐ壊れる」といって
あまり売れなかったということですから,生産されてから半世紀経つ今,
この機械が何の問題も無く完璧に動作するのは感動的です.
ハンドルとリセットレバーの回し心地が素晴らしいので是非お試しあれ

怒られない限り年内ぐらいは部室に置いときます.
ハンドルを回している最中にリセットボタンを押そうとしても受け付けなかったり,
ハンドルを途中で逆回転させることが出来なかったりと
素晴らしいフールプルーフ設計です
触ってみるのも良いですが,詳しいことを知りたい人は
公式のサイトを見ると良いかもしれません.
いかに当時,回転数を減らして効率的に計算していたかが分かります.

タイガー手廻計算器資料館(公式)


以上,メカニズム学習室でした!

2次ビデオ審査通過!

こんにちは。Maquinista機械班で自動機担当のSです。
今回Maquinistaは、
2次ビデオ審査に通過しました!
皆さん応援ありがとうございます。 
さらに今回はMaquinista初のシードで、NHKからの取材も予定されています。

さて、Maquinistaでは、新メンバーを募集しています。
ロボットはもちろん、機械、回路、プログラミングに興味がある方、チーム一丸となってロボット製作をしてみませんか?
休日にはロボットの操縦練習をしているので、お気軽に見学にお越しください。
また、
普段はものつくりセンターで活動を行っていますので、こちらの見学も大歓迎です。
【練習予定】

4/27(日) 17:00~19:00 体育館
4/29(火)  20:00~22:00 文化センター

5/4(日)  17:00~19:00 体育館
5/11(日) 20:00~22:00 文化センター
5/18(日)  10:00~19:00 体育館


興味がある!見学したい!という方は、以下のアドレスまでご連絡ください。
maquinista.sinkan2014@gmail.com

QRcode
Maquinista独自のブログも公開していますので、こちらもぜひご覧ください。
今後も本番に向けて、全力で練習に取り組んでいきますので、応援よろしくお願い致します。

ギャラリー
  • ABUロボコン結果報告
  • スマホから部屋の電気をつけてみた
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • MakerFaireTokyo2017に出展します
  • たのしいロボット帝国 製作物紹介
記事検索
最新コメント