Search
AND
OR
Front page
|
Reload
|
New
|
List of pages
|
Search
|
Recent changes
|
Help
product/AutoChasingTurtle
Main Menu
TOP
Readme
Contents
Download
recent(20)
2023-10-16
noritsuna
2022-03-17
product
2019-01-06
aboutus
member
yamaz
2017-07-22
50usd_ground_station
2016-10-31
Space Probe Contest 2016
hirotaka
2016-08-15
Ene-1 GP SUZUKA KV-BIKE 2016
2014-07-18
slime lamp
2014-01-22
product/ScanningDrone
2013-09-06
product/MakerStyleGoogleGlass
2013-05-23
product/TreasureHuntingRobot
2012-12-27
product/nebula
2012-02-15
product/AutoChasingTurtle
product/pandacloud
2007-11-22
schedule
2007-10-11
sipropproject
2007-10-09
yusuke
masaxmasa
Total:0/Today:0
Start:
[[FrontPage]]
*What's this? [#b74f6829]
-This product is "Auto Chasing Turtle".
-By autonomous control, this robot recognizes people's fa...
-[[YouTube Video:http://www.youtube.com/watch?v=8EgfAk5RB...
#ref(DSC_0012.jpg)
#ref(DSC_0001.jpg)
#ref(DSC_0006.jpg)
*The thing to prepare [#ga9b11ec]
-Hardware
--[[beagleboard-xM:http://beagleboard.org/hardware-xM]]
--[[KONDO Animal:http://kondo-robot.com/product/kondo-ani...
--[[Kinect:http://www.xbox.com/en-US/kinect]]
--WiFiRouter
--battery
---12V/1A
---10V/1A
---5V/3A
-Software
--[[ofxDroidKinect:http://www.noritsuna.com/archives/2011...
---[[Linaro Kernel:http://git.linaro.org/gitweb?p=people/...
---[[Android(Embedded Master):https://github.com/OESF/Emb...
--Robo controller
---[[OESF Future Systems WG:http://fswg.oesf.biz/]]
**Reference data [#q97e6b0a]
-Please setup this environment.
--[[ofxDroidKinect:http://www.noritsuna.com/archives/2011...
**download [#cc9f2701]
-This source code
&ref(AutoChasingTurtle.zip);
-Original Customized Linaro
&ref(Linaro-kernel_android_1104.tar.gz);
--How to build
install Ubuntu10.10 later
sudo apt-get install gcc-arm-linux-gnueabi
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage
***license [#g9ef573a]
-GPL2.0
**slide [#yac155c2]
-[[on SlideShare:http://www.slideshare.net/noritsuna/auto...
-download pptx:
--&ref(AutoChasingTurtle.pptx);
**Speech&Award [#j500c682]
***[[Linaro Developer Summit 11/05:https://wiki.linaro.or...
-We speech.
***[[Laval Virtual 2011:http://www.laval-virtual.org/#Awa...
-We are nominated.
***[[Campus Party 2011 Columbia:http://www.campus-party.c...
-We speech.
*Detail explanation for source code [#b1108d9c]
**Hardware [#v97e01a3]
-Connect all hardwares.
+battery
+[[beagleboard-xM:http://beagleboard.org/hardware-xM]]
+[[Kinect:http://www.xbox.com/en-US/kinect]]
+WiFiRouter
**Software [#sac53c76]
***What doing? [#l8480899]
+Take the RGB camera's image
++Save this image as jpeg
+Try to recognize face
++If fail, search random.
+Calculate the course which it should follow.
++Move kinect's Angle
+Calculate the distance to target
***Detect Face [#s6cace2e]
-Take the RGB camera's image
--Take from Kinect's RGB camera by ofxDroidKinect.
---testApp.cpp : 36 line
void testApp::draw() {
kinect.draw(0, 0, 480, 320);
flame++;
if (flame > 5) {
flame = 0;
colorImg->setFromPixels(kinect.getPixels(), kine...
}
}
-Save this image as jpeg
--Android's FaceDetector class can't detect by the Kinect...
---OFActivity.java : 53-72 line
Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config....
byte[] pixels = OFAndroid.getImgPixels();
if (pixels != null) {
for (int i=0;i<w;i++) {
for (int j=0;j<h;j++){
int index = (j * w + i) * 3;
bitmap.setPixel(i, j, Color.rgb(pixels[index...
}
}
try {
// save adcard
FileOutputStream fos = new FileOutputStream("/sd...
bitmap.compress(Bitmap.CompressFormat.JPEG, 100,...
fos.flush();
fos.close();
} catch (Exception e) {
// check exception
}
-Try to recognize face
--Use Android's FaceDetector class
---OFActivity.java : 77-80 line
FaceDetector.Face[] faces = new FaceDetector.Face[1];
if (bitmap != null) {
FaceDetector detector = new FaceDetector(w, h, f...
int numFaces = detector.findFaces(bitmap, faces);
-If fail, search random.
--
---OFActivity.java : 138-144 line
} else {
/*
* search turn
*/
Random random = new Random();
int res = random.nextInt(3);
if (res == 0) DroidBot.getInstance().turnRight2();
else if (res == 1) DroidBot.getInstance().turnRight...
else if (res == 2) DroidBot.getInstance().turnLeft2...
else if (res == 3) DroidBot.getInstance().turnLeft4...
}
***Calculate Course & Destance [#i3c72bf7]
-Calculate the course which it should follow.
--RGB image is divided into 4 pieces at a width direction...
---OFActivity.java : 103-109 line
if (pointX > 0 && pointX < w/4) {
DroidBot.getInstance().turnRight2(); // right pos...
} else if (pointX >= w/4 && pointX <= 3*w/4) {
; // center po...
} else if (pointX > 3*w/4 && pointX <= w) {
DroidBot.getInstance().turnLeft2(); // left posi...
}
-Move kinect's Angle
--The maximum kinect's Angle is "30". And the kinect's An...
---OFActivity.java : 117-119 line
int angle = 30 - pointY*30/h;
if (angle > 0 && angle <= 30)
OFAndroid.setAngle(angle);
-Calculate the distance to target
--Get from Kinect's Z(depth) camera by ofxDroidKinect.
--The kinect's Angle is diceded on the basis of it by Fac...
---OFActivity.java : 127-132 line
int dist = OFAndroid.getDistance(pointX, pointY);
if (dist < 100) DroidBot.getInstance...
else if (dist >= 100 && dist < 150) DroidBot.getInstance...
else if (dist >= 150 && dist < 200) DroidBot.getInstance...
else if (dist >= 200 && dist < 300) DroidBot.getInstance...
else if (dist >= 300) DroidBot.getInstance...
***Control Robot [#db7fb7bf]
-KONDO Animal is controled by serial.
-KONDO Animal uses RCB-3 control unit. and send to contro...
--Please look "kameserial.c & kameserial.h".
---[[RCB-3/RCB-3J Commands References:http://www.robotsho...
***Connect iPad [#p5101872]
-iPad viewer is VNC client.
--Using [[Android VNC Server:http://code.google.com/p/and...
---init.rc
service vncserver /data/androidvncserver -k /dev/input/e...
*Contact us [#t7b0fe8c]
--info @ siprop.org
*At the last [#e92afaf4]
-If this is helpful to you, Please donate for "2011 Japan...
-We are Japanese community team. We pray Japan revives.
***Information [#kea27941]
-[[CrisisWiki:http://crisiswiki.org/2011_Sendai_Japan_Ear...
***Donation [#dc2cae71]
-[[2011 Japanese Earthquake and Tsunami by Google:http://...
-[[American Red Cross: Japan Earthquake and Pacific Tsuna...
-[[2011 Japan Earthquake& Tsunami Relief by eBay:http:/...
***Contact us [#h9a8e358]
-info
--info atmark siprop.org
-Noritsuna
--noritsuna atmark siprop.org
End:
[[FrontPage]]
*What's this? [#b74f6829]
-This product is "Auto Chasing Turtle".
-By autonomous control, this robot recognizes people's fa...
-[[YouTube Video:http://www.youtube.com/watch?v=8EgfAk5RB...
#ref(DSC_0012.jpg)
#ref(DSC_0001.jpg)
#ref(DSC_0006.jpg)
*The thing to prepare [#ga9b11ec]
-Hardware
--[[beagleboard-xM:http://beagleboard.org/hardware-xM]]
--[[KONDO Animal:http://kondo-robot.com/product/kondo-ani...
--[[Kinect:http://www.xbox.com/en-US/kinect]]
--WiFiRouter
--battery
---12V/1A
---10V/1A
---5V/3A
-Software
--[[ofxDroidKinect:http://www.noritsuna.com/archives/2011...
---[[Linaro Kernel:http://git.linaro.org/gitweb?p=people/...
---[[Android(Embedded Master):https://github.com/OESF/Emb...
--Robo controller
---[[OESF Future Systems WG:http://fswg.oesf.biz/]]
**Reference data [#q97e6b0a]
-Please setup this environment.
--[[ofxDroidKinect:http://www.noritsuna.com/archives/2011...
**download [#cc9f2701]
-This source code
&ref(AutoChasingTurtle.zip);
-Original Customized Linaro
&ref(Linaro-kernel_android_1104.tar.gz);
--How to build
install Ubuntu10.10 later
sudo apt-get install gcc-arm-linux-gnueabi
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage
***license [#g9ef573a]
-GPL2.0
**slide [#yac155c2]
-[[on SlideShare:http://www.slideshare.net/noritsuna/auto...
-download pptx:
--&ref(AutoChasingTurtle.pptx);
**Speech&Award [#j500c682]
***[[Linaro Developer Summit 11/05:https://wiki.linaro.or...
-We speech.
***[[Laval Virtual 2011:http://www.laval-virtual.org/#Awa...
-We are nominated.
***[[Campus Party 2011 Columbia:http://www.campus-party.c...
-We speech.
*Detail explanation for source code [#b1108d9c]
**Hardware [#v97e01a3]
-Connect all hardwares.
+battery
+[[beagleboard-xM:http://beagleboard.org/hardware-xM]]
+[[Kinect:http://www.xbox.com/en-US/kinect]]
+WiFiRouter
**Software [#sac53c76]
***What doing? [#l8480899]
+Take the RGB camera's image
++Save this image as jpeg
+Try to recognize face
++If fail, search random.
+Calculate the course which it should follow.
++Move kinect's Angle
+Calculate the distance to target
***Detect Face [#s6cace2e]
-Take the RGB camera's image
--Take from Kinect's RGB camera by ofxDroidKinect.
---testApp.cpp : 36 line
void testApp::draw() {
kinect.draw(0, 0, 480, 320);
flame++;
if (flame > 5) {
flame = 0;
colorImg->setFromPixels(kinect.getPixels(), kine...
}
}
-Save this image as jpeg
--Android's FaceDetector class can't detect by the Kinect...
---OFActivity.java : 53-72 line
Bitmap bitmap = Bitmap.createBitmap(w, h, Bitmap.Config....
byte[] pixels = OFAndroid.getImgPixels();
if (pixels != null) {
for (int i=0;i<w;i++) {
for (int j=0;j<h;j++){
int index = (j * w + i) * 3;
bitmap.setPixel(i, j, Color.rgb(pixels[index...
}
}
try {
// save adcard
FileOutputStream fos = new FileOutputStream("/sd...
bitmap.compress(Bitmap.CompressFormat.JPEG, 100,...
fos.flush();
fos.close();
} catch (Exception e) {
// check exception
}
-Try to recognize face
--Use Android's FaceDetector class
---OFActivity.java : 77-80 line
FaceDetector.Face[] faces = new FaceDetector.Face[1];
if (bitmap != null) {
FaceDetector detector = new FaceDetector(w, h, f...
int numFaces = detector.findFaces(bitmap, faces);
-If fail, search random.
--
---OFActivity.java : 138-144 line
} else {
/*
* search turn
*/
Random random = new Random();
int res = random.nextInt(3);
if (res == 0) DroidBot.getInstance().turnRight2();
else if (res == 1) DroidBot.getInstance().turnRight...
else if (res == 2) DroidBot.getInstance().turnLeft2...
else if (res == 3) DroidBot.getInstance().turnLeft4...
}
***Calculate Course & Destance [#i3c72bf7]
-Calculate the course which it should follow.
--RGB image is divided into 4 pieces at a width direction...
---OFActivity.java : 103-109 line
if (pointX > 0 && pointX < w/4) {
DroidBot.getInstance().turnRight2(); // right pos...
} else if (pointX >= w/4 && pointX <= 3*w/4) {
; // center po...
} else if (pointX > 3*w/4 && pointX <= w) {
DroidBot.getInstance().turnLeft2(); // left posi...
}
-Move kinect's Angle
--The maximum kinect's Angle is "30". And the kinect's An...
---OFActivity.java : 117-119 line
int angle = 30 - pointY*30/h;
if (angle > 0 && angle <= 30)
OFAndroid.setAngle(angle);
-Calculate the distance to target
--Get from Kinect's Z(depth) camera by ofxDroidKinect.
--The kinect's Angle is diceded on the basis of it by Fac...
---OFActivity.java : 127-132 line
int dist = OFAndroid.getDistance(pointX, pointY);
if (dist < 100) DroidBot.getInstance...
else if (dist >= 100 && dist < 150) DroidBot.getInstance...
else if (dist >= 150 && dist < 200) DroidBot.getInstance...
else if (dist >= 200 && dist < 300) DroidBot.getInstance...
else if (dist >= 300) DroidBot.getInstance...
***Control Robot [#db7fb7bf]
-KONDO Animal is controled by serial.
-KONDO Animal uses RCB-3 control unit. and send to contro...
--Please look "kameserial.c & kameserial.h".
---[[RCB-3/RCB-3J Commands References:http://www.robotsho...
***Connect iPad [#p5101872]
-iPad viewer is VNC client.
--Using [[Android VNC Server:http://code.google.com/p/and...
---init.rc
service vncserver /data/androidvncserver -k /dev/input/e...
*Contact us [#t7b0fe8c]
--info @ siprop.org
*At the last [#e92afaf4]
-If this is helpful to you, Please donate for "2011 Japan...
-We are Japanese community team. We pray Japan revives.
***Information [#kea27941]
-[[CrisisWiki:http://crisiswiki.org/2011_Sendai_Japan_Ear...
***Donation [#dc2cae71]
-[[2011 Japanese Earthquake and Tsunami by Google:http://...
-[[American Red Cross: Japan Earthquake and Pacific Tsuna...
-[[2011 Japan Earthquake& Tsunami Relief by eBay:http:/...
***Contact us [#h9a8e358]
-info
--info atmark siprop.org
-Noritsuna
--noritsuna atmark siprop.org
Page: