2014年12月21日日曜日

Turtlebot Gazebo Simulator in ROS Indigo using source installation(ソースインストール)

Turtlebot2 gazebo in ROS Indigo
Checking Gazebo Turtlebot2 Subscribing Topic in rqt_graph(rqt_graphでgazebo turtlebot2の購読トピックの確認)

I have found out how to use turtlebot2 gazebo simulator in ROS Indigo using source installation, which the turtlebot_simulator package is not supported in this distribution.
For the English documentation,  please look at my gist:
https://gist.github.com/kendemu/86a7fe1ecdaf9cc320f4

ROS Indigoでソースインストールを使ってturtlebot2をGazeboで使用する方法を発見しました。ROS Indigoではturtlebot_simulatorのパッケージはサポートされていません。
qiitaにその方法を投稿しました。
http://qiita.com/kendemu/items/f915c7c2498b04e097cc

これでUbuntu 14.04でもturtlebotのシミュレータ環境が可能です!
(Ubuntu 14.04にROS hydroを入れる手段もありますが)

2014年12月18日木曜日

Maker Faire Tokyo(English)




I was inspired to the idea of MAKERS when I was in 9th grade, the book written by Chris Anderson,
and I wanted to go to the MAKER FAIRE someday.
Fortunately, this time I could go to the MAKER FAIRE Tokyo 2014 at the first time!

At first, I tried to get the Free Intel Edison Set(only for 50 peoples), so I went to the
stadium about 1 and a quater hour before the opening. Unfortunately, the Intel Edison Free Set was all out of stock.
There was a rumor in twitter that all Intel Edison were out of stock in the previous day.

I was disappointed, but I found there was more interesting thing on the next booth; The NVIDIA JETSON Robot.
I could feel the greatness of GPGPU and the smalless of the embedded.
GPGPU can do fast complicated calculation and speed up/increase the accuracity of image processing and machine learning( for 33x).
But in my memory, I thought I have to contract a NDA to get the Jetson, but it is open source, no NDA now.
Resently I got the JETSON TK1, so I'm going to write that topic soon!

I was surprised by the high technique of long distance radio communication.

This is a robot that can fly and also walk.(drone) It was developed my Mr.Hashimoto.
The teddy bear under the drone is also a robot too, it can read people's mind(it can connect to the internet).
The teddy bear robot's goal is to go around Japan by hichhiking!


This is a big-sized robot that can control by dynamic movement. This robot was so popular that I couldn't control it because of the long waiting line.

This is a Mars Rover. It was interesting that the design is different between the robot for Earth and the robot for other planets.

Others were Arduino+Cloud(AWS)+leap motion, Arduino Robot with Scratch IDE(Especially the interesting point was having a simulator and it can synchronize the movement to the real robot,,
ARM mbed IDE usefulness(it have software logic analyzer,osyloscope,simulator, and remote-debugger), Video Streaming(Processing) with Raspberry Pi Clustering,
 human plane simulator(using leapmotion and Ocurus Lift), moving Robot Arm with Gcode using Linux CNC(using Linux can have realtime system so it's good for controling robots), everything were interesting!
 
I hope I could apply this experience to my robot development.

Intelligence Robotics Challenge


I participated in the  Robotics Challenge at 12/6.
Intelligent Robotics Challenge's objective is to develop Home robotics.
My robot, Kenseiko-Chan 2 Mobile was customized from the Tsukuba Autonomous Robotics Challenge. Now my robot is loading a gun-type-microphone.

I participated in the "Follow Me" challenge.
The "Follow Me" challenge is to track and follow person in a house environment.
I used PN(Propotional Navigation) and PID control to track the person.
To detect human, I used LIDAR by judging the width of the leg.
This robot can also detect several number of legs.
My robot moved until where the other human intercepts.

My robot problems are:
1. It tracks the pillar with the same width of the human's leg.
2. If the object has 2 legs, then it will be a human with high possibility,
   but my recgonizition system judge two legs in only a distance of 1~2 meters.
3. It can't distinguish the tracker and the other people.
4. It doesn't do voice recgonizing, which is neccesary for home robotics.

The solution of No.1. is to use reflection intensity of the LIDAR's data, to distinguish colors.
The solution of No.2 is only to change the recgonizition system. I'm thinking to change the LIDAR's data to image, delete noise, and do pattern matching or making a human walking probabilistic model using OpenCV.
It is difficult to solve the No.3 with using only the LIDAR's reflection intensity data, because some people wear the same pants, so the reflection intensity(color) will be the same. Human walking probalistics model or using other sensors, like xtion/kinect, or camera will solve the problem.
Looks like I have to study more about vocie recgonizing to solve No.4. I'm studing how to use the julius voice recgonizition library.

Also, there were interesting robotics/intelligence topics and robots in the intelligent robotics challenge.

Rospeex is a Cloud-A.I. Voice recognition and synthesis library compatible with ROS(Robot Operation System) developed by Prof.Sugiura. http://rospeex.org/top
Now it needs internet connection to use this. This application front-end is written in HTML5, so you can use this in the web, and also in mobile too. The server do the voice processing, so your device doesn't need any high hardware processing ability. All your device need is query and respond to the server. The server A.I. uses deep learning to classify data.
Robot from Osaka Institute of Technology
There were many turtlebot in the challenge.

Daigoro from The University of Electrocommunications Tokyo
Daigoro is using LIDAR to follow people. It follows people very accurate. It is using pattern matching.


The next day, I joined the Intelligent Robotics Study Meetup.
There were a lot of interesting research and talks about robotics and A.I.
About the sophisticated voice recognition system, Rospeex, Robot for entertaining children using the original-babysitter and child model expressing by bayesian network, grasping the meaning of an imperative sentence using CRF(Conditional Random Field) and SVM(Support Vector Machine), about Robotics business models, and the Roomba's business model(how to remove the barrier between the consumers: the prejudice of robot), and about Whole Brain Architecture.

I'm going to participate in the next Intelligent Robotics Challenge/Meetups too!


2014年12月14日日曜日

Intelligent Robotics Challenge

スーツケースにしまって運送しました。
12/6に開かれたIntelligent Robotics Challengeに参加しました。Intelligent Robotics Challengeとはホームで生活支援をするロボットを生み出すことを目的とするものです。

出場したロボット
僕はつくばチャレンジに参加したロボット、Kenseiko-chan 2 Mobileにガンマイクをつけて出場しました。
followmeという競技に出場しました。followmeは人間をロボットが家の環境内で追跡する競技です。
アルゴリズムは姿勢制御に比例航法、距離制御にPID制御を使用しました。人間の検出は足の幅をLIDARで計測する方法をとっています。足は複数本検出できるようになっています。
今回の記録は別の人がすれ違う地点ですれ違った人を追いかけてしまってそこで終了になりました。
今回のロボットの問題点は、
1.足の太さと同じ柱があったらそれを追跡してしまう。
2.2本足であれば確実に人間と判定することができるが今の認識システムでは2本足と認識するときは一定以内の距離でないと判定せず、また停止して足をつっつけてしまうと判定できない。
3.  追跡する人と他の人が見分けられない。
4. 音声認識をしない。

1.はLIDARに反射強度という機能がついているのでそれで追跡者と柱の色の比較ができると思うので次は解決できそうです。また、柱は動いていないのでモーション判定の手法を使ってもこれは解決できます。
2.は人間の足かそうでないかという認識システムを確立するほかないかなと思っています。LIDARのデータを画像化しOpenCVでノイズを除去しパターンマッチングをしようかなと考えています。
3.はLIDARの反射強度を使う方法で解決できるかできないか定かではありません。なぜなら同じ色のズボンを履いている人は多くいるからです。上についているXTionなども活用する必要があるかも知れません。
4. 音声認識のためjuliusの使い方を勉強中です。

Intelligent Robotics Challengeではとても有意義な技術交流ができて夢のようでした!

杉浦先生が開発しているROS互換性がある音声認識・合成システム、rospeex. クラウドAIアーキテクチャ、ディープラーニングなど先進的技術を取り入れています。スマホアプリにもなっています。
アプリ、クラウドAI、機械学習など色々なことを教えて頂きました。杉浦先生ありがとうございます!

大阪工業大学、turtlebot
turtlebotロボットの改造にさらなるインスピレーションがわきました!
電気通信大学のロボット、Daigoro
電気通信大学からはLIDARでの人間検出の方法について教えて頂きました。

 岡田先生、中川先生、大橋先生、林先生、その他にも一人参加の僕は色々な人にお世話になりました。ありがとうございました!

12/7はIntelligent Robotics研究会に参加しました!
次世代ロボット音声認識システムROSpeex(Deep learning・ビッグデータ)、ベイジリアンネットワークによる保育士ー子供モデルによるロボットのための子供を楽しませる機械学習モデル、老人介護のためのロボットについて(ロボットの料理のための機械学習モデルの提案)、機械学習による命令文解析(指示語や暗黙の目的語を機械学習(SVM)によって予測する)、ロボットビジネス戦略、Roombaのビジネスモデル(ロボットという消費者との壁をどうやって取り除いたか)、全脳アーキテクチャ等ここでしか聞けない話が盛りだくさんでした!

次回のIntelligent Robotics Challenge/研究会もぜひ参加したいと思います!

2014年12月13日土曜日

アルゴリズム勉強会

アルゴリズム勉強会
北陸アルゴリズム勉強会はcafe?ikagawadoで開かれているアルゴリズムの勉強会です。
この勉強会はアルゴリズムを考えるのに頭を使い、毎回参加するごとに頭が賢くなった気がします。
この勉強会のおかげでiterative DPの書き方が分かるようになったり、ビット演算の活用、いもす法 などのことを知ることができて毎回自分の大きな成長になっています!
前回はチーム戦を行いました。イリノイ大学からの留学生Mr.Marcoとチームを組みました。主に2つの問題が出題されました。1回目のときは僕がドライバー、Marcoがハンドラー(アルゴリズムを考える人)でした。Marcoの考えたアルゴリズムを使いました。ですが見落としていた状態があったので全状態を列挙するため僕はスパゲッティコードで実装してしまいました。2つの論理テーブルと1つの得点テーブルを用意してこの問題を解きました。ビット演算を使うと3つのテーブルが1つに抑えられ、if文の連続も抑えられることが判明しました。
2回目は僕がハンドラー、Marcoがドライバーでした。2分探索をして答えにたどりついたとき探索した回数を返せば良いと気付き、それはlog2n + 1なので2分探索もする必要がないと気づきました。MarcoはJavaプログラマなのですが、javaではlogの底は常用対数である10であり、工夫点としては変換公式を使う必要があったくらいです。2問目はMarcoのファインプレーによりチーム戦で良い成績が出て、2人プログラミングの楽しさを初めて知りました。
次回のアルゴリズム勉強会が楽しみです。

Maker Faire Tokyo 2014

僕が中学3年生の時にMAKERSを読んで感動し、いつか行きたいと思ったMAKER FAIRE TOKYO 2014に今年初めて見学することが出来ました!
MAKER FAIREとは世界各地で開かれているものづくりが好きな人たちのためのお祭りです!
(初心者でも)
僕はまずintel edisonの50名限定無料配布セットをゲットするために朝8:45に現地東京ビッグサイトに到着し、列を待っていたのですが、入場した頃にはすでに配布が終了していました。ガーン
twitterでは最前列らしき人がその日はすでにedisonの配布が終了していたらしきことをつぶやいていたのでわかってはいましたが。。。。

NVIDIA JETSON TK1を積んだロボット
intel edisonがもらえなくて残念と思っていましたが、会場ではNVIDIA JETSON TK1を積んだロボットに魅せられました!GPGPU+組み込みの小型さ。GPGPUは大規模計算、機械学習、画像処理の精度・速度を大きく上げてくれるそうです。自分のロボット開発のインスピレーションが湧いてきました!ですがJETSONはたしか購入時にNDA(秘密保持契約)を結ばないといけなかったはず、そこはどうなのかと店員に話を聞いたところ、今後そのNDAは結ぶ必要がなくなり完全にJETSONはオープンソースになったとのこと!!欲しい!!!そしてやっと一昨日憧れのJETSONが家に届きました!このことは別でブログに書きたいと思います!

長距離無線受信機
長距離無線受信の技術に驚かされました!つくばチャレンジでは僕のロボットはあまり良いGPSのデータが取れなかったのに対してこちらは宇宙の月より離れた場所にあるものからの電波のシグナルを正確に受信しているこの技術の差にびっくりしました!またまたロボット開発のインスピレーションが湧いてきました!


空陸両用クモ型クアッドコプター

こちらは陸を歩くことができ空も飛べる、ロボットアニメに出てきそうなかっこいいロボット(ドローン)です!将来このようなロボットが街の中を飛び回っていると想像しただけでわくわくが止まりません!
下に隠れているのが人間の心理を読むことができるらしいくまさんロボットです。このロボットは日本一周を目指しているそうです!

スケルトニクスのロボット
 実際に操縦できる大型ロボットです。僕も実際操縦してみたかったのですが長蛇の列のため操縦できませんでした。

火星ローバー
火星ローバーだそうです。 地球のロボットと他惑星のロボットは形状、設計や機能が異なることが実感できてすごく興味深かったです!

その他にもArduino + Cloud(AWS) + leapmotion, Arduinoロボット with Scratch開発環境(特に面白かったのはscratchロボットシミュレータがあり、そのロボットシミュレータをロボットの動作と通信を通して同期できること), mbedの開発環境の便利さ(ソフトロジック・アナライザ、オシロスコープ、シミュレータ、リモートデバッガ付き) , Raspberry Piクラスタリングによるストリーミング、鳥人間シミュレータ(leapmotionとOcurus Liftを使っているそうです),Gコードでロボットアームを動かすことのできるロボットアームを動かすことができるlinuxCNC(リアルタイム性がある)、楽しいものでいっぱいでした!

また自分の技術力はまだまだだなあと思いました!
今後もこのような技術に触れて感動し、自分の開発に生かしたいです!

Tsukuba Robotics Challenge




Robot Qualification
I participated in the Tsukuba Autonomous Robotics Challenge.
Tsukuba Robotics Challenge is a trial to develop stable robots that can move freely on the street (Also make sure to be no harm to the people)
To complete the trial, the robot have to move for about 1.3 killometers and detect 5 particular people.
My robot, Kenseiko-chan Mobile 2


My robot was turtlebot(a robot that is silimar to roomba) with LIDAR(Wide range Laser scanner),
toughbook note PC(to cope with rain),xtion(similar to kinect), and GPS.
                      
debugging my robot

                                                                                      


controlling my robot with PS3 controller(creating map)
Actually, I couldn't develop my robot so much because I was also participating in the Kanazawa-city Mobile Application Contest,
and the previous day I went to Tsukuba was the deadline hand-outing the application  so I had to concentrate developing it.
I just finished setting-up environment for my robot and creating robots.

When I arrived to Tsukuba, I started developing the main program of my robot.
This time I used the ROS(Robot Operating System) for the first time, and I started from reading the tutorial of ROS.
However, I couldn't understand how to program the ROS topics and frame_ids so I read the APIs, and I found reading the code is more faster to understand.
 At last, I could program frame_id and topics.                                                         
map tracking in the trial


My algorithm is amcl with SLAM(writing maps) using LIDAR. If I set the first position and the goal position, my robot will move to its way.
 This time my original program didn't work so well so I just used the ROS amcl package. My robot calculate the geolocation by map matching and looking the value of motor encoder.
 To do map matching, I had to take a map, so I made the map with moving my robot manually.(using PS3 controller)
  The track record of my robot was 20 m.
 In the practice my robot moved about 70 m. This shorten of the record was caused from the change of the environment;
 In the pratice there was no person near the starting point but in the trial there were a lot of people near the starting point so the map changed from the practice.

In map-planning running, although my robot was detecting the LIDAR device, but it didn't avoid obstacle.
I found I had to change the amcl configuration file to change the LIDAR subscriber id to base_frame. Now my robot can avoid obstacle.
I didn't used GPS data to plan map this time because the GPS geolocation was inaccurate so I couldn't use it to revise odometry.

My original program was way-to-point tracking. I had to configure the coordinates to local from map coordinates to make it use.
 Now my robot can do way-to-point tracking!

Robot from the Tsukuba University Intelligent Robotics Lab
 Various robots were seen at the challenge.

 In this challenge I could prove turtlebot can be used outside. It can move through the fallen leaves. It stops moving if it hits a middle sized rock.
 It can say that turtlebot can move outside.

つくばチャレンジ2014

車検
11/16に開かれたつくばチャレンジに参加しました!今年が初参加です。
つくばチャレンジとは人間が普段歩行している遊歩道を走行できる実用的なロボットを生み出すことを目的としている実験会です!ルールは屋外をロボットが走行して人を見つけて約1.3kmのコースを完走することです。

開発したロボット Kenseiko-chan mobile 2です。
僕はturtlebotというroombaに似たロボットにtoughbook, LIDAR, xtion, GPSをつけて(パソコンを載せる台車を製作しました)出場しました。

スーツケースにしまうことができるのがKenseiko-chan mobile2 の最大の特徴です。
実は!つくばに出発した日の一日前にKANAZAWAスマホアプリコンテスト2次審査用サンプルアプリの提出期限だったためアプリの開発の方に集中していてロボットはあまり触っていませんでした!ロボットの進捗具合はロボットの製作、環境設定が完了した程度でした。

デバッグ中です。
筑波についてすぐにロボットのメインプログラムの作成に取り掛かりました。
今回はロボットのフレームワークにROS(Robot Operating System)を使ったのですが、このROSの使い方があまりわかっておらずROSのチュートリアルを読むことから始まりました。ですがチュートリアルを読んだだけではどうプログラミングして良いかわからなかったためAPIを読んだところ、ソースコードを読んだ方が早いということに気づきました。これでROSのtopicやframeをどうやってプログラムで指定すれば良いかやっとわかりました。

turtlebotで地図生成しています。PS3リモコンでturtlebotを操縦しています。
アルゴリズムはLIDARでSLAMを書き初期地点と目標地点を設定するとロボットが自動的に目的地に向かうものです。ROSのパッケージに入っているものをそのまま使いました。ロボットの位置情報はLIDARを使った地図マッチングとturtlebotのエンコーダ情報を使って判定しています。  地図マッチングを行うため事前に走行する場所の地図をロボットを操縦することによって生成しました。

地図走行中です。
 今回の走行記録は20mでした。

練習では70m進んだのですが、このような結果になったのは、練習ではスタート地点付近に人が全くいなかったのですが本番ではスタート地点に特に人が集合していたため、地図マッチングに支障が出てしまったためと考えられます。
 また、地図走行のときはLIDARの情報があるのに障害物回避をしてくれず、この原因を解決できませんでした。最近、amcl設定ファイルのLIDARデータのsubscriber idをbase_frameにする必要があったと判明し、今では地図走行時でも障害物回避が可能です!
 今回はGPSの情報を経路生成に利用しませんでしたが、その理由は実際の走行経路とGPSの位置情報に大きなズレがあったためエンコーダ情報の補正等には使用できませんでした。
 amclを使ったウエイポイント走行のプログラムを製作したのですがうまく動いてくれませんでした。これはウエイポイント走行時に指定した座標系がロボットのlocal座標系でmap座標系(frame_idをmapに)に指定しなければならないと判明しました!現在ではウエイポイント走行ができるようになりました!

turtlebot Kobuki http://www.turtlebot.com/
 今回最も収穫になったことは、室内用に作られているturtlebotが屋外でも走ることができたことを発見したことです!走行した道は落ち葉や大きめの木の枝が大量に落ちていたのですがその上でも難なく走行していました!さすがにおおきめの石は乗り越えることができず止まってしまいましたがこれであれば外でも自律走行できます!

筑波大学知能ロボット研究室のロボット
つくばチャレンジに出場していたロボットは多種多様でした!USTREAMを見ていた皆さんもひとつひとつのロボットが異なっていて楽しかったのではないでしょうか。筑波大学の佐々木さん、turtlebotのことを色々教えてくれた大阪工業大学の教授、ROSのことを教えてくれた千葉工業大学の前川さん、トライアル前に色々とサポートしてくれた金沢工業大学の西川さん、つくばチャレンジという有意義な大会を開いてくれた運営の皆さん、そのほか色々な方にアドバイスをいただき本当にありがとうございました。


 このturtlebotを改造してRoboCup@home leagueに出場する予定です。

2014年10月16日木曜日

turtlebot2をros hydro上でethernet接続のHOKUYO-30LX-EWを使ってrvizに表示する方法

 
 turtlebot2でHOKUYO-30LX-EWをros hydro上でrvizで利用できるようにしたので方法を紹介しておきます。
1. terminalに
  %roscore
    %roscd turtlebot_bringup/launch
2. %sudo chmod 777 minimal.launch

    %emacs -nw minimal.launch
<node name="laser_driver" pkg="urg_node" type="urg_node">
   <param name="frame_id" value="base_laser_link" />
       <rosparam>
      publish_intensity: false
      angle_min: -2.2689
      angle_max: 2.2689
      cluster: 1
      skip: 0
      ip_address: 192.168.0.10
      ip_port: 10940
      serial_port: /dev/ttyACM0
      frame_id: laser
      calibrate_time: true
      time_offset: 0.0
      publish_multiecho: true
    </rosparam>  
 </node>
を</launch>より上に入力

3. %sudo chmod 777 3dsensor.launch
    %emacs -nw 3dsensor.launch
    <arg name="scan_topic" default="scan" />
     を
    <arg name="scan_topic" default="kinect_scan" />
 に置き換え
4. terminalで
    %roslaunch turtlebot_bringup minimal.launch
     %rosrun rviz rviz
    rviz上で
      Fixed Frame : base_laser_link
    を選択

2014年9月21日日曜日

Pepper Tech Festival



Saintです。
僕はロボットが世界の人々の生活を向上させると信じています。
Pepper Tech Festivalに行って来ました。ロボットショー、展示ブース、SDK体験コーナー、開発秘話など色々面白い話が聞けました。
Pepperは人を助けるロボットでアルデバランロボティクスとソフトバンクが開発しました。来年の2月に一般販売される予定です。
これはスマホアプリと同じようにロボットアプリ開発が可能です。(C++,Python, java, GUI)
GUIのプログラミング環境もあるので初心者でも簡単にアプリが開発できます。また、今までにスマホアプリを開発したことのないロボットエンジニアの方でもpython,java, C++でプログラミングが可能なのでアプリ開発がしやすいです。
Pepperでロボアプリを開発してみたいです。
Pepperに限らず世界でロボット開発が盛んになり、ロボットコミュニティが発展して良い世の中になるといいと思っています。

I believe that Robot can make our Quality Of Life better.
I went to the Pepper Tech Festival held in Tokyo, Japan. Pepper is a companion robot developed by aldebaran robotics . The robot size is bigger than NAO from aldebaran robotics. It will be sold in next February. You can see the specifications of the robot on the aldebaran web.
You can develop pepper's software using its SDK. It has Graphic User Interface for programming, enables to do robot programming for beginners.  For advanced users, it is able to program in java, C++, and python. Now only python is able to programming both in graphical interface and the text code. There will be a pepper app store in near future.
I'm going to develop apps for pepper. Wishing for many robot developers come to this field and the development of the robot communities. 

つくばチャレンジ用ロボット Making the robot for Tsukuba Autonomous Robot Challenge

シャーシ設計 Design of the chassis
Saintです。
つくばチャレンジ用のロボットのシャーシ設計加工、GPSの性能試験を行いました。
 ROSでhokuyoのlidarをrvizで見るコンフィギュレーションをubuntu上で行なっていて苦戦中です。

For the Tsukuba Autonomous Wheelchair challenge, I did the benchmark test of the GPS, designing  the chassis of the robot, and cut the chassis with CNC.
I'm trying to see the data of the Hokuyo LIDAR through rviz using ROS in ubuntu, but it's not working well. If you have any tips about it, please tell me.

2014年8月19日火曜日

セキュリティキャンプ2014

8/12~8/16,セキュリティキャンプ全国大会2014に応募し、参加してきました。
僕の参加したのはセキュアなシステムを作ろうクラス組み込みのセキュリティを考えようゼミです。
応募からキャンプ終了までのことをまとめました。


・応募用紙

「ロボットには組み込みシステムが多く使われていて、今後ますますネットに接続するようになっていくと思われる。ロボットがハッキングされて人に危害を与える恐れがあり、組み込みシステムのセキュリティ向上が必須、自分でロボットのセキュリティを向上しなければと思った。」というようなことを書いた。また、組み込みシステムでのprintfの問題はバッファ領域が大きいため容量の小さい組み込みシステムに向いていないことと組み込みの標準出力ストリームの場所はどこか、等のことを書きました。あとは自分の今までのものづくりの興奮と経験を書きました。開発テーマは組み込みIDS、IPSにしました。「もし割りばしとゴムと針金と布があったらな何を作るか」という問いにはすぐ僕はロボットのキック装置(リンク機構)がひらめきました。ものづくりを実際している人でないとアイディアを思いつくのが難しいと思います。何回も表現や図写真を推敲しました。
応募用紙の一部



















事前学習
raspbian
ARMマイコンのアーキテクチャ・アセンブリについて学習しました。坂井先生が課題を出し、それを僕が解決していくという形です。はじめてraspberry pi(raspbian)を使う機会になりました。その後は本題のIDS,IPSを開発するための通信プロトコルの知識、raspberry piでネットワーク設定をしたり、パケットを自作したり、他にはバッファオーバーフローについて学習しました。全く知らない知識を一から学習し、これのおかげでセキュキャンの内容についていくことができるようになりました!新しいことが学べる、楽しくてしょうがない夢のような事前学習でしたが、SICTIC2014等の大会イベントが重なって自分は7/30以降は事前学習できませんでした。

raspberry pi
・セキュリティキャンプ北陸勢との関わり
チューター2人と競技者2人、合計4人が北陸からセキュリティキャンプ2014参加と知りました!西永チューターから7月開催のKernel/VM探検隊in北陸という勉強会に誘ってもらい、初めてのことで緊張しましたが、とても嬉しかったです。翌日のNT金沢でも会うことが出来ました!そこで北陸のOS,rubyやD言語に詳しい福井の高2生や組み込みを極めている大学生、院生のチューターにセキュリティキャンプで会う前に知りあうことができました。またKernel/VMではその他の人々とSNS上でつながることが出来、世界が広がりました!

・1日目
  名刺交換会。いろいろな開発を行なっている人々がいて興味深かったです。豪華なIT企業グッズ、各クラスの本、ソフトイーサ株式会社代表取締役のスーパーハッカーな講演等色々興奮した一日でした。セキュアなコンビニツアー(謎)に参加しそびれました。グループワークの時間にテーマは僕が提案した「家具インジェクション」になり、チーム名は「セキュアぴょんぴょん」に決定しました。専門講義ではライセンスの話が興味深かったです。今までBSDやCCライセンスは耳にした程度だったのですが、詳しい話が聞けました。この日はぐっすり眠りました。

・2日目


 専門分野講義と実習。ARP Spoofingという通信偽装法を使って攻撃者に感知されないIDSを開発する形になりました!攻撃者PC(OpenSUSE, FreeBSD, Windows), 標的PC(Ubuntu), IDS(Raspberry pi)の3つのネットワーク設定をしました。特に大変だったのは初めて触ったUNIXディストリビューションのFreeBSDとOpenSUSE上の設定です。 自作ARPパケットを送信してARP Poisoningを行い通信偽装が手動でできるようになりました。午後8時からはBOFがあり、僕は最新のサイバー攻撃事情の講演とハードウエア実習に参加しました。10年前のルーターを解体して構造やMCUを調べました。IDSの開発の可能性が広がりました。この日からIDSの発表資料を製作し始めたので夜遅く(午前2時ぐらい)までかかるようになりました。

・3日目

午前はマイクロトレンド社の見学。組み込みの分野のセキュリティリテラシーが最近高まってきていることが分かりました。
3時間通信偽装のための送信パケット変換プログラムを書いていたのですがIDSなのにARP/ICMP Stormというサイバー攻撃を行う面白いことが発生。おかしいなと思っていたら既存のフレームワークである坂井先生が開発したpkt-toolsのスクリプトキディであれば改善できることが判明!pkt-tools,とても優秀なツールです!shを製作した後IDSの機能としてSSH等の暗号通信を遮断する機能をつけました。IDSをgithubにcommit。IDSを発表を夜遅くに完成させて次の日の発表に備えました。この日はコーヒー,Red Bull,リポビタンDのお世話になりました。

 ・4日目

Embedd IDS on github  午前はIDSの発表。本番環境での設定時間が足りず、デモは思ったようにいきませんでしたが、SSH通信で動作していることは確認でき、笑いをとることができました。
午後はCTF.4人チームで行うセキュリティ競技です。僕以外のチームメンバーがスペシャリストで高得点をとってくれました!「セキュアぴょんぴょん」チームは2403ポイント獲得で惜しくも4位!僕がもっと問題を正解できれば入賞していたはず。。。すみません。<m(__)m>
CTFの妨害コンテンツがとても面白かったです。


・5日目



午前はグループワークの発表。近未来、家具がハッキングされ、恐ろしいことになるということを発表。笑いがとれていてうれしかったです。午後はクラス発表。ネットワーククラスが組み込みのネットワークセキュリティについて学習していたそうで、僕も興味を持ちました。作ろうクラスは悪意のあるルーターと組み込みシステムのコアダンプの発表。閉会式では修了証書をもらい、ARMマイコンとリンカローダについての本を頂きました!本の執筆者である坂井先生にサインを頂くことができてとても感激です!最高の5日間でした!グループワークのメンバー、KERNELVM勉強会に誘ってくれた西永チューター、IDS開発のサポート、アドバイスをしてくれた木藤チューター、事前課題の用意やIDS開発の指針を与えてくれた坂井先生、組み込みゼミのメンバー、ルーター自作ゼミに誘ってくれた竹迫先生、トレンドマイクロの皆様、ソフトイーサの登さん、運営のまっちゃだいふくさんその他運営の皆様、スポンサー企業、その他参加者、素晴らしい大会をありがとうございました!
これから組み込みIDS開発がんばりたいと思います。そして次世代のロボットにセキュリティを取り入れていきたいです。

2014年8月6日水曜日

SICTIC2014

調整
ICT部門の様子。発表の内容が大人が参加する勉強会と同じ
日本代表 ロボットサッカー部門Award of Excellence受賞
ごちそうの北京ダックを頬張る
中国のロボット教室で体験
SIGVerse, RoboCup@home simulationの発表を行う
障害物を目的地に運ぶタスクをクリア!
I participated in the Schoolastic ICT Innovation Competition in China(SICTIC) 2014 , hold by China Ministry of Education and China Moblie,  from 7/30 to 8/4. I was the leader of the Japan team.

The 1st day. The plane to China had delayed for 4 hours. we finnaly arrived the hotel at 2 A.M!
1日目。飛行機の到着が4時間遅れになり現地についたのは午前2時。ホテルに到着するとすぐに寝ました。

The 2nd day. Elementary and Junior high school student took part in the robot competition today in schedule.The Japan team had occurred a lot of troubles in the robots, broken computer, chassis breakdown, broken terrestrial sensor, program errors, etc, but all of us solved each problem before the match.
2 of the Japan team members battled with Chinese team. The Chinese robot was high speed and also controllable. The Chinese participants were programming very hard.
2日目。ロボットサッカー部門は小中学生の部だけが試合でした。日本チームは調整時僕を含め皆ロボットにトラブルが発生しました。CPU故障、シャーシ大破、地磁気センサ故障、プログラムが作動しない等色々なことがありましたが、全員試合前に無事問題を解決できました。日本代表の2名が中国チームと対戦しました。中国のロボットは高スピードで動いているのですが制御できていました。中国の選手達が熱心にプログラミングしている様子が見受けられました。

The 3rd day. Senior high school students participated in the robot competition today. 2 of the Japan team including me, not from the yesterday Japanese participants, battled with the Chinese team. Because the opponent robot loose the power weak, we could do a close game, 2-1, 1-1, 1-2. We figured it out Chinese robot algorithm and tactics were brilliant from the power loosing.
Chinese students were  programming in C/C++, CUI.

 3日目。ロボットサッカー部門 高校生の部です。僕を含む2名が中国チームと対戦しました。相手がパワーを緩めたためやっと2-1, 1-1,1-2という接戦ができました。スピ ードを緩めてこの結果だったことからロボットの戦術もしっかりしていることが把握できました。中国の選手はC/C++と思われるCUIのプログラミングをしていたようです。

The 4th day. All of the Japan team participants achieved the Award of Excellence in the awarding ceremony. After that we did an international exchange, between the American participants taking part in the WER(it's similar to WRO, FLL), in the Chinese Dinosaur museum. We ate special cuisine, Beijing Duck, in dinner. It was so delicious, Japanese participants including me became so happy!

4日目。表彰式で日本代表チームは Award of Excellenceを受賞しました。その後現地の恐竜博物館でWER(Ablixが主催するロボットリーグでWROに似ている)に参加しているアメリカチームと交流しました。夜はごちそうの北京ダックをいただきました。

The 5th day. We did an interchange between the children who are doing robotics in China. We did a line trace challenge, carrying object to the goal using line, with Chinese robot enthusiastic children , 2 by 2. I did a presentation of my robot development there.

5日目。ロボットをしている中国の子供達と交流しました。ロボット教室で一緒にチームを組んで自分達でロボットを製作し物体をライントレースを使って目的地まで運ぶタスクをクリアしました。他にも、自分は今まで行ったロボット開発について発表しました。


The 6th day. We returned to Japan in schedule.

6日目。時間どおりに帰国しました。

I often hear that Chinese children is willing to win the game using the strongest robot, developed by company, without knowing the specifications and programming. I had the same opinion before competing to SICTIC2014.
However, Chinese participants were programming aggressively, I felt the enthusiasm coming from them. They were using the "strongest robot ", however,
they customized the robot, putting black tape so that other robot can't look the ball, putting wheel protection, and in the robot school which I visited, the Chinese children were customizing the robots. The customization didn't look well, non-customization looks better than that, but I noticed they were trying to make the robots by themselves. Different from before, the Chinese children is trying to understand robotics, and becoming assertively to customize robots and coding, from the SICTIC2014.


「中国の子供たちはロボットのことを全くわからずに企業がつくった最強のロボットキットを使用して大人の作ったプログラムをそのまま使って勝とうとしている」と日本ではよく耳にします。僕も今まではそう思っていました。
SICTIC2014では中国の高校生が熱心にプログラミングしている姿が見えました。ロボットキットは使っていますが、ボールが車輪にあたったとき弾かないように簡単な改造をしたり、黒テープを巻いてボールを隠そうと図るなど日本のロボカップジュニアに参加している選手と同じように、自分で工夫しているチームもいました。また、訪れた中国のロボット教室の子供達はロボットキットを改造してかっこ悪く壊れやすそうな形のロボットになっていました。自分たちで製作している様子が伺えました。今までとは違い、現在の中国の子供達はロボットを自分たちで理解しようとし、改造やプログラミングも積極的に行うようになってきていることがSICTIC2014では感じられました。