メニュー

技術ブログ

Denso IT Lab.社員による技術情報の紹介

Denso IT Laboratory researcher's blog sites

数式

RSS

ページトップへ

数年ぶりに開発合宿

「ROSを学ぶ」ということをお題目に有志メンバーで開発合宿に行ってきました.

目標タスク

・ROSの基本を理解する
・EV3をROSで動かせるようにする
・MATLAB Robotics Toolboxを試す
・Gazeboを使い,仮想環境でロボットを動かす
・EV3をMATLABから動かす
・なんかおもしろいことをやる

という目標をゴールに合宿しました.

背景

実は,合宿の前日にROS2.0がリリースされ,ROS1.0とコンセンプトも大きく異なり,もはや1.0のままでROS合宿をやることに意義があるのかという疑義を頭の片隅に残しながらの,合宿スタートとなりました.
ロボットを動かすところまで行った時点で,ネタを作りにいく派と,ROS2.0へチャレンジ派の二派に別れ,それぞれ作業しました.
各メンバー好きに作業して,色々結果がでて面白かったのですが,一番ネタ的におもしろかったのを紹介します(徹夜の麻雀のテンションなんでシラフでみると・・・・).

成果物

多分,大多数の人にとって,このビデオは,何をやっているのかわからないと思います.
これは,ノートPCについたカメラで仙台銘菓萩の月のパッケージを認識し.そのパッケージの傾きをUIとして,EV3を制御する様子を撮影したものです.
なぜ仙台銘菓萩の月なのかは,突っ込まないでください.

活躍した仙台銘菓の箱

このシステムは,萩の月→カメラ→MATLAB→ROS→rpyc→ev3-python→EV3本体という構成になっており,非常に迂遠かつ冗長なシステムとなっております.
後日,このシステムの(バッドノウハウてんこもりの)構築方法も紹介したいと思っています.

今回の開発でもっとも驚いたのは,MATLAB Robotics toolboxの完成度であります.
ROS1.0は,基本的にLinuxでしか動作しないのですが,MATLAB Robotics toolboxは,Windowsでも,macOSからでも,ROSを使うことができるのです.
これはすごい!!!!(ROS2.0からは,ほぼすべてのOSで動作するので・・・その辺もだいぶラクになります.ROS1.0って一体・・・・・)

合宿会場

三浦海岸マホロバマインズというホテルで行いました.
おそらく,バブル期のリゾートマンションをリノベーションしたホテルで,一室がほぼ3LDKくらいのマンションくらいの広さがあり,開発合宿にぴったりです.
季節柄,めちゃくちゃ寒かったですが,部屋から見えるオーシャンビューは最高です.

チェックアウト後は,会議室を夕方まで借りて,作業しました.

まとめ

ROS,楽しかったです.
ROS2.0からは,Windows, macOSでも動作するみたいなので,今後も引き続きフォローしていきたいと思います.
今回の合宿にあたり,乗り越えたバッドノウハウの数々は,後日・・・・公開予定です.

このエントリーをはてなブックマークに追加

Windows HPC Serverの最新動向

 

こちらは、HPC Advent Calendar 2013 の 16日のエントリです。

社内でWindows HPC Serverを活用しています。

机上実験等で、大量のデータを扱ったり、大量のトライアルを行ったりと、計算パワーを必要とすることは多いのですが、多くの場合は最新のPCのパワーで何とかなっていました。しかし、最近ではこれがビッグデータと言わんばかりのデータが持ち込まれることも多く、以前のように行かないケースも増えてきました。

弊社では社内でGPGPUの開発をする部隊がおり、その成果を研究に生かしたりもしています。GPGPUはNVidiaなどが推進するグラフィックボードを利用した効率的な並列演算を、画像描画以外のことに使おうというものですが、最近はかなり一般的になってきました。以下のような使いやすい行列演算ライブラリをリリースしています:

NTP : CPU/GPU切り替え可能な行列演算ライブラリ

このように扱いやすいHPC環境を利用できるのですが、扱える範囲は、行列演算で記述できるような処理に限られます。そうでない場合として以下のようなパターンがあります。

  • レガシーコード:そもそも改変ができない、難しいライブラリやアプリケーションを並列化したい
  • C++やMatlabへの移植が適切でない:他の言語で書かれていて、書き直すのが難しい
  • 条件分岐などが多発する処理:大規模並列化の難しい込み入った処理の場合

こういった場合でも、単に大量のデータを逐次処理したり、パラメータをSweepして感度分析を行ったり、というEmbarrassingly parallelな処理を並列化したい場合があります。そういった場合に適切なのがWindows HPC Serverのような環境だと思います。以下に導入~開発を示した文書を書きました。

Windows HPC Server のライセンスが無償に – Default Collection

単なる大量のバッチ処理を手早く終わらせたいという需要は色々なところにあるようで、財務集計処理や画像レンダリングなど特定業務の効率化に使われているという報告がMicrosoftから紹介されていました。

さて、そのようなものとしてはMapReduce環境を使うほうが普及しているかもしれません。ただMapReduceを利用しようとすると、例えば言語を選んだり(JavaとかPythonとか)コードの構成の変更が必要になったりと、手間が多いように感じます。データの効率的な分割を考えたりする必要がそれほど無ければ、HPC Serverは直感的で手間が最小限の手段と言えます。

しかし、Microsoftも巷に増えているHadoop技術者を取り込もうと、数年前からHPC Server/Azure上で稼働するHadoop環境を準備をしました。最近になり、HDInsightという便利なHadoop環境をAzure上に正式リリースし、さらにこのコミュニティに訴求しようとしています。

この辺の事情について、今回はプレゼンテーションを作りましたので、以下に公開しておきます。Hadoopもろくに知らない人間が書いていますので、間違いがあるかもしれませんが、あくまで業界サーベイ的にご覧になったらどうかと思います。


このエントリーをはてなブックマークに追加

オフィスのブログ始めます.

さて,仕事用のブログが開設されましたよ.
みんながガリガリ機械学習とかの難しい記事を書いてるかたわら,空気を読まず,コーディングについて熱く語れるといいなぁと思いますよ.

このエントリーをはてなブックマークに追加