matereal: matereal: A Toolkit for Prototyping Interactive Robot Applications * Summary. 2 “matereal” 11 API API [7][8] “matereal” matereal matereal 2 matereal Computing Phidgets[4] [5] Physical Human-Computer Interaction Human-Robot Interaction / JST ERATO , Daisuke Sakamoto, JST ERATO WISS2010 WISS 2010 WheelsController Wheels ExclusiveResource 1. 1 Robot robot = new NetTansor();
GoForward gf = new GoForward(); Capture cap = new Capture();
if (gf.assign(robot)) gf.start(); if (cap.assign(robot)) {
   cap.addImageListener(new ImageListener() { }) cap.start(); API 1 22 3 4 5 6 77 88 g 10 11 API "matereal" API 3 matereal "matereal" Java gf.stop() stop() cap. 3.1 "matereal" Web 11 WheelsController API 3.2 WheelsController 2 3.3 ¹ http://mr.digitalmuseum.jp/ 2 11 1 Move Visual Programming Language Push [6] cm 44 2 API 3.4 4.1 Bring it here! API (x,y) getClickedEntity(x,y) UML   Unified Modeling Language  1.0 11
goal Push goal 4.2 4.3 2 IH List<Path> Set<List<Path>> string IH Bluetooth DrawPath robots 3 ActivityDiagram ad = new ActivityDiagram(); l l Action[] inits = new Action[robots.length]; 2 Action[] as = new Action[robots.length]; 3 int i = 0; 4 for (List<Path> c : string) { 5 for (Path p : c) { 6 77 Action a = new Action(robots[i], new DrawPath(p)); 88 if (as[i] == null) { inits[i] = a; 99 10 } else ad.addTransition(new Transition(as[i], a)); 11 }} 12 13 as[i] = a; 14 15 16 i = (i + 1) % robots.length; }
Fork fork = new Fork(inits); 17 ad.setInitialNode(fork); 18 ad.start(); 19 c i a robots[i] inits[i] as[i] Transition a [8] 2 matereal: A Toolkit for Prototyping Interactive Robot Applications 5 5.1 API GUI PC Visual Programming Language   VPL Urbi[3] VPL “matereal” Urbi body.arm.grip GUI Urbi Tekkotsu[9] 5.2 3.4 [4] [10] UML 6 UML RT-Middleware[2] "matereal" Physical Computing [1] W. Ackerman. Data flow languages. Computer, 15(2):15–25, 1982. [2] N. Ando, T. Suehiro, K. Kitagaki, T. Kotoku, and W.-K. Yoon.  RT-Middleware:  Distributed Component Middleware for RT (Robot Tech- nology). In Proc. of IROS ’05, pp. 3555–3560. IEEE, 2005. [3] J. Baillie.  Urbi: Towards a universal robotic low-level  programming  language. In Proc. of IROS '05, pp. 820–825. IEEE, 2005. Phidgets: [4] S. Greenberg and C. Fitchett. easy development of physical interfaces through physical widgets. In Proc. of UIST ’01 , pp. 209– 218, New York, NY, USA, 2001. ACM. [5] B. Hartmann, S. R. Klemmer, M. Bernstein, L. Abdulla, B. Burr, A. Robinson-Mosher, and J. Gee. Reflective physical prototyping through integrated design, test, and analysis. In Proc. of UIST ’06, pp. 299–308, New York, NY, USA, 2006. ACM. [6] T. Igarashi, Y. Kamiyama, and M. Inami.  A Dipole Field for Object Delivery by Pushing on a Flat Surface. In Proc. of ICRA '10, pp. 5114– 5119. IEEE, 201. [7] Y. Sugiura, T. Igarashi, H. Takahashi, T. A. Gowon, C. L. Fernando, M. Sugimoto, and M. Inami. Graphical instruction for a gar- ment folding robot. In ACM SIGGRAPH 2009 Emerging Technologies, pp. 1–1. ACM, 2009. [8] Y. Sugiura, D. Sakamoto, A. Withana, M. In- ami, and T. Igarashi. Cooking with robots: de- signing a household system working in open en- vironments. In Proc. of CHI ’10, pp. 2427–2430. ACM, 2010. [9]  D. Touretzky and E. Tira-Thompson.  Tekkotsu: A framework for AIBO cognitive robotics. In Proc. of AAAI ’05 pp. 1741–1742, 2005. [10] W. Van Der Aalst and A. Ter Hofstede. YAWL: Information yet another workflow language. Systems, 30(4):245–275, 2005.
Physical Computing
Processing 77