SlideShare a Scribd company logo
1 of 5
Download to read offline
2014/11/18 
レゴマインドストームEV3×Kinect for Windows v1 
Kinectで操作するレゴの実験指導書(仮) 
Kinectで得られる骨格情報を用いて、レゴを動かします。 
Kinectでレゴを動かすサンプルプログラムは下からダウンロード。 
http://www.afrel.co.jp/kinectdownload/SampleKinectNXT.zip 
とりあえず、レゴなしでKinectで骨格情報を取得、モータのパワーを出力してみましょう。 
【C#によるKinectアプリケーションの作成方法】 
Visual Studio 2013 を用います。次の3つが作成する際の重要なポイントなので覚えてください。 
1.起動して、新規プロジェクトの作成→Visual C#のWindowsからWPF Application を選択し、プロジェクト 
名(SampleKinectNXT)をつける。
2.ソリューションエクスプローラーのプロジェクトのReference を右クリックし、Micosoft.Kinect(.dll)を参照す 
る。(Kinect SDKのバージョンはv1.8です)
3.MainWindow.xaml.cs を編集します。 
ここでダウンロードしたソリューション(VS2010で書かれている)を開き、MainWindow.xaml.cs をコピーして貼 
り付けてください。 
【レゴなしでKinectの骨格情報を取得、モータのパワーを出力するプログラムを実行する】 
1.とりあえずレゴには接続しないので、レゴに関係する部分をコメントアウトします。 
using System; 
using System.Collections.Generic; 
using System.IO.Ports; 
using System.Windows; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Shapes; 
using Microsoft.Kinect; 
//using NxtNet; 
public MainWindow() 
{ 
・・・ 
// Nxt接続ポートの初期化 
//InitializeNxt(); 
・・・ 
private void Window_Closed(object sender, EventArgs e) 
{ 
・・・ 
// NXTの停止・切断 
//DisconnectNxt(); 
・・・ 
次の関数もコメントアウトします。 
private void SetIsLinked(bool value)
以下の 
#region NXTの処理  
で囲まれた部分をすべてコメントアウトします。 
private void InitializeNxt() 
private void connectButton_Click 
(object sender, RoutedEventArgs e) 
private void ConnectNxt() 
private void disconnectButton_Click 
(object sender, RoutedEventArgs e) 
private void DisconnectNxt() 
private void SetPower(int left, int right) 
private void StopNxt() 
DriveNxt関数内のコメントアウトされた参照関数をコメントアウトします。 
private void DriveNxt 
(Dictionary<JointType, Joint> trackedJoints) 
{ 
・・・ 
// 首位置、各手首位置が水平状態になった場合、 
// NXT とKinectの連携を開始する。 … (9-4) 
//if (isLinked == false) 
//{ 
// if ( isConnected 
// && -5 <= leftPower && leftPower <= 5 
// && -5 <= rightPower && rightPower <= 5) 
// { 
// SetIsLinked(true); 
// } 
//} 
・・・ 
// 5フレーム続けてトラッキングできないときは 
//NXTを停止する 
if (5 <= notTrackedCount) 
{ 
//StopNxt(); 
・・・ 
2.次に実行するアプリケーションの表示(UI)部分(MainWindow.xaml)を編集します。 
MainWindow.xaml.csでは、rgbImage.Sourceにエラーが出ていたと思います。(赤の波線が付いている) 
private void StopKinect(KinectSensor kinect) 
{ 
・・・ 
rgbImage.Source = null; 
・・・ 
private void kinect_ColorFrameReady 
(Object sender, ColorImageFrameReadyEventArgs e) 
{ 
// ピクセルデータを 
//ビットマップに変換し画面に表示 … (4-3) 
rgbImage.Source = BitmapSource.Create 
(frame.Width, frame.Height, 96, 96, 
PixelFormats.Bgr32, null, pixel, 
frame.Width * frame.BytesPerPixel); 
・・・
これはMainWindow.xaml ファイルを編集し、KinectのRGB画像を表示する場所<Image>を作ることで解決 
します。 
関節(ジョイント)の描画も同じく、エラーが出ます。 
private Dictionary<JointType, Joint> 
DrawSkeletonFrame(KinectSensor kinect, 
SkeletonFrame frame) 
{ 
・・・ 
// ジョイントの描画をすべて削除する … (6-2) 
skeletonCanvas.Children.Clear(); 
これもxaml ファイルを編集し、Canvas を表示する場所<Canvas>を作ることで解決します。 
private void DriveNxt 
(Dictionary<JointType, Joint> trackedJoints) 
{ 
・・・ 
// 画面に出力値を表示 … (9-6) 
leftPowerText.Text = leftPower + "%"; 
rightPowerText.Text = rightPower + "%"; 
これも同様に、xaml ファイルを編集し、モータのパワーを出力するテキストの場所<TextBlock>を作ります。 
最終的なMainWindow.xaml の内容を以下に示します。 
<Window x:Class="SampleKinectNXT.MainWindow" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Title="MainWindow" Height="480" Width="800"> 
<Grid> 
<Image x:Name="rgbImage"/> 
<Canvas x:Name="skeletonCanvas" Height="480" Width="640"/> 
<TextBlock x:Name="leftPowerText" FontSize="24" HorizontalAlignment="Left"/> 
<TextBlock x:Name="rightPowerText" FontSize="24" HorizontalAlignment="Right"/> 
</Grid> 
</Window> 
3.では、実行してみてください。 
左右にモータのパワー出力を表示 
しています。腕を上げ下げして出力 
が変わることを確かめてください。 
次はNXTに接続して、実際に動 
かしてみましょう。

More Related Content

Viewers also liked

Мой Универ @ WebReady 2015 финал в Сколково
Мой Универ @ WebReady 2015 финал в СколковоМой Универ @ WebReady 2015 финал в Сколково
Мой Универ @ WebReady 2015 финал в СколковоMaxim Prikhodko
 
Perkembangbiakan makhluk hidup
Perkembangbiakan makhluk hidupPerkembangbiakan makhluk hidup
Perkembangbiakan makhluk hidupojakzakaria
 
Alat pernapasan manusia
Alat pernapasan manusiaAlat pernapasan manusia
Alat pernapasan manusiaojakzakaria
 
Paying Attention - Crash Course on Creativity
Paying Attention - Crash Course on CreativityPaying Attention - Crash Course on Creativity
Paying Attention - Crash Course on CreativityHari Krishnan
 
Where can i see
Where can i seeWhere can i see
Where can i seejm6972bn
 
Actividad de aprendizaje 1
Actividad de aprendizaje 1Actividad de aprendizaje 1
Actividad de aprendizaje 1Edwin Pech Perez
 
Building Smart Social Media Policies
Building Smart Social Media PoliciesBuilding Smart Social Media Policies
Building Smart Social Media Policiesarlusk
 
Cyber bullying ppt
Cyber bullying pptCyber bullying ppt
Cyber bullying pptmads_dav1
 
Pocket university-prikhodko-v2
Pocket university-prikhodko-v2Pocket university-prikhodko-v2
Pocket university-prikhodko-v2Maxim Prikhodko
 
Создание бренда. Продвижение услуг
Создание бренда. Продвижение услугСоздание бренда. Продвижение услуг
Создание бренда. Продвижение услугLarisaf
 
Hồ Sơ Năng Lực Việt Du
Hồ Sơ Năng Lực Việt DuHồ Sơ Năng Lực Việt Du
Hồ Sơ Năng Lực Việt DuQuoc Cuong
 
Perkembangbiakan makhluk hidup
Perkembangbiakan makhluk hidupPerkembangbiakan makhluk hidup
Perkembangbiakan makhluk hidupojakzakaria
 
Pocket university-prikhodko-forbes-2012
Pocket university-prikhodko-forbes-2012Pocket university-prikhodko-forbes-2012
Pocket university-prikhodko-forbes-2012Maxim Prikhodko
 

Viewers also liked (20)

Copyright1.4
Copyright1.4Copyright1.4
Copyright1.4
 
Andrea
AndreaAndrea
Andrea
 
Alcoholism
AlcoholismAlcoholism
Alcoholism
 
Мой Универ @ WebReady 2015 финал в Сколково
Мой Универ @ WebReady 2015 финал в СколковоМой Универ @ WebReady 2015 финал в Сколково
Мой Универ @ WebReady 2015 финал в Сколково
 
Perkembangbiakan makhluk hidup
Perkembangbiakan makhluk hidupPerkembangbiakan makhluk hidup
Perkembangbiakan makhluk hidup
 
Alat pernapasan manusia
Alat pernapasan manusiaAlat pernapasan manusia
Alat pernapasan manusia
 
Life6
Life6Life6
Life6
 
Presentacion
PresentacionPresentacion
Presentacion
 
Teremtés
TeremtésTeremtés
Teremtés
 
Paying Attention - Crash Course on Creativity
Paying Attention - Crash Course on CreativityPaying Attention - Crash Course on Creativity
Paying Attention - Crash Course on Creativity
 
Where can i see
Where can i seeWhere can i see
Where can i see
 
Actividad de aprendizaje 1
Actividad de aprendizaje 1Actividad de aprendizaje 1
Actividad de aprendizaje 1
 
Jee2014
Jee2014Jee2014
Jee2014
 
Building Smart Social Media Policies
Building Smart Social Media PoliciesBuilding Smart Social Media Policies
Building Smart Social Media Policies
 
Cyber bullying ppt
Cyber bullying pptCyber bullying ppt
Cyber bullying ppt
 
Pocket university-prikhodko-v2
Pocket university-prikhodko-v2Pocket university-prikhodko-v2
Pocket university-prikhodko-v2
 
Создание бренда. Продвижение услуг
Создание бренда. Продвижение услугСоздание бренда. Продвижение услуг
Создание бренда. Продвижение услуг
 
Hồ Sơ Năng Lực Việt Du
Hồ Sơ Năng Lực Việt DuHồ Sơ Năng Lực Việt Du
Hồ Sơ Năng Lực Việt Du
 
Perkembangbiakan makhluk hidup
Perkembangbiakan makhluk hidupPerkembangbiakan makhluk hidup
Perkembangbiakan makhluk hidup
 
Pocket university-prikhodko-forbes-2012
Pocket university-prikhodko-forbes-2012Pocket university-prikhodko-forbes-2012
Pocket university-prikhodko-forbes-2012
 

Similar to レゴ×Kinect実験指導書

Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06Akira Hatsune
 
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1Akira Hatsune
 
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!Yasutomo Imairi
 
KinectプログラミングStepByStep
KinectプログラミングStepByStepKinectプログラミングStepByStep
KinectプログラミングStepByStep信之 岩永
 
Kinectプログラミング Step by Step
Kinectプログラミング Step by StepKinectプログラミング Step by Step
Kinectプログラミング Step by StepAkira Hatsune
 
A Framework for LightUp Applications of Grani
A Framework for LightUp Applications of GraniA Framework for LightUp Applications of Grani
A Framework for LightUp Applications of GraniYoshifumi Kawai
 
Kinect 2セミナー
Kinect 2セミナーKinect 2セミナー
Kinect 2セミナーAkira Hatsune
 
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 EastiOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 Eastirgaly
 
楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発Tomonori Ohba
 
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発Fujio Kojima
 
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~Takahiro Miyaura
 
TypeScript製フレームワーク「Nest」のご紹介
TypeScript製フレームワーク「Nest」のご紹介TypeScript製フレームワーク「Nest」のご紹介
TypeScript製フレームワーク「Nest」のご紹介bitbank, Inc. Tokyo, Japan
 
はじめようRGB-Dセンシングと画像処理
はじめようRGB-Dセンシングと画像処理はじめようRGB-Dセンシングと画像処理
はじめようRGB-Dセンシングと画像処理Takashi Yoshinaga
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウKentarou Mukunasi
 
Windows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAIWindows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAITomokazu Kizawa
 
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
Titanium もくもく会第6回 Kii Cloud と TiGPUImageViewTitanium もくもく会第6回 Kii Cloud と TiGPUImageView
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView濱田 章吾
 
UnityとBlenderハンズオン第1章
UnityとBlenderハンズオン第1章UnityとBlenderハンズオン第1章
UnityとBlenderハンズオン第1章yaju88
 
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Masahiko Mizuta
 
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」Tomoaki Shimizu
 

Similar to レゴ×Kinect実験指導書 (20)

Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06Kinect Camp with TMCN/ Kinect入門ハンズオン 2015.06.06
Kinect Camp with TMCN / Kinect入門ハンズオン 2015.06.06
 
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1
Kinect v2 からUSBでつないだ機器をコントロールしてみよう Vol.1
 
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!
関西MSP勉強会~Kinect編~ ハンズオン資料 Kinectで身長を計測しよう!
 
KinectプログラミングStepByStep
KinectプログラミングStepByStepKinectプログラミングStepByStep
KinectプログラミングStepByStep
 
Kinectプログラミング Step by Step
Kinectプログラミング Step by StepKinectプログラミング Step by Step
Kinectプログラミング Step by Step
 
A Framework for LightUp Applications of Grani
A Framework for LightUp Applications of GraniA Framework for LightUp Applications of Grani
A Framework for LightUp Applications of Grani
 
Kinect 2セミナー
Kinect 2セミナーKinect 2セミナー
Kinect 2セミナー
 
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 EastiOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
 
楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発楽しいアプリ制作の会 #12 Windows Phone 開発
楽しいアプリ制作の会 #12 Windows Phone 開発
 
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
2022.04.23 .NET 6 -7 時代のデスクトップ アプリケーション開発
 
RoboVM
RoboVMRoboVM
RoboVM
 
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
Unreal Engine でアプリ開発~ MRTK UXTools for Unreal V0.9.0 ~
 
TypeScript製フレームワーク「Nest」のご紹介
TypeScript製フレームワーク「Nest」のご紹介TypeScript製フレームワーク「Nest」のご紹介
TypeScript製フレームワーク「Nest」のご紹介
 
はじめようRGB-Dセンシングと画像処理
はじめようRGB-Dセンシングと画像処理はじめようRGB-Dセンシングと画像処理
はじめようRGB-Dセンシングと画像処理
 
初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ初心者向けAndroidゲーム開発ノウハウ
初心者向けAndroidゲーム開発ノウハウ
 
Windows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAIWindows 11とNPUで実現するWindowsのAI
Windows 11とNPUで実現するWindowsのAI
 
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
Titanium もくもく会第6回 Kii Cloud と TiGPUImageViewTitanium もくもく会第6回 Kii Cloud と TiGPUImageView
Titanium もくもく会第6回 Kii Cloud と TiGPUImageView
 
UnityとBlenderハンズオン第1章
UnityとBlenderハンズオン第1章UnityとBlenderハンズオン第1章
UnityとBlenderハンズオン第1章
 
Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門Androidプログラミング初心者のためのゲームアプリ開発入門
Androidプログラミング初心者のためのゲームアプリ開発入門
 
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
Cocos2d-x(JS) ハンズオン #08「様々な画像描画方法」
 

More from Satoshi Fujimoto

ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発
ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発
ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発Satoshi Fujimoto
 
HoloLens2完全に理解した
HoloLens2完全に理解したHoloLens2完全に理解した
HoloLens2完全に理解したSatoshi Fujimoto
 
次世代型電動車椅子WHILLの紹介
次世代型電動車椅子WHILLの紹介次世代型電動車椅子WHILLの紹介
次世代型電動車椅子WHILLの紹介Satoshi Fujimoto
 
20180829 ガチラボ vol.9
20180829 ガチラボ vol.920180829 ガチラボ vol.9
20180829 ガチラボ vol.9Satoshi Fujimoto
 
20180822 ガチラボ vol.8
20180822 ガチラボ vol.820180822 ガチラボ vol.8
20180822 ガチラボ vol.8Satoshi Fujimoto
 
20180801 ガチラボ vol.7
20180801 ガチラボ vol.720180801 ガチラボ vol.7
20180801 ガチラボ vol.7Satoshi Fujimoto
 
Azureを活用したHoloLensアプリ開発
Azureを活用したHoloLensアプリ開発Azureを活用したHoloLensアプリ開発
Azureを活用したHoloLensアプリ開発Satoshi Fujimoto
 
ロボアプリ名:秘密のPepperちゃん
ロボアプリ名:秘密のPepperちゃんロボアプリ名:秘密のPepperちゃん
ロボアプリ名:秘密のPepperちゃんSatoshi Fujimoto
 
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」Satoshi Fujimoto
 
熊本 HoloLens Meetup vol.0 前説
熊本 HoloLens Meetup vol.0 前説熊本 HoloLens Meetup vol.0 前説
熊本 HoloLens Meetup vol.0 前説Satoshi Fujimoto
 
熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」
熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」
熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」Satoshi Fujimoto
 
Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018Satoshi Fujimoto
 
20180613 ガチラボ vol.4
20180613 ガチラボ vol.420180613 ガチラボ vol.4
20180613 ガチラボ vol.4Satoshi Fujimoto
 
20180606 ガチラボ vol.3
20180606 ガチラボ vol.320180606 ガチラボ vol.3
20180606 ガチラボ vol.3Satoshi Fujimoto
 
20180516 ガチラボ vol.2
20180516 ガチラボ vol.220180516 ガチラボ vol.2
20180516 ガチラボ vol.2Satoshi Fujimoto
 
札幌 HoloLens Meetup vol.1
札幌 HoloLens Meetup vol.1札幌 HoloLens Meetup vol.1
札幌 HoloLens Meetup vol.1Satoshi Fujimoto
 

More from Satoshi Fujimoto (20)

くまあずLT
くまあずLTくまあずLT
くまあずLT
 
ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発
ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発
ROHM OPEN HACK CHALLENGE 2019 加加速度による路面評価プログラムの開発
 
HoloLens2完全に理解した
HoloLens2完全に理解したHoloLens2完全に理解した
HoloLens2完全に理解した
 
次世代型電動車椅子WHILLの紹介
次世代型電動車椅子WHILLの紹介次世代型電動車椅子WHILLの紹介
次世代型電動車椅子WHILLの紹介
 
20180829 ガチラボ vol.9
20180829 ガチラボ vol.920180829 ガチラボ vol.9
20180829 ガチラボ vol.9
 
20180822 ガチラボ vol.8
20180822 ガチラボ vol.820180822 ガチラボ vol.8
20180822 ガチラボ vol.8
 
20180801 ガチラボ vol.7
20180801 ガチラボ vol.720180801 ガチラボ vol.7
20180801 ガチラボ vol.7
 
Azureを活用したHoloLensアプリ開発
Azureを活用したHoloLensアプリ開発Azureを活用したHoloLensアプリ開発
Azureを活用したHoloLensアプリ開発
 
MTuberツール作った2
MTuberツール作った2MTuberツール作った2
MTuberツール作った2
 
ロボアプリ名:秘密のPepperちゃん
ロボアプリ名:秘密のPepperちゃんロボアプリ名:秘密のPepperちゃん
ロボアプリ名:秘密のPepperちゃん
 
秘密のPepperちゃん
秘密のPepperちゃん秘密のPepperちゃん
秘密のPepperちゃん
 
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
熊本 HoloLens Meetup vol.0 「HoloLensアプリ開発コンテストビジネス部門で特別賞もらってきた」
 
熊本 HoloLens Meetup vol.0 前説
熊本 HoloLens Meetup vol.0 前説熊本 HoloLens Meetup vol.0 前説
熊本 HoloLens Meetup vol.0 前説
 
熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」
熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」
熊本 HoloLens Meetup vol.0.1 前哨戦 「MTuberツール作った」
 
Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018Open3DでSLAM入門 PyCon Kyushu 2018
Open3DでSLAM入門 PyCon Kyushu 2018
 
20180613 ガチラボ vol.4
20180613 ガチラボ vol.420180613 ガチラボ vol.4
20180613 ガチラボ vol.4
 
20180606 ガチラボ vol.3
20180606 ガチラボ vol.320180606 ガチラボ vol.3
20180606 ガチラボ vol.3
 
20180516 ガチラボ vol.2
20180516 ガチラボ vol.220180516 ガチラボ vol.2
20180516 ガチラボ vol.2
 
札幌 HoloLens Meetup vol.1
札幌 HoloLens Meetup vol.1札幌 HoloLens Meetup vol.1
札幌 HoloLens Meetup vol.1
 
M5Stack やーる
M5Stack やーるM5Stack やーる
M5Stack やーる
 

レゴ×Kinect実験指導書

  • 1. 2014/11/18 レゴマインドストームEV3×Kinect for Windows v1 Kinectで操作するレゴの実験指導書(仮) Kinectで得られる骨格情報を用いて、レゴを動かします。 Kinectでレゴを動かすサンプルプログラムは下からダウンロード。 http://www.afrel.co.jp/kinectdownload/SampleKinectNXT.zip とりあえず、レゴなしでKinectで骨格情報を取得、モータのパワーを出力してみましょう。 【C#によるKinectアプリケーションの作成方法】 Visual Studio 2013 を用います。次の3つが作成する際の重要なポイントなので覚えてください。 1.起動して、新規プロジェクトの作成→Visual C#のWindowsからWPF Application を選択し、プロジェクト 名(SampleKinectNXT)をつける。
  • 3. 3.MainWindow.xaml.cs を編集します。 ここでダウンロードしたソリューション(VS2010で書かれている)を開き、MainWindow.xaml.cs をコピーして貼 り付けてください。 【レゴなしでKinectの骨格情報を取得、モータのパワーを出力するプログラムを実行する】 1.とりあえずレゴには接続しないので、レゴに関係する部分をコメントアウトします。 using System; using System.Collections.Generic; using System.IO.Ports; using System.Windows; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; using Microsoft.Kinect; //using NxtNet; public MainWindow() { ・・・ // Nxt接続ポートの初期化 //InitializeNxt(); ・・・ private void Window_Closed(object sender, EventArgs e) { ・・・ // NXTの停止・切断 //DisconnectNxt(); ・・・ 次の関数もコメントアウトします。 private void SetIsLinked(bool value)
  • 4. 以下の #region NXTの処理  で囲まれた部分をすべてコメントアウトします。 private void InitializeNxt() private void connectButton_Click (object sender, RoutedEventArgs e) private void ConnectNxt() private void disconnectButton_Click (object sender, RoutedEventArgs e) private void DisconnectNxt() private void SetPower(int left, int right) private void StopNxt() DriveNxt関数内のコメントアウトされた参照関数をコメントアウトします。 private void DriveNxt (Dictionary<JointType, Joint> trackedJoints) { ・・・ // 首位置、各手首位置が水平状態になった場合、 // NXT とKinectの連携を開始する。 … (9-4) //if (isLinked == false) //{ // if ( isConnected // && -5 <= leftPower && leftPower <= 5 // && -5 <= rightPower && rightPower <= 5) // { // SetIsLinked(true); // } //} ・・・ // 5フレーム続けてトラッキングできないときは //NXTを停止する if (5 <= notTrackedCount) { //StopNxt(); ・・・ 2.次に実行するアプリケーションの表示(UI)部分(MainWindow.xaml)を編集します。 MainWindow.xaml.csでは、rgbImage.Sourceにエラーが出ていたと思います。(赤の波線が付いている) private void StopKinect(KinectSensor kinect) { ・・・ rgbImage.Source = null; ・・・ private void kinect_ColorFrameReady (Object sender, ColorImageFrameReadyEventArgs e) { // ピクセルデータを //ビットマップに変換し画面に表示 … (4-3) rgbImage.Source = BitmapSource.Create (frame.Width, frame.Height, 96, 96, PixelFormats.Bgr32, null, pixel, frame.Width * frame.BytesPerPixel); ・・・
  • 5. これはMainWindow.xaml ファイルを編集し、KinectのRGB画像を表示する場所<Image>を作ることで解決 します。 関節(ジョイント)の描画も同じく、エラーが出ます。 private Dictionary<JointType, Joint> DrawSkeletonFrame(KinectSensor kinect, SkeletonFrame frame) { ・・・ // ジョイントの描画をすべて削除する … (6-2) skeletonCanvas.Children.Clear(); これもxaml ファイルを編集し、Canvas を表示する場所<Canvas>を作ることで解決します。 private void DriveNxt (Dictionary<JointType, Joint> trackedJoints) { ・・・ // 画面に出力値を表示 … (9-6) leftPowerText.Text = leftPower + "%"; rightPowerText.Text = rightPower + "%"; これも同様に、xaml ファイルを編集し、モータのパワーを出力するテキストの場所<TextBlock>を作ります。 最終的なMainWindow.xaml の内容を以下に示します。 <Window x:Class="SampleKinectNXT.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="480" Width="800"> <Grid> <Image x:Name="rgbImage"/> <Canvas x:Name="skeletonCanvas" Height="480" Width="640"/> <TextBlock x:Name="leftPowerText" FontSize="24" HorizontalAlignment="Left"/> <TextBlock x:Name="rightPowerText" FontSize="24" HorizontalAlignment="Right"/> </Grid> </Window> 3.では、実行してみてください。 左右にモータのパワー出力を表示 しています。腕を上げ下げして出力 が変わることを確かめてください。 次はNXTに接続して、実際に動 かしてみましょう。