2016年12月5日月曜日




今までロボットシミュレータでROSの使い方を習得してきましたが、そろそろ実際のロボットをROSで動かしてみたいと思います。

実際のロボットを入手しROSで動かすには、「ロボットを作る」必要があります。モーターとRaspberry PiやArduinoなどを使うことで自作することが可能です。
本記事では、比較的安価にロボットを作ることを目標にしつつも、電子回路やオムニホイールの制御を学びつつROSによるロボット制御の学習を進めていきたいと思います。

[コラム]ROSで始めるロボティクス(10) ー オムニホイールで全方向移動可能ロボットを作る 1




今までロボットシミュレータでROSの使い方を習得してきましたが、そろそろ実際のロボットをROSで動かしてみたいと思います。

実際のロボットを入手しROSで動かすには、「ロボットを作る」必要があります。モーターとRaspberry PiやArduinoなどを使うことで自作することが可能です。
本記事では、比較的安価にロボットを作ることを目標にしつつも、電子回路やオムニホイールの制御を学びつつROSによるロボット制御の学習を進めていきたいと思います。
今回は2台のHoloLensを使い、「シェアリング(空間共有)」を利用して片方のHoloLensで操作しているユニティちゃんをもう片方のHoloLensで表示させたいと思います。

【HoloLens開発】ユニティちゃんとHoloLensで戯れる - シェアリング編1 -

今回は2台のHoloLensを使い、「シェアリング(空間共有)」を利用して片方のHoloLensで操作しているユニティちゃんをもう片方のHoloLensで表示させたいと思います。

2016年11月22日火曜日

今回は前回実装したSpatial Mappingで作成された空間をXbox Oneコントローラーを使ってユニティちゃんを走らせてみたいと思います。


【12/01動画追加】【HoloLens開発】ユニティちゃんとHoloLensで戯れる - ゲームパッド編 -

今回は前回実装したSpatial Mappingで作成された空間をXbox Oneコントローラーを使ってユニティちゃんを走らせてみたいと思います。


2016年11月18日金曜日


今回はステレオカメラです。この機能自体はROSのパッケージを導入すれば実現可能ですが、よい結果を得るためにはキャリブレーション(校正)をしっかりと行うことがステレオ性能を左右する重要な要素となります。

今回はステレオカメラを良好に動作させるためのキャリブレーション方法について紹介いたします。

ROSで始めるロボティクス(9) ー ROSを使ったステレオカメラキャリブレーション


今回はステレオカメラです。この機能自体はROSのパッケージを導入すれば実現可能ですが、よい結果を得るためにはキャリブレーション(校正)をしっかりと行うことがステレオ性能を左右する重要な要素となります。

今回はステレオカメラを良好に動作させるためのキャリブレーション方法について紹介いたします。

2016年11月9日水曜日

今回は表示編で予告していた、HoloLensの「Spatial Mapping(空間認識)」を実装します。


【HoloLens開発】ユニティちゃんとHoloLensで戯れる - 空間認識編 -

今回は表示編で予告していた、HoloLensの「Spatial Mapping(空間認識)」を実装します。


2016年10月31日月曜日

前回はHololensにユニティちゃんを表示させただけでしたが、今回はそのユニティちゃんを音声認識で動かしたいと思います。


【HoloLens開発】ユニティちゃんとHoloLensで戯れる - 音声認識編 -

前回はHololensにユニティちゃんを表示させただけでしたが、今回はそのユニティちゃんを音声認識で動かしたいと思います。


2016年10月17日月曜日


ROSではロボットを目的の位置まで移動させるためのライブラリ群であるNavigationスタックが用意されています。自作のロボットでNavigationスタックが使えるようにしていきたいと思います。



ROSで始めるロボティクス(8) ー ロボットのナビゲーションを行う


ROSではロボットを目的の位置まで移動させるためのライブラリ群であるNavigationスタックが用意されています。自作のロボットでNavigationスタックが使えるようにしていきたいと思います。




前回までの作業でシミュレータ上で動くロボットが準備出来ましたが、今のままでは人が指示を出して動くただのラジコンでしかありません。
ここからは、障害物を避けながら目的の位置まで自立で移動するようにしていきましょう。

まずは地図を用意します。人間でも知らない場所に行く時には事前に地図を確認しますよね。ロボットにも同じように地図が必要になります。

ROSで始めるロボティクス(7) ー ロボットのための二次元mapを作る


前回までの作業でシミュレータ上で動くロボットが準備出来ましたが、今のままでは人が指示を出して動くただのラジコンでしかありません。
ここからは、障害物を避けながら目的の位置まで自立で移動するようにしていきましょう。

まずは地図を用意します。人間でも知らない場所に行く時には事前に地図を確認しますよね。ロボットにも同じように地図が必要になります。

PMD CamBoard pico flexxは3D形状を認識することが可能な非常に小型のToFセンサーです。たまたま別部署用に購入していたものを借りることが出来ましたので、色々試してみました。

このセンサーはとにかく小さいです。ミントケースの半分ぐらいのセンサーで十分な解像度のToFセンサーなので、使い勝手は最高です。早速、ロボットのセンサーに使うため、ROSで使えるように環境を整えていきましょう。



ROSで始めるロボティクス(6) ー ROSでデプスカメラPMD CamBoard pico flexxを使う


PMD CamBoard pico flexxは3D形状を認識することが可能な非常に小型のToFセンサーです。たまたま別部署用に購入していたものを借りることが出来ましたので、色々試してみました。

このセンサーはとにかく小さいです。ミントケースの半分ぐらいのセンサーで十分な解像度のToFセンサーなので、使い勝手は最高です。早速、ロボットのセンサーに使うため、ROSで使えるように環境を整えていきましょう。




ロボットに使用される定番センサーとしてステレオカメラやレーザーレンジファインダーなどがあります。これらを使うことで、ロボットの周囲の環境を判定し、ロボットの動作を決めることができるようになり、ロボットの自立制御の第一歩となります。
センサーのその他の選択として、マイクロソフト社Kinectやインテル社のRealSenseといった、デプスカメラなどが挙げられます。今回はロボットシミュレータにデプスカメラを追加していきます。



ROSで始めるロボティクス(5) ー GazeboでToFセンサーをシミュレーションする


ロボットに使用される定番センサーとしてステレオカメラやレーザーレンジファインダーなどがあります。これらを使うことで、ロボットの周囲の環境を判定し、ロボットの動作を決めることができるようになり、ロボットの自立制御の第一歩となります。
センサーのその他の選択として、マイクロソフト社Kinectやインテル社のRealSenseといった、デプスカメラなどが挙げられます。今回はロボットシミュレータにデプスカメラを追加していきます。




ロボットシミュレータとしてGazeboを使用します。Gazeboはオープンソースで開発されたロボットアプリケーション開発のための動力学シミュレータです。ROSとも連携しており、モータのみならず、ToFセンサやカメラなどもシミュレーション出来ます。


ROSで始めるロボティクス(4) ー シミュレータ上でロボットを動かしてみる


ロボットシミュレータとしてGazeboを使用します。Gazeboはオープンソースで開発されたロボットアプリケーション開発のための動力学シミュレータです。ROSとも連携しており、モータのみならず、ToFセンサやカメラなどもシミュレーション出来ます。



実際のロボットを動かす前に、シミュレータで動かしてみましょう。
まずは、ロボットのモデリングです。

次のような2つのモーターと2つの車輪で動作する移動ロボットを定義しましょう。




ROSで始めるロボティクス(3) ー 差動二輪ロボットを準備する


実際のロボットを動かす前に、シミュレータで動かしてみましょう。
まずは、ロボットのモデリングです。

次のような2つのモーターと2つの車輪で動作する移動ロボットを定義しましょう。





それではROSの開発環境をインストールしていきます。現在ROSの最新バージョンは「Kinetic Kame」ですが、ここでは「Indigo Igloo」を使用します。というのも、このバージョンはユーザーも多く、サポートする周辺のライブラリも多いため、最初はこのバージョンを選択しておくのが無難だからです。

ROSのサイト。http://www.ros.org/ ROSに関する情報はこのサイトを確認しよう。


ROSで始めるロボティクス(2) ー ROSのインストールとセットアップ


それではROSの開発環境をインストールしていきます。現在ROSの最新バージョンは「Kinetic Kame」ですが、ここでは「Indigo Igloo」を使用します。というのも、このバージョンはユーザーも多く、サポートする周辺のライブラリも多いため、最初はこのバージョンを選択しておくのが無難だからです。

ROSのサイト。http://www.ros.org/ ROSに関する情報はこのサイトを確認しよう。



皆さんは、「ロボット開発」と聞いてどんなイメージをお持ちでしょうか。「難しい」「専門知識が必要」「大量のプログラミングが必要」そんなイメージの方も多いのではないでしょうか。本連載ではROSを使用することで手軽に「ロボット開発」を行います。ROSではロボットの「シミュレータ」環境も充実しており、「動作するロボット」がなくても開発することが可能です。
本連載ではROSを使って差動二輪ロボットを作成し、シミュレータ上でうごかしていきます。連載を通じてROSのイメージを掴んていくことができます。また実際のToFセンサーも扱います。実際に動くロボットも作成していきます。



ROSで始めるロボティクス(1) ー The Robot Operating System


皆さんは、「ロボット開発」と聞いてどんなイメージをお持ちでしょうか。「難しい」「専門知識が必要」「大量のプログラミングが必要」そんなイメージの方も多いのではないでしょうか。本連載ではROSを使用することで手軽に「ロボット開発」を行います。ROSではロボットの「シミュレータ」環境も充実しており、「動作するロボット」がなくても開発することが可能です。
本連載ではROSを使って差動二輪ロボットを作成し、シミュレータ上でうごかしていきます。連載を通じてROSのイメージを掴んていくことができます。また実際のToFセンサーも扱います。実際に動くロボットも作成していきます。



2016年9月6日火曜日

UnityもVisual Studioも触ったことのなかった筆者が、Unity公式キャラクターである『ユニティちゃん』を使ってHololens開発をしてみます。その第1回目としてユニティちゃんをHoloLensで表示してみます。


【HoloLens開発】ユニティちゃんとHololensで戯れる - 表示編 -

UnityもVisual Studioも触ったことのなかった筆者が、Unity公式キャラクターである『ユニティちゃん』を使ってHololens開発をしてみます。その第1回目としてユニティちゃんをHoloLensで表示してみます。


2016年8月29日月曜日


HoloLensの肝であるHPUチップは○○で出来ていた!?

法人向けHoloLens(Commercial Suite)が発売!追加された新機能とは?等の最新情報に加え、HoloLensに関する基本的な知識を今回の記事で書いていきます。次回、Part3の記事では、遂にHoloLens開発の中身を書いていきますのでご期待ください!
連載目次
Part3: 【HoloLens開発】日本での発売に備える実機開発 開発編(仮名)
本記事目次
 機能

【HoloLens開発】日本での発売に備える実機開発 基礎知識編


HoloLensの肝であるHPUチップは○○で出来ていた!?

法人向けHoloLens(Commercial Suite)が発売!追加された新機能とは?等の最新情報に加え、HoloLensに関する基本的な知識を今回の記事で書いていきます。次回、Part3の記事では、遂にHoloLens開発の中身を書いていきますのでご期待ください!
連載目次
Part3: 【HoloLens開発】日本での発売に備える実機開発 開発編(仮名)
本記事目次
 機能

2016年8月19日金曜日

HoloLensは13m先の壁まで認識できる!?


HoloLensの実機を使ったからこそ分かったことを装着感・空間把握・視野・酔い・ジェスチャー操作・HoloLensに向いている用途・向いていない用途という7項目に分けて書いていきます。


連載目次
Part3: 【HoloLens開発】日本での発売に備える実機開発 開発編(仮名)

【HoloLens開発】日本での発売に備える実機開発 体験編

HoloLensは13m先の壁まで認識できる!?


HoloLensの実機を使ったからこそ分かったことを装着感・空間把握・視野・酔い・ジェスチャー操作・HoloLensに向いている用途・向いていない用途という7項目に分けて書いていきます。


連載目次
Part3: 【HoloLens開発】日本での発売に備える実機開発 開発編(仮名)

2016年6月8日水曜日



「Project Tango」とは、MotionTracking、DepthSensing、VisionProcessingを組み合わせて対象物との距離を正確に把握し、リアルタイムで目の前の空間を3DキャプチャするというGoogleの開発プロジェクトです。今回Keynoteでは大きく発表されなかったProjectTangoですが、GoogleI/O会場では、デモ用のスペースが用意されたり、セッションも多く行われプロジェクトに対するGoogleの意気込みを感じました。

本記事では、ProjectTangoについてのセッションの内容をご紹介したいと思います。

[Google I/O 2016] ProjectTangoについて、セッション内容まとめ



「Project Tango」とは、MotionTracking、DepthSensing、VisionProcessingを組み合わせて対象物との距離を正確に把握し、リアルタイムで目の前の空間を3DキャプチャするというGoogleの開発プロジェクトです。今回Keynoteでは大きく発表されなかったProjectTangoですが、GoogleI/O会場では、デモ用のスペースが用意されたり、セッションも多く行われプロジェクトに対するGoogleの意気込みを感じました。

本記事では、ProjectTangoについてのセッションの内容をご紹介したいと思います。

2016年6月3日金曜日

はじめに

Googleに買収された Firebase が、Googleサービスに統合されより使いやすく強力になりました。またFirebaseの持つリアルタイム性を生かした IoTプロジェクトも現れてきています。今回はI/Oに発表されずにいた小粒ななIoTプロジェクトに焦点を当て、Googleに統合されたFirebaseの設定やIoTとしての活用方法について紹介いたします。


Googleに統合されたFirebaseを使ってIoTとスマホの連携を実践する

はじめに

Googleに買収された Firebase が、Googleサービスに統合されより使いやすく強力になりました。またFirebaseの持つリアルタイム性を生かした IoTプロジェクトも現れてきています。今回はI/Oに発表されずにいた小粒ななIoTプロジェクトに焦点を当て、Googleに統合されたFirebaseの設定やIoTとしての活用方法について紹介いたします。


2016年5月20日金曜日

遂にGoogle I/O 2016が始まりました。
今年は会場が例年使用されていたサンフランシスコのMosconeCenterWestから、Google本社に隣接するShorelineAmphitheatreに変更されました。屋外になったことにより雰囲気が変わった会場の様子などをレポートしたいと思います。
会場の最寄り駅は、MountainViewになりました。駅から会場までは徒歩で30分以上かかるので、シャトルバスが出ています。一見Googleのシャトルバスには見えません。

会場に到着しました。入り口には、I/O用にカスタマイズされたドロイドくんが置かれています。

会場には朝ご飯用のテントが用意されています。ドーナツは激甘でした。


いよいよKeynoteです。前回までは、当日先着順で入場できましたが、今回からは前日の参加証受け取り時に入れるエリアが決定されます。筆者は101になりました。


Keynoteの会場は野外ステージだけあり、明るい雰囲気です。Googleの新しい技術やサービスが多く紹介されました。詳しくはこちらの記事でまとめています。





Keynoteが終わり、昼食を食べます。昼食は以下のようなLunchBoxをもらいます。種類は5種類ほどあり、以下はチキンバーガーの写真です。



午後からは各Stage毎に行われるセッションを見ていきます。Stageごとに大小様々なテントが置かれています。人気のセッション前には長蛇の列ができます。





いくつか参加したセッションを紹介したいと思います。

・What's new in Android
AndroidNの新機能を解説するセッションです。安定性を高めることに重視していると言われる”N”ですが、それだけではなく多くの新機能が追加されています。Multi-Windowや新しくなったDozeMode, グラフィックAPIのVulkanなど、バリエーション豊かな新機能の概要が紹介されました。



・Streaming media with ExoPlayer
ExoPlayerとは、Googleが開発したMediaPlayerライブラリです。MPEG−DASH, SmoothStreaming, HLSなどのアダプティブストリーミングに対応しています。筆者自身ストリーミング技術に注目し、日々勉強中ですが、Androidアプリにてストリーミング再生するには、とても使いやすいと感じました。本セクションでは、ExoPlayerの概要、使い方などを説明しています。




・Designing for driving
AndroidAutoのUIを実装する上での注意点と解決策をまとめたセッションです。ドライバの状態に対し、どのようなUIが使いやすく、また事故を防止できるかなどが、詳しく説明されています。弊社が力を入れている車載関係のセッションなだけに、興味深い発表でした。




各セッションの動画は以下のサイトで見ることができます。


夜はコンサートが行われ、野外会場ならではの盛り上がりを見せました。


今回GoogleI/Oを体験して、各技術やサービスに対しての強いこだわりや想いをより感じました。次回の記事では、各セッションで発表された技術についてサンプルコードなどをまじえ、まとめたいと思います。今回発表された新しい技術やサービスをいち早く吸収し、次のイノベーションに備えましょう。

Google I/O 2016 現地レポート

遂にGoogle I/O 2016が始まりました。
今年は会場が例年使用されていたサンフランシスコのMosconeCenterWestから、Google本社に隣接するShorelineAmphitheatreに変更されました。屋外になったことにより雰囲気が変わった会場の様子などをレポートしたいと思います。
会場の最寄り駅は、MountainViewになりました。駅から会場までは徒歩で30分以上かかるので、シャトルバスが出ています。一見Googleのシャトルバスには見えません。

会場に到着しました。入り口には、I/O用にカスタマイズされたドロイドくんが置かれています。

会場には朝ご飯用のテントが用意されています。ドーナツは激甘でした。


いよいよKeynoteです。前回までは、当日先着順で入場できましたが、今回からは前日の参加証受け取り時に入れるエリアが決定されます。筆者は101になりました。


Keynoteの会場は野外ステージだけあり、明るい雰囲気です。Googleの新しい技術やサービスが多く紹介されました。詳しくはこちらの記事でまとめています。





Keynoteが終わり、昼食を食べます。昼食は以下のようなLunchBoxをもらいます。種類は5種類ほどあり、以下はチキンバーガーの写真です。



午後からは各Stage毎に行われるセッションを見ていきます。Stageごとに大小様々なテントが置かれています。人気のセッション前には長蛇の列ができます。





いくつか参加したセッションを紹介したいと思います。

・What's new in Android
AndroidNの新機能を解説するセッションです。安定性を高めることに重視していると言われる”N”ですが、それだけではなく多くの新機能が追加されています。Multi-Windowや新しくなったDozeMode, グラフィックAPIのVulkanなど、バリエーション豊かな新機能の概要が紹介されました。



・Streaming media with ExoPlayer
ExoPlayerとは、Googleが開発したMediaPlayerライブラリです。MPEG−DASH, SmoothStreaming, HLSなどのアダプティブストリーミングに対応しています。筆者自身ストリーミング技術に注目し、日々勉強中ですが、Androidアプリにてストリーミング再生するには、とても使いやすいと感じました。本セクションでは、ExoPlayerの概要、使い方などを説明しています。




・Designing for driving
AndroidAutoのUIを実装する上での注意点と解決策をまとめたセッションです。ドライバの状態に対し、どのようなUIが使いやすく、また事故を防止できるかなどが、詳しく説明されています。弊社が力を入れている車載関係のセッションなだけに、興味深い発表でした。




各セッションの動画は以下のサイトで見ることができます。


夜はコンサートが行われ、野外会場ならではの盛り上がりを見せました。


今回GoogleI/Oを体験して、各技術やサービスに対しての強いこだわりや想いをより感じました。次回の記事では、各セッションで発表された技術についてサンプルコードなどをまじえ、まとめたいと思います。今回発表された新しい技術やサービスをいち早く吸収し、次のイノベーションに備えましょう。

Related Posts Plugin for WordPress, Blogger...