A general framework for robot programming using a matrix based supervisory controller

269 204 0
A general framework for robot programming using a matrix based supervisory controller

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

A GENERAL FRAMEWORK FOR ROBOT PROGRAMMING USING A MATRIX-BASED SUPERVISORY CONTROLLER KOH NIAK WU (B.Eng.(Hons.), King’s College, London) A THESIS SUBMITTED FOR THE DEGREE OF DOCTOR OF PHILOSOPHY DEPARTMENT OF MECHANICAL ENGINEERING NATIONAL UNIVERSITY OF SINGAPORE 2008 ACKNOWLEDGMENTS These past few years has had its share of ups and downs - the ups sanction a temporary moment of bliss; the downs, however, persevere and has always been a struggle for me. It is during these moments one realizes that all a person really needs is a listening ear, an extra pair of hands and some words of motivation to fuel an already exhausted fire. I am indebted to have all three present and for this, my research will be dedicated to those that have made these years an unforgettable adventure. To my supervisor, Marcelo H. Ang Jr, for his perpetual belief and support for my research; to my co-supervisor, Lim Ser Yong, for introducing the matrix-based controller; to Cezary Zieli´ nski for his patience, wisdom and aid in the theoretical development of the framework; to the boys at SIMTech, Chee Wang and Tao Ming, for putting up with my whims and fancies and most importantly for all the help. To the boys who have taken permanent residency in the lab, Mana Saedan for his advice and cool demeanour; Yuanping, Tirtha and Gim Hee for the times when I was stuck in thought. To Mum and Dad for their undying love and encouragement; to my sisters who unknowingly are my stress relievers; to Coco for clarifying my thoughts with the nightly walks. ii To my third Uncle and Aunt for their understanding; to Guo Lun for showing me what it means to relax. Lastly, to my honey, for everything. iii NOMENCLATURE V R U UD X set set set set set of of of of of jobs resources input signals dispatch control signals conditions a v r u uD x vector vector vector vector vector vector vs vc vd vector of enabled jobs vector of completed jobs vector of deactivated jobs as ac ad vector of enabled job-agents vector of completed job-agents vector of deactivated job-agents rs rc rd vector of used resources vector of idle resources vector of released resources na nv nr nu nD nx number number number number number number of of of of of of job-agents jobs resources input signals dispatch control signals conditions of of of of of of job-agents jobs resources input signals dispatch control signals conditions iv Q Qa Qv Qr Qu QD input incidence matrix job-agent sequencing matrix job sequencing matrix resource requirements matrix input signal matrix dispatch control matrix S Sa Sv Sr Sy output incidence matrix job-agent start matrix job start matrix resource release matrix task output matrix M m Petri net incidence matrix Petri net marking vector Uv Ua Ur Job dependency matrix Job-agent dependency matrix Resource dependency matrix C E R T V f data processing resources effectors exteroceptors communication resources virtual sensors transition function i discrete time instant v TABLE OF CONTENTS Page Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii Nomenclature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi Chapters:: 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2. Literature Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Robot Programming . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Robot Programming Classes . . . . . . . . . . . . . . . . . . 2.1.2 Robot Programming Methods over the Decade . . . . . . . vi 3. 2.2 Task Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Matrix-Based Supervisory Controller: Foundations . . . . . . . . . . . . 15 3.1 Matrix Model for Discrete Event Systems . . . . . . . . . . . . . . 16 3.1.1 The Matrix Discrete Event Model . . . . . . . . . . . . . . 17 . . . . . . . . . . . . . . . . . . . . 20 3.2.1 Job Start Equation . . . . . . . . . . . . . . . . . . . . . . . 23 3.2.2 Resource Release Equation . . . . . . . . . . . . . . . . . . 23 3.2.3 Task Output Equation . . . . . . . . . . . . . . . . . . . . . 23 3.3 Petri Net from Discrete Event Matrices . . . . . . . . . . . . . . . . 27 3.2 Discrete Event State Equation 3.3.1 Petri Net Marking Transition . . . . . . . . . . . . . . . . . 28 3.3.2 Complete Dynamical Description of Discrete Event Systems 30 3.3.3 Timed Simulations . . . . . . . . . . . . . . . . . . . . . . . 31 3.3.4 Dispatching: Conflict Resolution Subroutine . . . . . . . . . 32 3.4 Workcell Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.4.1 Q matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.4.2 S matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.4.3 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.4.4 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.4.5 Simulation 3: Deadlock . . . . . . . . . . . . . . . . . . . . 42 3.4.6 Simulation 4: Timed Petri Net . . . . . . . . . . . . . . . . 44 3.4.7 Simulation 5: Timed Petri Net with Deadlock . . . . . . . . 46 3.5 Another Workcell Simulation . . . . . . . . . . . . . . . . . . . . . 48 vii 3.5.1 S matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.5.2 Results: Timed Petri Net . . . . . . . . . . . . . . . . . . . 52 3.6 Simulation of Parallel Jobs 4. . . . . . . . . . . . . . . . . . . . . . . 54 3.6.1 Q and S matrices . . . . . . . . . . . . . . . . . . . . . . . . 55 3.6.2 Case 1: One Input, Two Outputs . . . . . . . . . . . . . . . 55 3.6.3 Case 2: Two Inputs, One Output . . . . . . . . . . . . . . . 57 3.6.4 Case 3: Two inputs, Two Outputs . . . . . . . . . . . . . . 59 3.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Matrix-Based Supervisory Controller: An Extension . . . . . . . . . . . . 63 4.1 The Issue of Conditions . . . . . . . . . . . . . . . . . . . . . . . . 63 4.2 Modified Matrix Model . . . . . . . . . . . . . . . . . . . . . . . . 64 4.3 Improved Matrix Model . . . . . . . . . . . . . . . . . . . . . . . . 65 4.3.1 Job Start Equation . . . . . . . . . . . . . . . . . . . . . . . 67 4.3.2 Resource Release Equation . . . . . . . . . . . . . . . . . . 68 4.4 Job Dependency Matrix, Uv . . . . . . . . . . . . . . . . . . . . . . 70 4.5 Deadlock Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.5.1 An Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.5.2 m-Job Case (m = 1, , nv ) . . . . . . . . . . . . . . . . . . . 75 4.5.3 Combinations . . . . . . . . . . . . . . . . . . . . . . . . . . 76 4.6 Simplifying the Matrix-based Equations . . . . . . . . . . . . . . . 83 4.6.1 Selective AND operator (SAND) . . . . . . . . . . . . . . . 83 4.6.2 Simplified Equations . . . . . . . . . . . . . . . . . . . . . . 85 4.6.3 Job Deactivation Equation 86 viii . . . . . . . . . . . . . . . . . . [53] R. Huq, G.K.I. Mann, and R.G. Gosine, “Behavior-modulation technique in mobile robotics using fuzzy discrete event system,” in IEEE Transactions on Robotics, Oct. 2006, vol. 22 of 5, pp. 903–916. [54] T. Murata, “Petri nets: Properties, analysis and applications,” in Proceedings of IEEE, April 1989, vol. 77, pp. 542–580. [55] F. L. Lewis, H .H. Huang, O. C. Pastravanu, and A. Grel, “A matrix formulation for design and analysis of discrete event manufacturing systems with shared resources,” in IEEE International Conference on Systems, Man, and Cybernetics, October 1994, vol. 2, pp. 1700–1705. [56] Jr J. Mireles and F. L. Lewis, “Intelligent material handling: Development and implementation of a matrix-based discrete-event controller,” in IEEE Trans. on Industrial Electronics, December 2001, vol. 48 of 6, pp. 1087–1097. [57] S. Boghan, F. L. Lewis, Z. Kovacic, A. Grel, and M. Stajdohar, “An implementation of the matrix-based supervisory controller of flexible manufacturing systems,” in IEEE Trans. On Control Systems Technology, September 2002, vol. 10 of 5, pp. 709–716. [58] P. Ballal, V. Giordano, P. Dang, S. Gorthi, J. Mireles, and F.L. Lewis, “A labview based test-bed with off-the-shelf components for research in mobile sensor networks,” in IEEE International Symposium on Intelligent Control, Oct. 2006, pp. 112–118. [59] V. Giordano, P. Ballal, F.L. Lewis, B. Turchiano, and J.B. Zhang, “Supervisory control of mobile sensor networks: Math formulation,simulation,and implementation,” in IEEE Trans. on Systems, Man and Cybernetics, Aug. 2006, vol. 36 of 4, pp. 806–819. [60] V. Giordano, F.L. Lewis, P. Ballal, and B. Turchiano, “Supervisory controller for task assignment and resource dispatching in mobile wireless sensor networks,” in Int. Journal of Advanced Robotic Systems. 2005, Cutting Edge Robotics, Proliteratur Verlag. [61] J. Wolter, S. Chakrabarty, and J. Tsao, “Methods of knowledge representation for assembly planning,” in Proceedings of the NSF Design and Manufacturing Systems Conference, January 1992, pp. 463–468. 228 [62] S. D. Eppinger, D. E. Whitney, and R. P. Smith, “Organizing the tasks in complex design projects,” in Proceedings of the Int. Conf. of Design Theory and Methodology, ASME, September 1990, pp. 39–46. [63] S. D. Eppinger, D. E. Whitney, and R. P. Smith, “The design structure system: A method for managing the design of complex systems,” in IEEE Trans. on Engineering Management, August 1981, pp. 71–74. [64] J. Giarratano and G. Riley, Expert Systems, PWS-Kent Publishing Co., 1989. [65] T. Davis, “Research and software development in sparse matrix algorithms,” Department of Computer and Information Science and Engineering, University of Florida, 2007. [66] W. H. Press, S. A. Teukolsky, W. T. Vettering, and Brian P. Flannery, Numerical Recipes in C: the Art of Scientific Computing, New York: Cambridge University Press, 2nd edition, 1992. [67] H. Alayan and R. W. Newcomb, “Binary petri-net relationships,” in IEEE Trans. On Circuits and Systems, May 1987, vol. 34 of 5, pp. 565–568. [68] N. W. Koh, M. H. Ang, and S. Y. Lim, “A theoretical insight to the improved matrix-based supervisory controller,” in Int. Conf. on Computational Intelligence, Robotics and Autonomous Systems. December 2005, Elsevier (EI), ISSN: 02196131. [69] N. W. Koh, M. H. Ang, and S. Y. Lim, “Implementation of a matrix-based discrete event controller for robotic tasks,” in Asian Conf. for Industrial Automation and Robotics, May 2005, pp. 410–415. [70] N. W. Koh, M. H. Ang, and S. Y. Lim, “Robotic tasks employing an improved matrix-based discrete event controller,” in Int. Symp. on Collaborative Research in Applied Science, October 2005, pp. 195–202. [71] J.Jr. Mireles and F.L.; Lewis, “Deadlock analysis and routing on free-choice multipart reentrant flow lines using a matrix-based discrete event controller,” in IEEE Conference On Decision and Control, May 2002, vol. 1, pp. 181–186. [72] Eric W. Weisstein, “Pascal’s triangle,” From MathWorld–A Wolfram Web Resource. 229 [73] N. Mansard and F. Chaumette, “Task sequencing for high level sensor based control,” in Trans. on Robotics and Automation, Feb. 2007, vol. 23 of 1, pp. 60–72. [74] K. Nagatani and S. Yuta, “An experiment on opening door behavior by an autonomous mobile robot with a manipulator,” in IEEE/RSJ International Conference on Intelligent Robots and Systems, August 1995, vol. 2, pp. 45–50. [75] H. Edelstein, “Unraveling client/server architecture,” in Database Management Systems, May 1994, vol. 34 of 7. [76] A. Dickman, “Two-tier versus three-tier apps.,” in Informationweek, Nov. 1995, vol. 553, pp. 74–80. [77] J. Blazewicz, K. H. Ecker, E. Pesch, G. Schmidt, and J. Weglarz, Scheduling Computer and Manufacturing Processes, Springer, 2nd edition, 2001. [78] B. P. Gerkey and M. J. Mataric, “A formal analysis and taxonomy of task allocation in multi-robot systems,” in The Int. Journal of Robotics Research. Sept. 2004, vol. 23, pp. 939–954, Sage Publications. [79] R. C. Arkin, Behavior-Based Robotics, MIT Press, 1998. [80] C. Zielinski, W. Szynkiewicz, T. Winiarski, and T. Kornuta, “Mrroc++ based system description,” Tech. Rep., Warsaw University of Technology, Institute of Control and Computation Engineering, ul. Nowowiejska 15/19, 00-665 Warsaw, Poland, Feb. 2007. [81] Microsoft Corp., “Exception handling in visual c++,” Visual C++ Language Reference. [82] M. Boshernitsan and M. Downes, “Visual programming languages: A survey,” Tech. Rep., Computer Science Division (EECS), University of California Berkeley, December 2004. [83] Chia-Hung Chien, P.H. Chang, and Von-Wun Soo, “Market-oriented multiple resource scheduling in grid computing environments,” in 19th Int. Conf. on Advanced Information Networking and Applications, March 2005, vol. 1, pp. 867–872. 230 [84] J. R. D. Dyson, N. E. Griffiths, C. K. Lim, S. A. Jarvis, and G. R. Nudd, “Trusting agents for grid computing,” in IEEE Int. Conf. on Systems, Man and Cybernetics, October 2004, vol. 4, pp. 3187–3192. [85] M. Fukuda, Y. Tanaka, N. Suzuki, L.F. Bic, and S. Kobayashi, “A mobile-agentbased pc grid,” in Autonomic Computing Workshop, June 2003, pp. 142–150. [86] C. Zielinski, “Reaction to errors in robot systems,” in Int. Workshop on Robot Motion and Control, RoMoCo, November 2002, pp. 201–208. [87] N. W. Koh, C. Zieli´ nski, M. H. Ang, and S. Y. Lim, “Job-agents: How to coordinate them?,” in IEEE International Conference on Robotics and Automation, 2007. [88] M. B. Dias, R. Zlot, N. Kalra, and A. Stentz, “Market-based multirobot coordination: A survey and analysis,” in Proceedings of the IEEE, July 2006, vol. 94, pp. 1257–1270. [89] A. Pongpunwattana, R. Rysdyk, J. Vagners, and D. Rathbun, “Market-based co-evolution planning for multiple autonomous vehicles,” in Proc. of the 2nd AIAA Unmanned Unlimited Systems, Technologies and Operations conference, 2003. [90] E. Wolfstetter, “Auctions: An introduction,” in Journal of Economic Surveys, 1996, vol. 10, pp. 367–420. 231 APPENDIX A PUBLICATIONS ARISING FROM THIS PH.D. WORK International Conferences (Refereed) • Niak Wu Koh, Cezary Zieli´ nski, Marcelo H. Ang Jr. and Ser Yong Lim, ”Jobagents: How to Coordinate them?”, International Conference on Robotics and Automation (ICRA’07), pp. 4436-4441, Rome, Italy, 10-14 April 2007. • Niak Wu Koh, Cezary Zieli´ nski, Marcelo H. Ang Jr. and Ser Yong Lim, ”Matrix-based Supervisory Controller of Transition-Function Specified Robot Controllers”, Proceedings of the 16-th CISM-IFToMM Symposium on Robot Design, Dynamics, and Control (RoManSy’06), CISM No. 487, pp. 229-236, Warsaw, Poland, 20-24 June 2006. • N. W. Koh, M. H. Ang Jr and S. Y. Lim, ”A Theoretical Insight to the Improved Matrix-Based Supervisory Controller”, International Conference on Computational Intelligence, Robotics and Autonomous Systems (CIRAS’05), pp. 89 (IC5-6), Singapore, 13-16 December 2005, ISSN: 0219-6131. 232 • Niak Wu Koh, Marcelo H. Ang Jr and Ser Yong Lim, ”Robotic Tasks Employing an Improved Matrix-Based Discrete Event Controller”, International Symposium on Collaborative Research in Applied Science (ISOCRIAS’05), pp. 195-202, Vancouver, Canada, 7-9 October 2005. • Niak Wu Koh, Marcelo H. Ang Jr and Ser Yong Lim, ”Implementation of a Matrix-Based Discrete Event Controller for Robotic Tasks”, Asian Conference for Industrial Automation and Robotics (ACIAR’05), pp. 410-415, Bangkok, Thailand, 11-13 May 2005. Book Chapter (Refereed) • N. W. Koh, M. H. Ang Jr and S. Y. Lim, MECHATRONIC SYSTEMS – Devices, Design, Control, Operation, and Monitoring, Chapter 5: Robotic Tasks Using Discrete Event Controller, CRC Press, Taylor & Francis, Boca Raton, FL. 233 APPENDIX B PRIMITIVES PA-10 Primitive PA10Invert( Type CERT Description Invert the arm with force sensing capability Upon sensing a predefined force in the X, Y or Z axes, the arm will come to a halt Duration in milliseconds With TCP capabilities if TRUE, none if FALSE CERT Home the arm with force sensing capability Upon sensing a predefined force in the X, Y or Z axes, the arm will come to a halt Duration in milliseconds With TCP capabilities if TRUE, none if FALSE nDuration msecs As Integer, bIsTCP As Boolean) PA10Home( nDuration msecs As Integer, bIsTCP As Boolean) Table B.1: PA-10 CERT Primitives 234 Primitive PA10JointPos( Type CERT Description Move the arm in joint mode with force sensing capability. Upon sensing a predefined force in the X, Y or Z axes, the arm will come to a halt Joint in degrees Joint in degrees Joint in degrees Joint in degrees Joint in degrees Joint in degrees Joint in degrees Duration in milliseconds With TCP capabilities if TRUE, none if FALSE CERT Sets the arm in force and motion control dJoint1 degrees As Double, dJoint2 degrees As Double, dJoint3 degrees As Double, dJoint4 degrees As Double, dJoint5 degrees As Double, dJoint6 degrees As Double, dJoint7 degrees As Double, nDuration msecs As Integer, bIsTCP As Boolean) PA10ForceMotion() Table B.2: PA-10 CERT Primitives (continued) Primitive PA10SelectForceAxis( bIsX as Boolean, bIsY as Boolean, bIsZ as Boolean) Type CER Description Set an axis as force compliant X-axis if TRUE, maintains prior selection if FALSE Y-axis if TRUE, maintains prior selection if FALSE Z-axis if TRUE, maintains prior selection if FALSE Table B.3: PA-10 CER Primitives 235 Primitive FTZero(bIsTrue As Boolean) FTSense( bIsX As Boolean, Type CR CR Sense the force in an axis X-axis if TRUE, no sensing in X-axis if FALSE Y-axis if TRUE, no sensing in Y-axis if FALSE Z-axis if TRUE, no sensing in Z-axis if FALSE relative threshold in the X-axis relative threshold in the Y-axis relative threshold in the Z-axis CR Sense the force in an orientation axis Roll-axis if TRUE, no sensing in Roll-axis if FALSE Pitch-axis if TRUE, no sensing in Pitch-axis if FALSE Yaw-axis if TRUE, no sensing in Yaw-axis if FALSE relative threshold in the X-axis relative threshold in the Y-axis relative threshold in the Z-axis bIsY As Boolean, bIsZ As Boolean, nXTheshold Newtons As Integer, nYTheshold Newtons As Integer, nZTheshold Newtons As Integer) FTSenseOrientation( bIsRoll As Boolean, Description Zero the force sensor bIsPitch As Boolean, bIsYaw As Boolean, nXTheshold Newtons As Integer, nYTheshold Newtons As Integer, nZTheshold Newtons As Integer) Table B.4: PA-10 CR Primitives 236 Primitive Gripper(bIsOpen As Boolean) Type CE Description Open gripper if TRUE, closes gripper if FALSE PA10Gravity() CE Gravity mode PA10SelectMotionAxis( bIsX as Boolean, CE Set an axis in motion control X-axis if TRUE, maintains prior selection if FALSE Y-axis if TRUE, maintains prior selection if FALSE Z-axis if TRUE, maintains prior selection if FALSE CE Move the endpoint to a specified position X in meters Y in meters Z in meters Z in degrees X in degrees Z in degrees Duration in seconds bIsY as Boolean, bIsZ as Boolean) PA10MoveEE( dX meters as Double dY meters as Double dZ meters as Double dEulerZ1 degrees as Double dEulerX degrees as Double dEulerZ2 degrees as Double dDuration secs As Double) Table B.5: PA-10 CE Primitives 237 SIMTech Base Primitive BaseCalibrate() Type CE Description Calibrate the base BaseMove2Pos( dX metres As Double, dY metres As Double, dTheta degrees As Double, dDuration secs As Double) CE Move to a specified position X in meters Y in meters Theta in degrees Duration in seconds BaseMoveWithVel( dXdot metres sec As Double, dYdot metres sec As Double, dThetadot degrees sec As Double, dDuration secs As Double) CE Move with a specified velocity X-speed in meters per second Y-speed in meters per second angular speed in degrees per second Duration in seconds BaseMove2Pos AOM( CE Move to a specified position with dynamics (Augmented Object Model) X in meters Y in meters Theta in degrees Duration in seconds dX metres As Double, dY metres As Double, dTheta degrees As Double, dDuration secs As Double) Table B.6: Base CE Primitives 238 Primitive BaseMove2Pos VDM( Type CE Description Move to a specified position with dynamics (Vehicle Dynamics Model) X in meters Y in meters Theta in degrees Duration in seconds CE Move to a specified position with dynamics (Constraint Force Control) X in meters Y in meters Theta in degrees Duration in seconds dX metres As Double, dY metres As Double, dTheta degrees As Double, dDuration secs As Double) BaseMove2Pos CFC( dX metres As Double, dY metres As Double, dTheta degrees As Double, dDuration secs As Double) Table B.7: Base CE Primitives (continued) Primitive Use IMU() Type CR Use Gyro() CR Description Enable the inertial measurement unit (IMU) Enable the gyroscope Table B.8: Base CR Primitives 239 Roomba Primitive MoveAlmostStraight( bIsForward As Boolean, nVel mmpsec As Integer, nDuration msecs As Integer, bIsTCP As Boolean) Type CET Description Move straight Forward if TRUE, back if FALSE Velocity in millimetres per second Duration in milliseconds With TCP capabilities if TRUE, none if FALSE MoveInAnArc( nVel mmpsec As Integer, nRadius mm As Integer, nDuration msecs As Integer, bIsTCP As Boolean) CET Move in an arc Velocity in millimetres per second Arc radius in millimetres Duration in milliseconds With TCP capabilities if TRUE, none if FALSE goCircle( nVel mmpsec As Integer, nRadius mm As Integer, bIsTCP As Boolean) CET Outline a circle Velocity in millimetres per second Circle radius in millimetres With TCP capabilities if TRUE, none if FALSE Table B.9: Roomba CET Primitives 240 Primitive goSquare( nVel mmpsec As Integer, nDuration msecs As Integer, bIsTCP As Boolean) Type CET Description Outline a square Velocity in millimetres per second Duration in milliseconds With TCP capabilities if TRUE, none if FALSE goTriangle( nVel mmpsec As Integer, nDuration msecs As Integer, bIsTCP As Boolean) CET Outline a triangle Velocity in millimetres per second Duration in milliseconds With TCP capabilities if TRUE, none if FALSE Spot() CET Activate Spot function Table B.10: Roomba CET Primitives (continued) Primitive Spot() Clean() Max() Type CER CER CER Description Activate Spot function Activate Clean function Activate Max function Table B.11: Roomba CER Primitives 241 Primitive goFwd( nVel mmpsec As Integer, nDuration msecs As Integer, Type CE Description Move forward Velocity in millimetres per second Duration in milliseconds goBack( nVel mmpsec As Integer, nDuration msecs As Integer, CE Move backward Velocity in millimetres per second Duration in milliseconds goLeft( nDuration msecs As Integer, CE Rotate left Duration in milliseconds goRight( nDuration msecs As Integer, CE Rotate right Duration in milliseconds goStop() CE Stop Table B.12: Roomba CE Primitives 242 Primitive BumpRight() BumpLeft() Type CR CR Description Sense right bumper Sense left bumper Wall() WallVirtual() CR CR Sense a wall Sense a virtual wall CliffLeft() CliffFrontLeft() CliffRight() CliffFrontRight() CR CR CR CR Sense Sense Sense Sense SensorDirtLeft() SensorDirtRight() CR CR Sense left dirt sensor Sense right dirt sensor ButtonPower() ButtonSpot() ButtonClean() ButtonMax() CR CR CR CR Sense Sense Sense Sense left cliff sensor front left cliff sensor right cliff sensor front right cliff sensor if if if if Power button is pressed Spot button is pressed Clean button is pressed Max button is pressed Table B.13: Roomba CR Primitives 243 [...]... task Offline Programming Offline programming is based on textual means of expressing a task that a robot system has to accomplish and is expressed in a robot programming language (RPL) The advantage of using RPLs is associated with making the robot more productive, allowing ease of sensor data utilization and the creation of program documentation The phase which is required for programming has to be as... (Transformation of Relations Between Objects Language) [11], RAPT (Robot Automatically Programmed Tool) [12, 13, 14] and SLIM (Standard Language for Industrial Manipulators) [15] are examples of such a language On the fourth level, instead of specifying all operations, only a general description of the goal should suffice In this case the control system has to generate the plan of actions, and later carry... the framework, this research aims to allow an untrained user to construct a robot program (be it with single or multiple agents), via the planning of a task, with ease and eloquence without having to consult an expert roboticist Contributions of this research include: • a generic robot programming and supervisory control framework employing a matrix- based controller, resulting in the ease of programming. .. Reprogrammability can either mean supplying a new program of actions through the communication channel to an unalterable robot system or modification of the internal robot system structure (robot software) The former case deals with a program of actions that is usually coded in a robot programming language (RPL) and delivered through the communication channel to the control subsystem for interpretation and... for programming language(s), libraries and application programming interfaces (APIs), which enable a programmer to describe a robot behaviour • The underlying infrastructure including designs for architectures that support and execute robot behaviour descriptions • The design of interactive systems that allow the human programmer to interact with the programming component, to create, modify and examine... programs and systems resources, both statically and during execution Human Programmer Human -Robot Interaction (HRI) Programming Infrastructure Robot Virtual Robot Figure 2.1: Robot Programming System (from [1]) 5 2.1.1 Robot Programming Classes Methods of robot programming can be classified into two broad classes: online and offline programming methods Online programming utilizes the robot while the program... the task given an initial plan with the added capability of coordinating multiple parallel tasks To cater for mishaps, a validity check of the intended plan has also been developed allowing the matrix- based controller to determine its feasibility in terms of job sequencing and resource allocation Resulting from the checker is an output that notifies the possible error location An overall robot programming. .. parallel tasks (over multiple robots) are executed (perhaps in a coordinated manner) Controlling multiple robots in a coordinated fashion is no trivial feat The intention is to allow users to carry out such tasks in a fairly intuitive manner Contributions The collective goal of this research is to develop a robot programming framework based on a matrix- based supervisory controller employing task primitives... into a matrix- based framework • Chapter 6 introduces a formal description into task primitives • Chapter 7 formalizes the notion of job-agents producing the rudiments for the advanced matrix model • Chapter 8 concludes 3 CHAPTER 2 LITERATURE REVIEW 2.1 Robot Programming Three subsystems are usually distinguished in a robot: effectors (manipulators or pedipulators), receptors (internal or external sensors)... demand for robotic applications which implies the inevitability of programming With the 9 omnipresence of programming, a standard that promotes the reusability of code by the formalization of its structure should be instilled [37, 38, 39] (discussed in Chapter 6) A common convergence for ease of programming undoubtedly lies in that of a graphical (or icon -based) language Visual languages have been around . and has always been a struggle for me. It is during these moments one realizes that all a person really needs is a listening ear, an extra pair of hands and some words of motivation to fuel an already. boys who have taken permanent residency in the lab, Mana Saedan for his advice and cool demeanour; Yuanping, Tirtha and Gim Hee for the times when I was stuck in thought. To Mum and Dad for their. A GENERAL FRAMEWORK FOR ROBOT PROGRAMMING USING A MATRIX-BASED SUPERVISORY CONTROLLER KOH NIAK WU (B.Eng.(Hons.), King’s College, London) A THESIS SUBMITTED FOR THE DEGREE OF

Ngày đăng: 11/09/2015, 21:49

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan