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

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

2016年06月

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

カテゴリ一覧: loading

Google Code Jam

こんにちは。rogy競プロ部の森田(@yosupot)です。

たまにはブログを書きます。今回はGoogle Code Jam(以下GCJ)という大会についてです。

これは、名前の通りGoogleが主催しているプログラミングコンテストです。競技プログラミングの大会の中では、ICPCと並び、最大の規模を誇るんじゃないかと思います。

システムとしては、何回かに分けて予選があり、人が 沢山(今年は27169人)->3000->500->25と減っていきます。これは全部オンラインの大会で、最後の25人に残ればニューヨークのgoogleオフィスにいって決勝をします。

そして僕は、最後の25人に残った(https://code.google.com/codejam/contest/3224486/scoreboard 7位,日本人最高位)ので、無事ニューヨークに行きます。やり遂げたぜ。


…というだけでは面白みにかけるので、今回は今年のGCJに出題された問題のうち、高度なアルゴリズムを必要としない問題を2題紹介します。興味を持ったらぜひ来年参加してみてください(といっても丸一年後だけど…)

Round2 A問題 Rather Perplexing Showdown
https://code.google.com/codejam/contest/10224486/dashboard#s=p0

あなたは、グー、チョキ、パーの書かれた紙をA, B, C枚持っています。A+B+Cは2の累乗、つまり1,2,4,8,16,...のうちどれかになっています。ただし、最大でも1024枚です。

あなたは、この紙たちからトーナメントを作りたいです。(A+B+Cが2の累乗なので、シードとかは当然無いです。)。紙たちはじゃんけんをして、勝利したほうが勝ち抜きます。そして、トーナメントのどの試合でも、引き分けが起きてはいけません。

このようなトーナメント表を作れますか?POSSIBLEかIMPOSSIBLEで答えてください。(元問題だと、POSSIBLEだったらグー=R, パー=P, チョキ=Sとしてトーナメント表を左から見た時の辞書順最小の文字列を求めないといけないですが、これはもうすこし難しいです。)




Round3(=最終予選) A問題 Teaching Assistant
https://code.google.com/codejam/contest/3224486/dashboard

あなたは、空のスタックと、'A', 'B'からなる長さNの文字列を持っています。スタックの容量は無限です。文字列の長さ、つまりNは100000以下で、しかも偶数です。

そして、文字列の先頭から順番に文字を見ていって、1文字見るごとに次のうちどちらかの操作ができます。

- その文字をスタックに積む。
- スタックから文字を1個取りだす。そしてこの時、取り出した文字と今見てる文字が同じなら5円、違うなら10円貰える。

文字列を最後まで見た時の、もらえるお金の合計を最大化してください。

例えば文字列がAABBなら、push-pop-push-popとすれば20円貰えます。
文字列がABBAなら、push-push-pop-popで20円貰えます。
でも、ABABなら10円しか貰えません。
ほかにも、ABBBとかだったら15円貰えます。




 

部室3DプリンターのFlashAir化

はじめまして。ロ技研でアシスト研の15 小林といいます。
主に電子工作をしています。

今日は部室3DプリンタのFlashAir化について書きます。


THE pr
これは、ロ技研の部室にある3Dプリンターです。

この3Dプリンタは、SDカードのファイルを読み込む方式のため、プリントする時は
①まず部室のPCにSDカードを刺し、.zcodeファイルを生成して書き込み
②そのSDカードを3Dプリンタに挿し替え
③そしてプリンタ本体で操作する
という手順を踏まなければならず、面倒でした。

そこで3DプリンタのSDカードをFlashAirに替え、部室netに接続することが出来れば無線LAN経由でファイルを送信できるので、SDカードを挿し替えることなくプリントを行うことができ便利だろう
ということで、実装してみました。


DSC_0167
今回使用した「FlashAir」です。

このFlashAirは、SDカードの形をしていて、挿した機器には普通のSDカードとしてふるまいながらも、無線LANを内蔵していて、SDカード内のファイルを無線経由で共有できるという製品です。FlashAir内にWebサーバーが内蔵されていて、SDカード内のファイルをHTTPのGETで取得したり、POSTで書き換えたりできます。

詳細な設定方法などは研究報告書に書くとして、使い方を説明します。



--------3DプリンタのFlashAirの使い方--------

①3Dプリンタの電源が入っている状態でないと無線LANが繋がらないので、まず電源を入れてください。(電源を入れてからLANに繋がるまで少し時間がかかります。)

②FlashAirにアクセス
pr1
部室パソコン(右側)の場合は、デスクトップの右下に「3Dプリンター FlashAir」というアイコンがあるので、これを開きます。

自分のパソコンで接続したい場合は、パソコンを部室NETに繋いだ状態でブラウザを立ち上げ、アドレスバーに " http://3dprinter/ " と入力します。(これで繋がらない人はプリンタの近くに貼ってあるipアドレスを入力してみてください。)
pr2
3Dプリンターに刺さっているFlashAirに現在入っているファイルの一覧が表示されます。 

③ファイルを転送
ファイルをFlashAirに転送する時は、②の画面の下の方の「アップロード」というリンクをクリックします。
新しくタブが開きます。
pr3-0
ファイルを選択」をクリックし、
pr4
これからプリントしようとする.zcodeファイルを選択しOKで閉じ、
pr5-0
最後に「submit」ボタンをクリックすると転送が始まります。
読み込みが終わってから(上のくるくるpr6-1に注目)”Success”と出たら転送が完了です。
これで3DプリンタのSDカードに.zcodeファイルが書き込まれました。
タブを閉じて前の画面に戻り、「更新」ボタンをクリックすると、いまアップロードしたファイルが追加されたのが確認できると思います。
pr7


PCの操作は以上です。あとは3Dプリンタを操作してプリントを開始できます。
もし直前に転送したファイルがプリンタで表示されない時は、一度メニューに戻ってから再度ファイル一覧に移動すると表示されるようになります。

--------------------------------

操作方法は以上です。是非利用してみてください。

_20160611_005043-0
これで、上を向いていてごみの入りやすいSDカードホルダーを完全に閉じることができ、ゴミが入って故障するリスクを減らすことができました。

ところで上の写真の右のほうと画面の下あたりに何かありますが、
これは「twitterの3Dプリンターbot」のための機器です。
次回はこの3Dプリンターbotの紹介をします。

セキュキャン全国に応募しました。(参加します)

追記:選考を通過してセキュリティキャンプ全国大会2016に参加できるらしいです。やったぜ。

どうも。rogyCTF部のやむどぅ(@ymduu)です。
実はつい先日締め切りだったセキュリティキャンプ全国大会2016に応募していました。
セキュキャン界隈にはどうやら応募用紙を晒す風習があるそうなので、僕も晒していこうかなという感じです。
よろしくお願いします。
(CTFではないのですが、一番近いのがCTFなのでカテゴリはCTFにしました)

共通問題はまるまる載せると結構長い上に、他の人の応募用紙を読むときに気になるのはどちらかというと選択問題の回答のような気がするので共通問題はダイジェスト版で。
はよ選択問題読ませろ!って方は続きからどうぞ。

共通問題1

今までの製作物をありったけ自慢してくださいみたいな問題。
僕はグローバル理工兄弟Programmer PANIC!について書きました。
グローバル理工兄弟については初めての言語で初めてのGUIプログラミングをした時の苦労と楽しさ、Programmer PANIC!についてはゲームのコンセプトややりたかった事、工夫点、苦労話など。

共通問題2

今までに技術的に躓いたところとどうやって解決したかと同様の点で躓いている人間にどのようなアドバイスをしますかという問題。

中学生の時、初めてゲームを作ろうとした時に困った関数の返り値と値渡しについて数学の参考書まで出しながら考えた思い出を思い出しながら書きました。

一つのサンプルコードがわからん!って場合でも実は複数の理由が複合していたりするので、まず何が分からないのかをはっきりさせてから文献なりインターネットなり人なりに当たるといいですよという話と、分かったら同じようなパターンをいろいろ試すといいですよという話を書きました。

理解してから色々なパターンを試すと身に着くのが早まるのはマジなのでおすすめです。



共通問題3

(1)セキュキャンで受けたい講義とその理由、(2)セキュキャンで学びたいことややりたいことを述べよという問題。

(1)では、

4-D 実行ファイルの防御機構を突破せよ、

2-A スマートフォン向けゲームのセキュリティ、

1-DDissecting Malware -x86 Windows malware analysis-

の三つを挙げ、それぞれ要約すると

4-D

ゲームに脆弱性があったため任意コード実行されてしまい不正コピーが蔓延り、大きな損害を出す原因となったPSPの話を挙げてゲームを製作する場合でもセキュリティに気をつける必要があるという話

2-A

自分が必死で調整したゲームのパラメータを不正に書き換えられたり、オンラインゲームで不正が蔓延しゲームが詰まらなくなるのはゲーム製作勢として悲しいので作ったゲームを守りたいという話

1-D

一通りx86のアセンブリ言語は読めるようになったが、0ctfで実力不足を思い知り、今の実力ではreversingを社会に役立てることはできないのでもっとreversing力を高めたいという話
をしました。
(2)では、分からなかったことが分かるのは楽しいので分からなかった事をたくさん知りたい、だとかバイナリが好き、だとかSECCON本戦に行く時にメンバーが足りないくらい周りにセキュリティに興味のある人間が居ないのでセキュリティ友達がほしい、だとかその辺のことを書きました。


今要約しながら見直すとゲーム色が強い回答になっている気がしますネ
選択問題は応募用紙から丸々コピーしたものを載せます。割と長いので続きからどうぞ。

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