androidで出来る!! kinectとipadを使った亀ロボ

37
©SIProp Project, 2006-2008 1 Auto Chasing Turtle Hirotaka Niisato Noritsuna Imamura

Upload: hirotaka-niisato

Post on 06-May-2015

3.483 views

Category:

Technology


3 download

DESCRIPTION

Android Bazaar and Conference 2011 Summer. robot track.

TRANSCRIPT

  • 1.SIProp Project, 2006-2008
    1
    Auto Chasing Turtle
    HirotakaNiisato
    Noritsuna Imamura

2. About ourselves
Ourselves
HirotakaNiisato(@hirotakaster)
Noritsuna Imamura(@noritsuna)
About SIProp Project
Open Source Software Project
The world of media (communication medium) is extended.
3. Agenda
Summary
Part Software
Detect the face
Calculate the course
Calculate the distance
Part Hardware
How to control the robot
How to process the analog data
Need more power supply
4. Summary
This product is "Auto Chasing Turtle".
By autonomous control, this robot recognizes people's face and approaches to the detected human.
5. Robot behavior
Rotate and look for the human who becomes a target.
Detect the human with recognizing people's face by using RGB camera of Kinect.
If it can detect the human, it calculates the course which it should follow. And It direction is changed.
Calculate the distance to target by using Z(depth) camera of Kinect.
Walk toward to target.
2-5 are repeated until it becomes a suitable distance. And if losts target, returns to 1.
The scene that it is working in real time can be seen by iPad.
6. Movie
7. YouTube
http://www.youtube.com/watch?v=8EgfAk5RBVo
Source Code & detail explanation
http://www.siprop.org/ja/2.0/index.php?product%2FAutoChasingTurtle
Movie
8. complete set parts
Robot
KONDO Animal 01
Controllers
For servo
RCB3
For application
Beagleboard-xM
Linaro-Kernel
Android(Embedded Master)
Sensors
Kinect
RGBcamera
Z(Depth)camera
Connect to outside
Radio wave
Wi-Fi router
Viewer
iPad
Power supply
12V1A output
10V1A output
5V3A output
9. complete set parts
10. Why this project?
DENSUKE project
Mobile Internet Device with Cyber-Pet User Interface
11. DENSUKE project
OESF(Open Embedded Software Foundation)Future Systems WGs mission
http://fswg.oesf.biz/
Project leader
Mr. Ohtsuki
The Father of AIBO
Partners
12. Detail of Kinect Turtle world
13. Why KINECT and Robot ?
Application have changed
Game, Motion Controller, Nunchuk
Cell Phone, Tablet
14. Why KINECT and Robot ?
KINECT show the next future
Camera, Depth censor.
Recognition of humans data.
Mobility Problem ...
15. Why KINECT and Robot ?
KINECT on Robot is result of mobility problem.
sensory system
drive system
Robot movement
Camera data
Depth censor
Analyze
Grey Walter's turtle robot in 1949.
16. Part Software
17. ofxDroidKinect
openFrameworks
x
Kinect
x
Android
18. About ofxDroidKinect
19. About ofxDroidKinect
This is the Android Application Framework which runs on openFrameworks & uses Kinect.
Using softwares
openFrameworks for Android
Linaro Android
20. Using Kinect
OpenKinect
Open Source Free Library
openFrameworks
OpenNI
PrimeSense
Initial support for the Android & ARM platforms.
Kinect for Windows SDK
Kinect Services for Microsoft Robotisc Developer Studio
21. Control Robot and KINECT
ofxDroidKinect
USB
Serial
openFrameworks
Linaro/Android
Wifi
22. Analyze KINECT data
Detect the Face
Calculate the course
Calculate the distance
1. detect
3. distance
2. course
23. Detect the face
Whats data ?
640x480 RGB image, using KINECTs camera,
Characteristics of human face.
KINECT Image
24. Detect the face
Not all frame, but realtime analyzing.
Auto search around people.
analyze thread
10fps
image
thread
FaceDetector detector = new FaceDetector(w, h, faces.length);
intnumFaces = detector.findFaces(bitmap, faces);
if (numFaces > 0) {
// Calculate the course, Calculate the distance
} else {
// search around
}
25. Calculate the course
Using width.
Specify centerposition of face.
Specify position of the face in 4-sections relavive to KINECTs image.
26. Calculate the course
Using height.
Change Kinects angle.
Specify position of the face in image relavive to KINECTs image.
if (pointX > 0 && pointX < w/4) {
DroidBot.getInstance().turnRight2();// right position
} else if (pointX >= w/4 && pointX 3*w/4 && pointX 0 && angle 30) angle = 30;
else if (angle < 0) angle = 0;
kinectApp->kinect.setCameraTiltAngle(angle);
}
27. Calculate the distance
Mesure the depth of specified point using KINECT.
Robots walk forward or back, depending on the mesured distance.
int dist = OFAndroid.getDistance(pointX, pointY);
if (dist < 100) DroidBot.getInstance().walkBack4();
else if (dist >= 100 && dist < 150)DroidBot.getInstance().walkToward4();
else if (dist >= 150 && dist < 200)DroidBot.getInstance().walkToward8();
else if (dist >= 200 && dist < 300)DroidBot.getInstance().walkToward16();
else if (dist >= 300) DroidBot.getInstance().walkToward32();
JNIEXPORT
jint
JNICALL Java_cc_openframeworks_OFAndroid_getDistance(JNIEnv*env,
jobjectthiz, jintobjx, jintobjy){
return (int)kinectApp->kinect.getDistanceAt(objx, objy);
}
28. Performance problem
Data analyze and image processing
Face recognition
More resource !!
GPU, Multi core.
29. Part Hardware
30. 31. How to control the robot?
Only control servos angle.
Accuracy
Reaction velocity
Torque
Compact(Size, Weight)
32. How to control a servo?
RCB series
24 controls pins
Control commands
Control all servo at same time !
33. More control
Do you know this IC?
34. How to process more sensors?
Analog data is stream data!
Need powerful processor
Need to save power for Mobile
Now Solution
ARM base Processor
dual Cortex A9
MALI 400 GPU
Next trend
GPGPU
FPGA
35. How to optimize for each sensors?
http://linaro.org/
Mission
Optimize for each SoC & Platform
We are committer!
36. Campus Party Colombia 2011
37. MAKE:style
Hardware
beagleboard-xM
KONDO Animal
Kinect
Software
ofxDroidKinect
Linaro Kernel
Android(Embedded Master)
Do It Yourself Do It With Others!