Index Index

actuators, 585, 592–593 Symbols analog, 585 ( ) (parentheses), 481 digital, 585 @ (at sign), 101 digital outputs, 592 / (division operator), 481 generic contracts for, 585 / (forward slash), 100, 607 motors, 592 ؊ (hyphen), 100, 607 sound/voice synthesis, 593 ! (logical operator), 481 Add Bluetooth Device Wizard, 604–606 && (logical operator), 481 AGEIA PhysX engine. See PhysX engine || (logical operator), 481 Aldebaran Nao , 580, 734 ؊ (minus operator), 481 Aldebaran , 580, 734 % (modulo operator), 481 Alias Wavefront format, 249 * (multiplication operator), 481 aliasing, 240 + (plus operator), 481 AllStopHandler, 310 /alt qualifier, 98, 116, 216, 297, 763 Ambient color value, 251 analog actuator, 585 A Analog Input (double), 738 abstract services. See generic contracts Analog Output (double), 738 acceleration sensors, 591 analog sensors, 585 Ackermann steering, 565 AnalogSensor, 270 Action Input Pin, 478 AnalogSensorArray, 270 Actions and Notifications dialog box, 489, 492 Angular (member), 382 activate, 42 AngularDamping, 250, 260 Activate method, 55, 56, 81 anti-aliasing setting, 240 ActivateDsspOperationHandlers, 136 Anycom Blue USB-240 Adapter, 603 ActivationSettings, 41, 72, 74, 765, 768 APIs (application programming interfaces), 84 ActiveSync, 687 operations as, 92 ActiveSync Remote Display, 688, 690 Append function, 494 activities (VPL), 8, 471. See also specific application programming interfaces. See APIs activities Application tab, 114 basic (list), 479–480 applications, 84. See also services configuring, 508–513 Approach mode, 453 modifying diagram forCOPYRIGHTED real robot, 512–513 Approach MATERIAL state, 355, 369–370 setting configuration for diagram, 509–511 Arbiter.Activate, 42, 48, 55 SimpleDashboard service, starting upon Arbiter.CombineWith method, 137 execution, 511–512 Arbiter.FromHandler, 42, 69 custom, 487–493 Arbiter.FromIteratorHandler, 47, 68 inputs, 478–479 Arbiter.Receive, 46, 47, 55 outputs, 478–479 arbiters, 38 services and, 501–502 combining, 60–61 Activity activity, 480 nested, 60–61 activity boxes, 473 receivers and, 55–65 ActivRobots, 584. See also Pioneer 3DX arithmetic operations, 481

bbindex.inddindex.indd 799799 55/7/08/7/08 99:40:51:40:51 AMAM Arm Mover project (VPL)

Arm Mover project (VPL), 534–542 Basic Activities toolbox, 473, 479–480 ArmMover activity, 535–536, 542 basic input/output system (BIOS), 30 LynxL6Arm activity, 540, 541, 542 Basic Simulation Environment, 230 Lynxmotion L6 arm and, 542 BASIC Stamp, 93, 94, 612–613, 642, 731, 732, moving the arm, 539–542 733, 735, 736 SetPollInterval action, 536–539, 542 Battery (generic contract), 270 controller and, 534, 535, 537 Bayes Rule, 466 Arm Pose panel, 675, 676, 677 beeping/flashing. See flashing/beeping ArmMover activity, 535–536, 542 Behavior method, 629, 638, 641 arms. See robotic arms behavior states (Robo-Magellan simulation arrow keys, 181 scenario), 354–374 Articulated Arm contract, generic, 668–670 behavior-based controllers, 594–596 articulated entities, 377–418. See also joints; BehaviorLoop, 356, 357, 367 robotic arms behaviors, 85, 91–92, 625 articulated robotic arms, 419, 565, 574, 655–665. reactive, 636 See also legged ; robotic arms Belkin USB VCD (video capture device), 160, articulated robots, 10, 375, 467, 655, 656, 665 205, 206 artificial intelligence ‘roadblock,’ 797 bin directory, 19 aspect ratio, 206 binormal axis, 371 AssemblyInfo.cs, 278 BIOS (basic input/output system), 30. asynchronous events, 30, 38, 44, 52, 90, 91. See also RIOS See also CCR bipedal robots, 580, 655. See also humanoid robots asynchronous PTP, 660 bit banging, 755, 765 at sign (@), 101 bitmaps, 81, 99, 194, 243, 462, 544 Atmel, 732, 733 from byte array, 213 AttachedCameraEntity, 403, 438 maze, 461, 462, 463, 464, 465 autonomous robots, 10, 12, 13, 170, 265, 457, PictureBox and, 206, 213, 214, 215, 364 572–573, 681–730. See also Stinger CE Simulation Environment and, 546 development environment, 684 System.Drawing and, 161, 348 PC-based, 681–684 Blender, 318 AvoidBoundary state, 425 Blind state, 425, 427 AvoidCollision state, 355, 373–374 blocking I/O, 76 AVR brand, 733 blocking threads, 46 Axim PDA, 686, 687 bluesphere, 260 AxleSpeed, 296 Bluetooth, 160, 163, 221 Add Bluetooth Device Wizard, 604–606 connection B Boe-Bot, 614–615 6-BackAndForth project, 517–518 LEGO NXT, 602–606 BackAway state, 356, 372–373 device names, 605 backslashes, 607. See also forward slash discovery, 603 Ball Follower project, 554–558 ZX-Bluetooth module, 754, 755 BallFollower VPL diagram, 556–558 BMP. See bitmaps Simulation Environment, 554–556 Board Support Package (BSP), 720 BallCourt, 554, 555, 556 Boe-Bot (Parallax), 8, 9, 93–94, 576–578. See also BallFollower VPL diagram, 556–558 remotely connected robots barriers, 337, 341–342, 374 BASIC Stamp, 612–613, 642, 732, 735, 736 base.Initialize method, 288, 321, 325 Bluetooth connection, 614–615 base.Start, 136 brick, 169 baseVal, 405 building, 611–612 BASIC, 471, 733, 754 bumpers, 167–169 advantages, 733 communicating with, 615 chips with built-in, 733 flashing /beeping, 640–643

800

bbindex.inddindex.indd 800800 55/7/08/7/08 9:40:529:40:52 AMAM Clear Index monitor program, 613 CameraEntity, 266, 272, 322, 403, 547, 548, 550. Parallax services, 578, 642, 647, 651 See also AttachedCameraEntity Robotics with the Boe-Bot, 611–612 cameras, 590. See also Main Camera; webcams using, with MRDS, 611–615 for Corobot entity, 322–323, 340 wandering, 647–652 project, 438 .bos format, 249 for Lynxmotion L6 , 679 bounciness, 255, 261, 314 non-realtime, 236 boxes, 238 realtime, 235–236 giant, 280 capsules, 238 BoxShapeProperties, 271 CapsuleShapeProperties, 271 brain. See brick Cascading Style Sheet (CSS) files, 193, 194, 195, Braintech, 84 199 breadboarding, 612 case sensitivity breakpoints, 125, 126 commands/parameters, 100 Breakpoints (VPL debugger), 487 contract identifiers, 148–149 brick, 84, 93, 601, 735. See also Generic Brick JavaScript, 205 contract; specific robots URI, 86 brightness sensor, 547–548 XML, 188, 193 Broadcom, 603 XSLT and, 191 BSBumper.cs, 167, 168, 169 CastsShadow property, 259 BSDrive service, 93, 94 causalities, 5, 39, 77–79, 91 BSP (Board Support Package), 720 CCR (Concurrency and Coordination Runtime), 5, BSServices, 122 29–82 Build Events tab, 114 applications. See services Build tab, 114 architecture, 38 built-in entities, 252–267 DSS v., 29 bump notifications, 651–652 online forum, 27 bump sensors, 643, 748 user guide, 27, 29 bumper array, 586 Ccr.Adapters.WinForms, 161, 352, 353, 691, 727 Bumper service, 169 CCRExamples project, 33–34 BumperArrayEntity, 265, 273 CenterOfMass, 260 BumperPressed function, 790 central intelligence. See brick bumpers, 586, 789. See also contact CF (Compact Framework) services, 54, 154, 171, sensor array 219, 572, 578, 680, 749 Boe-Bot, 167–169 deploying to PDA, 709–711 virtual, 586 StingerDriveByWire service, 708–713 Busy variable, 526, 528 CF (CompactFlash) slot, 723 button handling, 184–185 Channel 9, 28 byte array, 213, 767 chassis, 284, 285, 286 checkform, 204, 205 Child, 69 C child entities, 248, 288 C++, 471, 476, 720 chips. See microcontrollers templates, 45 Choice, 38, 44, 57–59 CAD packages, 318 Chrysanthakopoulos, George, 73 Calculate activity, 479, 481, 483, 484 Class Reference (MRDS), 37, 221 arithmetic operations, 481 classes, 37 logical operations, 481 generic, 45 callback procedures, 55 inheritance, 98, 215. See also generic contracts camera entity, 402–403 Intellisense and, 37 camera frames, processing. See vision processing Object Browser and, 37 algorithm online reference, 37 Camera menu, 235–236 Clear, 51

801

bbindex.inddindex.indd 801801 55/7/08/7/08 9:40:529:40:52 AMAM cliff sensors

cliff sensors, 532 ConnectWebCam, 207, 210 /clone qualifier, 116 Conscious Robots website, 467 closed-loop control system, 585, 593–594 Console Output, 99, 106, 629 CLR environment, 38, 39, 45, 50, 54, 65, 66, Console.WriteLine, 33, 98, 220. See also LogError; 73, 76, 243 LogInfo; LogVerbose; LogWarning CML (concurrent mapping and localization), 636. Constructor service, 99, 100 See also SLAM contact sensor array, 168, 647, 648, 789 code, sample. See sample code contact sensors, 586. See also bumpers; whiskers coding tips, 37 Contact state, 425, 427 color intensity (value), 450, 452, 463 ContactSensor, 270 color space ContactSensorUpdate, 509 HSV, 450, 452 continuations, 44, 55 RGB, 450, 452, 462, 463, 590 Continuous option, 422 ColorValue, 270 Contract Directory, 106–107 COM ports, 87, 132, 570, 574, 605, 607, 608, 609, contract directory cache, 124 614, 615, 623, 707, 714 contract ID, 208, 265 combined rendering mode, 239 contract identifiers, 85, 86–87 combining arbiters, 60–61 case sensitive, 148–149 command overload, 776–779 ContractPrefix, 503 CommandArguments, 543, 544 contracts, 85, 86–87 commands (MRDS), 100–101 generic. See generic contracts Comment activity, 479, 480 information on. See DssInfo common directory, 19 control loop, 585. See also closed-loop control system Community forum, 27 Control Panel, 99, 102–103 Community Technology Preview. See CTP manually start services with, 102–103, 205 Compact Framework environment. See CF services Motion Recorder, 675 CompactFlash cards, 683, 723 control structures, 68 CompactFlash (CF) slot, 723 controllers, 584, 593–596 companion robots, 797 behavior-based, 594–596 compass sensors, 590–591 closed-loop control system, 593–594 compiling diagrams to services, 502–508 PID, 216, 585, 593, 594, 596, 636, 730 service compilation example, 503–508 controllers (game). See game controllers service compilation options, 502–503 controlling multiple robots, 520–522 compiling services, 121–123 ConvertFile method, 544 completion ports, 68, 69, 139–141 convex mesh, 262 Concatenate function, 494 ConvexMeshShapeProperties, 271 concurrency, 30–31, 39 Coordinations, 699 Concurrency and Coordination Runtime. See CCR CoreCon component, 720 “Concurrent Affairs,” 81 Corobot entity, 7, 11, 269, 276. See also Corobot concurrent mapping and localization (CML), 636. robot; Robo-Magellan simulation scenario; See also SLAM soccer environment Concurrent receiver group, 64, 92 appearance, enhancing of, 318–321 conditionals (VPL), 482–484 Approach state, 355, 369–370 cones. See traffic cones AvoidCollision state, 355, 373–374 config directory, 19 BackAway state, 356, 372–373 config file, 89 behavior states, 354–374 ConfigureBrick, 748 cameras for, 322–323, 340 ConfigureDevices, 749 chassis, 284, 285 Connect button, 171, 207, 264, 443, 608 Corobot service, 277–281, 336 ConnectDrive, 207 defining, 281–293 connection requests, 207–209 Drive methods, 293–296 Connectors, 382 DriveDistance, 312 ConnectR, 797 testing, 312–313

802

bbindex.inddindex.indd 802802 55/7/08/7/08 9:40:539:40:53 AMAM dead reckoning Index FinalApproach state, 356, 371–372 CreateService, 95 Finished state, 356, 373 critical sections, 30 GPS and, 337, 367, 368, 374 CSS (Cascading Style Sheet) files, 193, 194, IR distance sensors, 323–336, 355, 356, 360, 195, 199 361, 368, 372 CTP (Community Technology Preview), 4, 33 CorobotIREntity, 323–331 cubes, 238 SimulatedIR service, 331–336 Current Node, 486–487 meshes, 318–321 Current variable, 519 circuit boards/battery, 319–320 CurrentHeading property, 265 modeling chassis/platform, 319 custom activities, 487–493 modeling tools, 318 7-CustomActivity project, 488–491 realism v. speed, 318 8-CustomActivity project, 491–493 tweaking simulation environment, 320 compilation, 503–508 wheel geometry, 318 CustomActivityInOrderOperations class, 506 MotorTorqueScaling, 313–314 CustomActivityorderForLoop service, 508 platform shape, 284, 285, 286 CustomJoint, 383, 385 RotateDegrees, 312 cyclical behavior, 367 testing, 312–313 cyclone player, 422, 427, 428, 429. See also SimulatedQuadDifferentialDrive service, sumo environment 296–313, 336 manifest, 349 simulation entity notifications, D 300–310 damping effect, 594 testing, 310–312 Dance service, 625–643. See also remotely SimulatedWebcam service, 322–323 connected robots in soccer environment. See soccer environment building, 626–630 tire friction, 314–315 contract identifier, 86 tuning, 313–321 flashing/beeping, 640–643 vision processing algorithm, 362–366 improving behavior, 636–640 Wander state, 355, 367–369 main operations port, 86–87 wheels, 284, 285 Dance.BoeBot.manifest.xml, 635 encoders, 317–318 Dance.Lego.manifest.xml, 635 turning of, 315–317 Dance.LegoV2.manifest.xml, 635 Corobot robot (CoroWare), 159, 281, 282, 319, Dance.manifest.xml, 630–634 457, 583 Boe-Bot, 633–634 Corobot service, 277–281, 336 LEGO NXT Tribot, 632–633 Corobot soccer services, 457 Dance.SimTut2.manifest.xml, 630, 635 Corobot.cs, 278 Dance.Simulation.manifest.xml, 632, 635 CorobotIREntity, 323–331 DARPA Urban Challenge, 13 Corobot.manifest.xml, 278 Dashboard service, 25, 26, 31, 93, 109, 130, 144, CorobotSoccerPlayers service, 447, 448 150, 157, 160, 161, 170, 185. See also CorobotTypes.cs, 278 SimpleDashboard service; TeleOperation CoroWare Corobot robot. See Corobot robot service Counting mode, 466 L6 robotic arm and, 670–671 CountNotification, 489, 490, 491, 493, 495, 496, remotely connected robots and, 615–625 506, 507 user interface, 267 courseware package, 11–12 Data activity, 476, 479, 481 installation, 20 Data Connections dialog box, 475, 477 Create, 94 data flow languages, 471–473. See also VPL Create (robot). See iRobot Create data flow loops, 482 CreateAlways, 144 DataConnections dialog box, 509 CreateDefaultState, 305 .dds files, 254 CreateHexapod method, 436 dead reckoning, 591

803

bbindex.inddindex.indd 803803 55/7/08/7/08 9:40:539:40:53 AMAM dead zone

dead zone, 198, 594, 616 5-Loops, 482–483 deadlocks, 30 6-Loops, 484–485 Debug and Trace Messages page, 105–106, 219, 220 3-Notifications diagram, 478–479 debug print statements, 220 4-Spiral project, 514–515 Debug tab, 114–115 8-TwoRobots project, 520–522 debugger, 125–126, 219–221 4-Variables diagram, 480–482 Visual Studio, 219–220 VPL Explorer, 523–528 VPL, 485–487 running, 475–477 debugging, of service on PDA, 711–713 sensor data, reading of Decentralized Software Services. See DSS from real robots, 512–519 DefaultTexture, 249 from simulated robot, 509–512 DeferredTaskQueue, 273 state, 480 degrees of freedom (DOF), 378 VPLExplorer, 524–528 one, 366–369 VPLSumo, 529–534 six, 377, 390–392, 418. See also Lynxmotion L6 differential drive robots, 565 robotic arm in simulation environment, 263–267 Swing, 378 Differential Drive service, 157, 160 Twist, 378 differential drives, 84. See also generic delegates, 43–44 differential drive Delete, 94 VPL and, 513–516 DeleteSimulationEntity, 304 DifferentialDriveEntity, 263, 265, 289 demoscene.manifest.xml manifest, 525 DifferentialDriveTT, 459 Density (property), 250, 260 Diffuse color value, 251–252 deploying services, 151–155 DiffuseColor, 261 desktop CLR, 54. See also CLR environment digital actuator, 585 Devantech Ltd, 734 Digital Input (Boolean), 738 devices, 735. See also Generic Brick contract Digital Output (Boolean), 738 enums, 747–748 digital outputs (actuators), 592 names, 737 digital sensors, 585 as pins, 735 Dimensions/Radius, 261 Diagram State, 485, 486 Direct Draw Surface, 254 diagrams (VPL), 7, 8 Direct3D, 234 BallFollower, 556–558 directional lights, 257–258 converting, to services. See compiling diagrams DirectionDialog activity, 478, 479, 481, 482 to services directory structure (MRDS), 19–20 creating, 474–475 DirectoryInsert, 136, 145 debugging, 485–487 DirectX, 16, 19, 227, 228, 229–230 directory, 19 SDK, 230, 254 execution model, 484–485 Texture Tool, 254, 319 line-follower, 551–553 DisableRendering flag, 251 nested, 8 DisableRotation flags, 249 projects discovery (Bluetooth), 603 6-BackAndForth project, 517–518 Discussion Forums (MRDS), 108, 219, 563, 573, 7-CustomActivity, 488–491 730, 732, 733, 734, 736 8-CustomActivity, 491–493, 503–508 dispatcher queues, 39, 65–68 5-DriveDistance diagram, 515–516 dispatchers, 5, 39, 65–68 3-DriveInCirclesSim, 513–514 distributing executables, 154 2-GenericContactSensorNXT, 512–513 division operator (/), 481 1-GenericContactSensorSim, 509–512 DLLs, 270–276. See also specific DLLs 1-Hello VPL project, 474–475 helper, 750–753 2-Hello VPL project, 476–477 references, 275 7-LaserRangeFinder, 518–519, 526 signing, 751 9-Lists, 495–499 using statements, 276

804

bbindex.inddindex.indd 804804 55/7/08/7/08 9:40:549:40:54 AMAM enqueued Index DoCompletePhysicsShapeUpdate flag, 251 DssNewService tool, 115–116 documentation (MRDS), 27, 29, 37, 155 qualifiers. See qualifiers documentation directory, 19, 37 simulation service with, 277–278 DOF. See degrees of freedom DSSP (DSS Protocol), 83, 90, 91, 92 dog robots, 10, 565, 580. See also service operations (list), 94–95 RobuDog models SOAP v., 83 dominos, 230, 413, 414, 415, 416, 417, 418, 679. specification, 94 See also robotic arms DsspDefaultDrop, 53 Reverse Dominos button, 415 DsspDefaultLookup, 53 Topple Dominos motion, 415, 416–417 DssProjectMigration tool, 16, 151 ToppleDominoPosition array, 417–418 DssProxy, 71, 92, 123, 134, 696, 697, 742, dongle, 602 746, 750 Drive (generic contract), 270 DsspServiceBase class, 40, 41, 55, 65, 66 Drive methods (Corobot entity), 293–296 DssService1, 34–37 Drive-By-Wire service, 159, 171, 221, 565, 690. dynamic entities, 238 See also StingerDriveByWire service; dynamic joins, 61 TeleOperation service DynamicFriction, 261 DriveControl Form, 162, 173–175 DriveControlEvents, 174 DriveDistance, 159, 184, 216, 270, 290, 291, 293, E 295, 308, 749 eBox-2300, 572, 579, 580, 582, 683, 684, 685, Corobot entity, 312–313 713–725 5-DriveDistance diagram, 515–516 boot process, 714–719 3-DriveInCirclesSim project, 513–514 menu, 714–715 DriveTargetOrientation, 379 MS-DOS refresher, 717–719 DriveTargetPosition, 380 Jump Start kit, 572, 684, 713, 724 DriveTargetVelocity, 379, 380 serial port, setting up, 719–720 Drop, 94 setting up, 713–725 dropping services, 141–142 StingerDriveByWire service, establishing DSS (Decentralized Software Services), 6, 83–155, connection, 721–723 157. See also services transferring files to/from, 723–724 advanced service concepts, 157–222 Visual Studio and, 720–721 CCR v., 29 editor. See Manifest Editor; Simulation Editor command-line tools, LineMesh and, 543–544 Effect ( program), 249 Manifest Editor. See Manifest Editor Effect type, 275 online forum, 28 elbow joint, 397, 405, 662 tools, 149–151 elbowVal, 405 tutorials, 27 embedded PCs, 683–684. See also eBox-2300; user guide, 27 Windows CE web pages, 101–108 Embedded Resource Manager, 99 DSS nodes, 98–99 embedded resources, 83, 187, 191, 192, 193, 194, directory structure of, 99–100 195, 203 DSS Protocol. See DSSP Generic Brick contract and, 753–754 DssDeploy utility, 20, 21, 151–155 Enable rigid body for default camera (option), 241 DssHost, 98–99 EnableCollisions, 382 config file, 106 EnableContactNotifications, 261 shutting down, 108 Encoder, 271 starting, 100–101, 205 encoders (wheel). See wheel encoders dsshost commands end effector, 656–657 backward/forward slashes and, 607 End of Arm (EOA), 657, 661, 669, 671 hyphens and, 607 End variable, 483, 485 dsshost.exe.config, 106 enhanced Dashboard. See Dashboard service DssInfo, 150–151 enqueued, 50, 67, 68. See also posting

805

bbindex.inddindex.indd 805805 55/7/08/7/08 9:40:549:40:54 AMAM entities

entities, 238. See also articulated entities; Corobot Explorer project (simulation), 457–467. See also entity; specific entities VPL Explorer project built-in, 252–267 DifferentialDrive service, modified, 459–460 child, 248, 288 future directions, 466–467 creating, 247–248 Maze Simulator, 159, 458, 461–464 custom, 269. See also Corobot entity ExplorerSim application, 24–26, 464–466 dynamic, 239 background, 458–459 general-purpose, 259–263 Dashboard, 465 kinematic, 239 drawing modes, 466 manipulating, 246 last messages and, 70–71 name of, 250 maps, 465 overlapping, 247 exposure setting, 240 parent, 248, 288 Extensible Markup Language. See XML positioning, 246 Extensible Stylesheet Language Transform. properties. See entity state See XSLT robot, 263–266 exteroceptive sensor data, 585 rotating, 246 exteroceptive sensors, 586–592 saving/loading, 247 eyepoint, 232 selecting, 245 sky and ground, 253–257 static, 239 F velocity of, 250 failures. See Faults Entities menu, 247–248 FalloffEnd, 258 Entities pane, 244 FalloffStart, 258 Entity (member), 381 Faults, 39, 77, 83, 135. See also error handling entity state, 248–250 Fault.xslt file, 203 graphics assets, 249 feedback loop, 585. See also closed–loop material properties, 251–252 control system Misc heading, 249–250 field of view, 589 physical properties, 250 FieldGrass.dss texture, 341 Entity type, 271 FIFO (first-in-first-out) queue, 50, 51 EntityJointConnector, 381 FinalApproach state, 356, 371–372 EntityName, 381 FindBall commands, 453, 454, 455, 456 EntityState, 248, 255, 256, 260, 261, 263, 271, FindPartner, 144, 145 273, 289 Finished state, 356, 373 EOA (End of Arm), 657, 661, 669, 671 finite state machines. See FSMs error handling, 77–80, 135. See also causalities; first-in-first-out (FIFO) queue, 50, 51 Success/Failure ports Fischer technik robot models, 8 Euler angles, 272, 542 Fixed Moves checkbox, 18, 159, 184 Evaluate action, 518 flags. See also specific flags EvaluateRanges activity, 518–519 miscellaneous, 250–251 event handlers. See handlers physics behavior characteristics, 249 event-driven approach, 176 flash drives, 723 _eventsPort, 162, 174, 175, 176 flash memory, 683 exceptions, 39 flashing/beeping. See also remotely Exclusive receiver group, 64, 65, 92 connected robots exclusivity, 64 Boe-Bot, 640–643 executables, distributing, 154 LEGO NXT Tribot, 640–643 Execute button, 675, 677 fog, 254 ExecuteToCompletion arbiter, 68, 69 FollowLine directory, 551. See also Line execution context, 85, 93–94 Follower project Exit Simulator item, 244 FollowLine state, 429 exploration algorithms, 465, 466, 467 ForceLimit, 380

806

bbindex.inddindex.indd 806806 55/7/08/7/08 9:40:549:40:54 AMAM GPS (global positioning system) Index ForLoop activity, 482–484 I2C bus and, 740 custom Integrator robot and, 763–775 defining, 488–491 motors/wheel encoders, 739 final improvement, 499–500 operations, 748–750 improving, 491–493 reconfiguration and, 737 ‹form› tag, 195, 198, 199, 205 sensor/actuator locations, 739 FormEvent, 177 state, 740–748 FormInvoke, 172, 175, 176, 206, 214, 357, defining, 740–742 674, 676 members, 740, 742–743 forms. See Web Forms; WinForms switch/LED access, 739 forums (online), 27–28. See also Discussion Forums terminology, 735–736 XNA, 275 timestamps, 737 forward kinematics, 410, 661–664 unit conversion/calibration, 738–739 arm linkage configuration, 661–662 generic classes, 45 geometry for, 662–664 generic contracts, 31, 84, 93, 98, 215 forward slash (/), 100 for actuators, 585 dsshost commands and, 607 creating, 217–219 frames, 242 extending, 217, 219 joint. See joints implementing, 215–217 webcam, processing of, 212–215 in RoboticsCommon.dll, 270–271 friction, of ground, 255 for sensors, 585 FromWinformEvents class, 352–353 version numbers, 219 FSMs (finite state machines), 70, 87, 89. See also generic differential drive, 31, 93, 157, 438, 446, state machines 458, 513, 516, 520, 521, 552, 558, 618, fully synchronous PTP, 660 627, 637, 690, 697, 698, 734, 739, 749, funneling, 76 775, 781, 784, 794 2-GenericContactSensorNXT project, 512–513 GenericContactSensors activity, 509, 510, G 511, 512 GAC (Global Assembly Cache), 275 1-GenericContactSensorSim project, 509–512 gain, proportional, 593 GenericDifferentialDrive activities, 520, 521, 558 Game Controller service, 164–166, 170, 183 GenericDifferentialDrive service, 438, 446, game controllers, 9, 93, 159, 163, 164, 166, 169, 513–516 170, 175, 179, 599. See also gamepads; geometry modeling, 318 joysticks; trackball; Xbox controllers Get, 53, 79, 94, 118, 127 gamepads, 160, 161, 166, 171, 615, 616, 623–624 GetHandler, 79, 80 Gates, Bill, 4 GetHappiness method, 355, 356, 368, 369, 374 GearRatio, 379 GetIndex function, 494 General Form Operations, 177 GetRandom action, 498–499 general-purpose entities, 259–263 GetRequestType, 118 generic Articulated Arm contract, 668–670 GetSensors, 749 Generic Brick contract, 132, 731, 734–754. See GetSwitches, 749 also Hemisson robot; Integrator robot giant boxes, 280 automatic connection, 737–738 GIF file format, 194, 462, 544 design, 736–740 Global Assembly Cache (GAC), 275 Device class, 743–747 global positioning system. See GPS device enums, 747–748 global variables, 44, 47, 51, 130, 210, 274, devices 782, 783 input/output types, 738 GlobalInstance, 273 names for, 737 GlobalInstancePort, 274 embedded resources in, 753–754 goldencapsule, 260 hardware identifiers, 737 GPS (global positioning system), 299, 459, 590 helper DLL, 750–753 Corobot entity and, 337, 367, 368, 374

807

bbindex.inddindex.indd 807807 55/7/08/7/08 9:40:559:40:55 AMAM graphics assets

graphics assets, 249 IR sensors, 788–790 graphics cards (MRDS requirements), 16 hexapod project (simulation), 430–443 simulation and, 22, 23, 227, 228 building, 435–436 Graphics Settings, 233, 240–241 camera, 438 GraphicsDevice, 275 future directions, 443 Gravity (option), 242 HexapodDifferentialDrive service, 438–439 greybox, 260 joints GridSpacing, 464 creating/attaching, 436–437 Grip parameter, 411 defining of, 434–435 grippers, 592, 656, 657, 662, 665, 668, 669, 676, main body and legs, 431–434 678, 679 MoveLegs method, 439–441 grippers (simulated), 394, 395, 396, 397, 401–402, MoveLegs2 method, 442–443 403, 407, 408, 410, 411, 412, 415 HexapodDifferentialDrive service, 430, gripperVal, 405 438–439, 443 ground, 253–257, 280, 340–341 HexapodEntity service, 430, 431, 438, 442 friction, changing, 255 HexapodShapeDescriptor class, 433 HeightFieldEntity and, 255 Hong, Hoon. See Hoon Hong restitution, changing, 255 Hoon Hong, 665 TerrainEntity and, 256 HostingTutorials directory, 19 TerrainEntityLOD and, 257 HSV color space, 450, 452. See also RGB color texture, changing, 255 space uneven, 256 HTML (Hypertext Markup Language), 188 Ground flag, 251 HTTP utilities, 200, 201 guarding, 64. See also Interleave HttpGet requests, 89, 105, 127, 170, 185, 186, Gumstix boards, 732 188, 196, 197 HttpPost requests, 170, 185, 188, 198, 199, 202, 793, 795, 796 H HttpPostFailure, 203, 795 handlers, 39, 55, 85, 91, 92 HttpPostSuccess, 202, 796 adding to WinForms, 178–180 hue, 450, 452 persisted, 57 humanoid robots, 10, 565, 574, 580, 655, 665, happiness function, 355, 356, 368, 369, 374 668, 734 hardware. See also robotics hardware hunt, 594 configuration/troubleshooting (online forum), 28 Hypertext Markup Language. See HTML requirements, graphics card, 16 hyphen (-), 100 hardware identifiers, 736 dsshost commands and, 607 Generic Brick contract, 737 hardware services (new), 731–798 H-bridge, 592 I HeightFieldEntity, 255 /i parameter, 116, 216, 297, 764 HeightFieldShapeProperties, 271 I2C bus, 740 1-Hello VPL project, 474–475 ICOP Technology, 683 2-Hello VPL project, 476–477 IEnumerable interface, 45 Help menu (simulator), 235 If activity, 480, 482, 483 helper DLL, 750–753. See also Generic Brick IgnoreGravity flag, 249 contract ImageProcessResult, 363, 364 Hemisson Brick service, 787–791 image/video sensors, 590. See also cameras; IR sensors, 788–790 webcams testing, 791 imperative programming model, 471–472 Hemisson Drive service, 76, 95, 789, 791–797 Import Manifest button, 510, 512 Hemisson robot, 786–797 IncludeDebugInfo, 503 drive calibration, 792–793 IndexBuffer, 275 drive power settings, 791 industrial robots, 14, 564, 573, 574, 661

808

bbindex.inddindex.indd 808808 55/7/08/7/08 9:40:559:40:55 AMAM joint(s) Index InertiaTensor, 250, 260 IR (infrared) distance sensors, 323–336, 355, 356, infinite loop. See MainLoop 360, 361, 368, 372, 586–587. See also laser infrared distance sensors. See IR distance range finders sensors CorobotIREntity, 323–331 inheritance, 98, 215. See also generic contracts Hemisson robot, 788–790 InitError property, 250 Line Follower project and, 547–549 Initial State Partner, 129–130 SimulatedIR service, 331–336 initialization, 136–137 Stinger CE and, 699–704 iterators and, 137 iRobot Create, 8, 9, 581–582 Initialize actions, 489, 490, 491, 492, 495, 496, Line Follower project and, 542, 550, 551, 552 497, 508 model, 7 Initialize method, 272, 285–286, 288 simulation environment, 263–264 InitializedWithState flag, 251 sumo competition, 9–10 Initializing state, 425, 426 VPL Sumo and, 530, 532 Innovation First, Inc., 734 iRobot Create Environment, 230 ‹input› tags, 198 iRobot.Create.Simulation.Manifest.xml manifest, inputs, 478–479 520–521, 550 Insert, 94 IRobotStateHandler, 426 InsertEntity, 273 IsEnabled property, 265, 289 InsertEntityGlobal, 273 IsEntityNameInUse, 273 InsertEntityNotificationHandler, 303 ITask interface, 39 InsertItem function, 494 ItemCount property, 51, 70 Integrator robot (Picblok), 731, 754–785 iterators, 45–50 command overload, 776–779 initialization and, 137 direction control pins, 762–763 key points, 46–47 Drive service, new, 775–785 Generic Brick contract and, 763–765 testing, 785–786 J GenericBrickTest, 785–786 jaggies, 240 initialization, 764–765 JavaScript, 127, 185, 188, 201 monitor program, 756–763 case sensitive, 205 main loop, 757–759 for client-side scripting, 203–205 PICAXE Programming Editor, 756–757 tutorials, 203 pin assignments, 757 JIT (Just-In-Time) compiler, 54 protocol commands, 760–763 jitter, 314, 594 polling and, 770–773 Join activity, 480, 481, 482, 483, 484, 485 serial communications, 765–770 JoinAlpha class, 507 services, creation of, 763–775 JoinReceive arbiter, 59, 62 timed operations, 779–783 joins, 38, 59–60 Intellisense, 37, 135 dynamic, 61 Interleave, 63–65, 71, 76, 82, 85, 91, 96, 136, 137, static, 61 162, 164, 166, 172, 206, 302, 353, 360, joint(s), 288, 377–394, 656 776, 796 connectors, 386–387 internal state. See state (of service) controlling, 658–661 InternalDrivingMilliseconds, 426, 427 speed, 658–660 IntersectRay, 273 travel constraints, 660–661 intPort, 50, 55, 56 with different connector orientations, 392 inverse kinematics, 410–412, 664–665 elbow, 397, 405, 662 I/O frame, 378 blocking, 76, 100 hexapod project, 434–435, 436–437 completion routine, 44 with motion limits, 393–394 ports, 736 one DOF, 386–389 IP Camera service, 160, 590 properties, 378–382

809

bbindex.inddindex.indd 809809 55/7/08/7/08 9:40:569:40:56 AMAM joint(s) (continued)

joint(s) (continued) laptops, robots and, 682 revolute, 377 laser range finders (LRFs), 26, 70, 90, 267, 409, shoulder, 397, 405, 434, 435, 662 458, 518–519. See also IR distance sensors; six DOF, 377, 390–392, 418 SICK Laser range finder SmallDamper, 389 VPLExplorer diagram and, 525–528 TestBench. See TestBench LaserRangeFinder activity, 526 wrist, 401, 405, 411, 662 7-LaserRangeFinder project, 518–519, 526 Joint Positions panel, 675, 677 LaserRangeFinderEntity, 267 JointAngularProperties, 378, 379, 386 LaserRangeFinder.fx, 324, 325 JointAxis, 381 last message, 70–71 JointConnectPoint, 381 LateralFunction, 315 JointDriveProperties, 380, 386 LayoutPaths static class, 99 JointLimitProperties, 380 LEDs (light-emitting diodes), 581, 589, 613, 739, JointLinearProperties, 380–381 757, 773, 788 JointMover service, 387–388 left-handed coordinate systems, 234 JointNormal, 381 legacy code, 81, 172. See also WinForms JointProperties, 382, 391 legged robots, 565, 574, 591. See also humanoid joysticks, 31, 71, 76, 159, 160, 161, 166, 170, robots 171, 198, 599, 623, 624, 776. See LEGO Mindstorms NXT kit, 575–576 also Xbox controllers LEGO Mindstorms software, 565, 602, 606 JPG file format, 194, 243, 462, 544 LEGO NXT Brick service, 607–608 Jump Start Kit (eBox), 572, 684, 713, 724 LEGO NXT services, 602 Just-In-Time (JIT) compiler, 54 LEGO NXT services V2, 602, 608–611 LEGO NXT Tribot, 8, 512–513, 575–576. See also remotely connected robots K Bluetooth connection, 602–606 keyboard handling, 180–184 brick, 601 StingerDriveByWire service and, 691, communicating with, 606–608 692–694 building, 601 KeyDown event handler, 180–181, 184 flashing/beeping, 640–643 KeyLocation, 503 manifest, setting up, 616–619 KeyPreview property, 181 Maze Simulator and, 464 KeyUp event, 184 model, 7 Khepera robots, 786. See also Hemisson robot setting up, 601–611 Kick command, 453, 455, 456 in simulation environment, 230, 264–265 Kilner, Chris, 734 soccer environment, 446, 447 kinematic entities, 239 Swann wireless camera on, 158 Kinematic flag, 249 using, with MRDS, 601–611 Kondo KHR-1 robot, 8, 565, 580 wandering, 644–647 K-Team, 731, 734, 786 LEGO NXT V2 Brick service, 610–611 KUKA Educational Framework, 14–15, 655, 680 LEGO.NXT.Tribot.Manifest.xml manifest, KUKA LBR3 robotic arm (simulated), 7, 14, 230, 512, 617 655. See also Lynxmotion L6 robotic arm LEGO.NXT.Tribot.Simulation.Manifest.xml manifest, 511, 515 lexan, 666 L lexical closure, 44 L0Entity, 398–399 light sensors, 589–590 L1Entity, 399–400 light shadows, 259 L2Entity, 400 light-dependent resistors, 589 L3Entity, 400, 401 light-emitting diodes. See LEDs L4Entity, 400, 401 LightEntities, 258, 271 Laboratory for Perceptual Robotics, 13 LightEntity, 257, 259, 271

810

bbindex.inddindex.indd 810810 55/7/08/7/08 9:40:569:40:56 AMAM MaterialName property Index lights, 257–258 Lynxmotion L6 robotic arm, 394, 578–579, 655. directional, 257–258 See also robotic arms omni, 258 Arm Mover project and, 542 spot, 258 building, 666 LimitThreshold, 380 controlling, 667–677 Line Follower project, 542–553 with Dashboard, 670–671 brightness sensor, 547–548 with generic Articulated Arm contract, 668–670 iRobot Create and, 542, 550, 551, 552 with Motion Recorder, 666, 668, 671–677 line-follower VPL diagram, 551–553 gripper, 578, 656 LineMesh utility, 542–547 inverse kinematics, 410 Simulation Environment, 549–551 logjam, 679 Linear (member), 382 overhead camera, 679 linear motion, 661 ‘pick and place’ operation, 677–679 LinearDamping, 250, 260 setting up, 665–667 line-follower VPL diagram, 551–553 simulation model. See robotic arms (simulated) LineMesh utility, 542–547 six DOF, 665 DSS command-line tools, using, 543–544 starting, 666–667 mesh generation, from image file, 544–547 Lynxmotion website, 394, 410 Lisp-based languages, 44 LynxTerm, 579, 666 List activities, 480, 493–494 example, 495–500 List Functions activity, 480, 494 M 9-Lists project, 495–499 Mad Libs, 495 literal loops, 483 MadeBits, 690 LoadResources, 273 MagellanReferee, 339, 342, 344, 345, 346 local axis, 378 magic numbers, 89, 101, 104, 764, 793 local procedure calls, 92 Main Camera, 232, 236, 241, 242, 254, 271, 279 localization, 458, 459, 636. See also SLAM Main Thread 8, 34 LocalPose, 316 MainLoop, 125, 128, 138, 140–141, 758–759 Log method, 220 MainPortInterleave.CombineWith function, 82 LogError, 98, 220 MakeSumoPlayer utility, 427–428 logical AND, 38, 59. See also joins Maneuver message, 533–534 logical operations, 481 Manifest Editor (DSS), 149–150, 349–351, 620–621 logical OR, 38, 57. See also Choice Manifest Load Results, 109–110 LogInfo, 98, 106, 136, 141, 220, 221 Manifest Loader, 99, 617 logjam, 679 manifests, 20, 84, 93, 121, 616–617. See also LogVerbose, 98, 220 specific manifests LogWarning, 98, 220 config file specified in, 130–131 Lookup, 94 creating/modifying loops (VPL), 482–484. See also ForLoop activity; with Manifest Editor, 149–150, 349–351 If activity manually, 146–149 data flow, 482 LEGO NXT Tribot, 616–619 literal, 483 saving/loading, 243 loops, timing, 31 maps, ExplorerSim, 465 5-Loops, 482–483 Marbles sample, 231–232, 239 6-Loops, 484–485 marshaled parameters, 92 lossless formats, 544 Mass (property), 250, 260 lossy compression, 462, 544 MassDensity category, 260 LowerTwistLimit, 379 Material category, 261 LRFs. See laser range finders MaterialEditor, 452 LynxL6Arm activity, 540, 541, 542 MaterialIndex property, 261 Lynx.L6Arm.Simulation manifest, 405 MaterialName property, 261

811

bbindex.inddindex.indd 811811 55/7/08/7/08 9:40:579:40:57 AMAM Matrix

Matrix, 270, 274 Downloads page, 9 MaximumForce, 382 forums, 27–28, 82 MaximumTorque, 382 framework, 30–32 Maya, 318, 404 hardware requirements, graphics card, 16 Maze Simulator, 159, 458, 461–464 installation, 16–21 config file, 461–462 verification, 21–26 LEGO NXT robot, 464 LEGO NXT tribot with, 601–611 Pioneer3DX robot, 464 microsoft.com/robotics, 27 measurement model, 587 as operating system for robots, 30 Mecano, 797 operating system requirements, 15–16 mechatronics, 563, 680 partners, 15 MEDC (Mobile and Embedded Developers ports. See ports (MRDS) Conference), 9, 419, 422, 572. See also prerequisites, 16 sumo environment robotics and, 4, 798 Merge activity, 480, 483, 485, 496, 540, 541 robotics hardware with, 563–597 meshes, 249 services, for robots, 8–9 convex, 262 support for for Corobot entity, 318–321 projects/products, 12–15 circuit boards/battery, 319–320 resources, 27–28 modeling chassis/platform, 319 vendors, 734 modeling tools, 318 Team, 4, 444 realism v. speed, 318 template. See templates tweaking simulation environment, 320 tutorials, 27, 29 wheel geometry, 318 user guides, 27, 37 LineMesh utility, 542–547 versions, 4–5, 33 for robotic arm, 404 1.5 Refresh, 4, 16, 33 shadow, 259 2.0, 4, 5, 16, 33, 798 Meshes property, 251 sample code and, 17, 33 MeshRotation, 251 Microsoft Robotics Studio (MSRS), 4, 33 MeshScale, 251 Microsoft robotics team, 4, 444 MeshTranslation, 251 Microsoft Visual Studio. See Visual C# Express; message passing, 38 Visual Studio MessageBox, 209 Microsoft XNA. See XNA messages, 5, 38 microsoft.com/robotics, 27 last, 70–71 Microsoft.Robotics.PhysicalModel namespace, 270 modifying, 50–51 Microsoft.Robotics.Simulation.Physics multiple, receiving, 61–63 namespace, 271 passing through services, 90 Microsoft.Xna.Framework namespace, 274 ports and, 50–53 Microsoft.Xna.Framework.dll, 274–275, 278, 340 Microchip Technology, 732 adding reference to, 275 microcontrollers (chips), 732–733 Microsoft.Xna.Framework.Graphics namespace, 275 with BASIC interpreters, 733 migrations, 16, 151. See also with PIC prefix, 732 DssProjectMigration tool Microsoft Open Software Promise, 83 Mindstorms website, 575. See also LEGO Microsoft Robotics Community page, 15 Mindstorms NXT kit Microsoft Robotics Developer Studio (MRDS), 3–28 minus operator (؊), 481 Boe-Bot with, 611–615 mip-maps, 319 Class Reference, 37, 221 Misc category, 261 components, 5–8. See also CCR; DSS; Visual misc directory, 19 Simulation Environment; VPL Misc heading, 249–250 directory structure, 19–20 mistakes. See traps/mistakes Discussion Forums. See Discussion Forums Mobile and Embedded Developers Conference (MEDC), documentation, 27, 29, 37, 155 9, 419, 422, 572. See also sumo environment

812

bbindex.inddindex.indd 812812 55/7/08/7/08 9:40:579:40:57 AMAM on-demand approach Index mobile robots, 564–565. See also remotely multiple robots, controlling, 520–522 connected robots Multiple Simulated Robots, 230 Mobile Robots, Inc, 265, 584. See also Pioneer 3DX multiplication operator (*), 481 Mode, 380 MultiShapeEntity, 262 modeling tools, 318 Multi-Threaded Apartment (MTA) model, 81 modulo operator (%), 481 multi-threading, 30–31, 39, 43. See also monitor program (Integrator robot), 756–763 concurrency; tasks main loop, 757–759 mutexes (mutual exclusion), 30 PICAXE Programming Editor, 756–757 mutual exclusion. See mutexes pin assignments, 757 protocol commands, 760–763 /month qualifier, 116, 297 N Moreno, Raúl Arrabales, 467 name, of entity, 250 Motion Recorder, 666, 668, 671–677. See also /namespace qualifier, 116 Lynxmotion L6 robotic arm NamespacePrefix5, 503 Arm Pose panel, 675, 676, 677 nested arbiters, 60–61 buttons, 675, 676, 677 nested diagrams, 8 Control Panel, 675 .NET 3.0, 19 Execute button, 675, 677 .NET CLR. See CLR environment inside, 672–674 .NET Compact Framework environment. See CF Joint Positions panel, 675, 677 services simulated Lynx arm and, 672 .NET Global Assembly Cache (GAC), 275 using, 675–677 .NET Reflector, 16 MotionLimit, 381 New Entity dialog, 247, 248 MotionRecorder.cs, 672, 673 New Project dialog box, 34, 35 MotionRecorderTypes.cs, 672 914 PC-BOT (White Box Robotics), 583–584, 682 MotionRecorderUI.cs, 672, 673 no rendering mode, 240 MotionSpeed, 182, 193, 201, 202 None option, 422 Motor (generic contract), 271 non-realtime cameras, 236 motors, 592. See also actuators; servo motors normal axis, 378 Generic Brick contract, 739 normalized measurements, 738 MotorTorqueScaling, 265, 289, 290, 313–314 Notification Output Pin, 478 Mount Service, 99 notifications (VPL), 6, 90, 91, 163, 478–479 mountpoint, 32, 99, 130 Notifications tab, 489 MoveArm project. See Arm Mover project 3-Notifications diagram, 478–479 MoveLegs method, 439–441 NotSpecified state, 355, 357 MoveLegs2 method, 442–443 numbers, magic, 89, 101, 104, 764, 793 MoveNext method, 47 MoveTo method HexapodEntity, 438 O SimulatedLynxL6ArmEntity, 405, 406, 408, 410, .obj format, 249 412, 414, 415 Obj2Bos.exe tool, 249 MoveToPosition method, 410, 412, 415, 675 Object Browser, 37, 66, 130, 221. See also parameters, 411–412 reflection MRDS. See Microsoft Robotics Developer Studio object-oriented approach, 215, 733 MS-DOS objects, overlapping. See entities filenames, 725 obstacles. See barriers refresher, 715–719 occupancy grid, 465 MSRS. See Microsoft Robotics Developer Studio; odometers, 591. See also wheel encoders Microsoft Robotics Studio omni lights, 258 MTA (Multi-Threaded Apartment) model, 81 OnClosed, 162, 177, 179, 206 Multiple Item Receiver, 61, 62, 69 OnConnectHandler, 207 Multiple Port Receiver, 61, 62, 63, 69 on-demand approach, 176

813

bbindex.inddindex.indd 813813 55/7/08/7/08 9:40:579:40:57 AMAM one DOF joint

one DOF joint, 386–389 passkey, 602, 614, 689 online documentation (MRDS). See documentation patterns, 68 online forums. See forums PAVE (Princeton Autonomous Vehicle OnLoad, 162, 177, 179, 206 Engineering), 13 OnMove, 182 PC-based robots, 681–684. See also autonomous onsubmit attribute, 198, 205 robots OOPic hardware, 733 914 PC-BOT (White Box Robotics), 583–584, 682 open loop control system, 636 PDAs (personal digital assistants), 681, 682–683 OpenGL, 234 Axim, 686, 687 operating system, MRDS as, 30 connection, testing, 711–712 operations, 6, 50, 57, 63, 85, 91, 92. See also debugging of service on, 711–713 behaviors; specific operations deploying CF service to, 709–711 (list), 94–95 setting up, 686–690 as APIs, 92 PE.exe (Process Explorer), 690 operations port, 53 Pending Nodes, 487 Dance service, 86–87 Pending state, 425, 426, 427 ServiceA, 117 PendingTaskCount, 67 options files, 101 periodic events, 73–75 orchestration services, 7, 31–32, 84 Periodic Timer, 74 Robo-Magellan, 347–354. See also Robo-Magellan persisted handlers, 57 simulation scenario persistent settings, 241 ServiceA. See ServiceA persisting state, 89, 129–132 SimpleDashboard. See SimpleDashboard service load state from config file, 129 VPL and, 523–559 Initial State Partner, 129–130 /org qualifier, 116 in manifest, 130–131 outputs, 478–479 saving state to config file, 131–132 overlapping entities, 247 personal digital assistants. See PDAs Overwrite mode, 466 photoresistors, 589 phrases activity, 497–498 , 242. See also PhysX engine P disabling, 242, 243, 244, 246 P (angle of approach), 411 types, 271–272 packages, 9–12. See also courseware package; Physics menu, 241–243 soccer package; sumo package physics rendering mode, 237–239. See also directory, 20 combined rendering mode installation, 20 PhysicsEngine object, 274, 275 viewing contents of, 155 PhysicsEngine.dll, 274 pairing, 602, 605 PhysicsEngine.Raycast2D method, 327, 409, 410 Parallax, 170, 566, 567, 576, 577, 578, 581, 732, PhysicsEntity, 273, 274 733. See also Boe-Bot; Scribbler PhysicsJoint, 377, 378 Parallax services, 578, 642, 647, 651 PhysX engine (AGEIA), 19, 154, 228, 229, 261, parameters, 100, 101. See also specific parameters 272, 286, 314, 318, 382, 391, 397, 407 case sensitivity and, 100 PIC (programmable interface controller), 732 options files and, 101 PICAXE microcontroller, 731, 733, 754, 755. See parent entities, 248, 288 also Integrator robot Parent function, 69 PICAXE Programming Editor, 756–757 ParentChild class, 434, 435 Picblok, 754. See also Integrator robot parentheses, 481 ‘pick and place’ operation, 677–679 Park Arm button, 414 PictureBox, 206, 213, 214, 215, 364 Partner attribute, 144–145 PID (proportional- integral- derivative) controllers, PartnerList, 149, 302 216, 585, 593, 594, 596, 636, 730 partnerships, 6, 31, 84, 85, 93. See also execution ping, 66, 587, 588 context PinOperations, 642

814

bbindex.inddindex.indd 814814 55/7/08/7/08 9:40:589:40:58 AMAM quaternions Index pins, 736. See also devices Process Explorer (PE.exe), 690 assignments, 757 ProcessDialogKey, 181, 182 direction control, 762–763 ProcessedTaskCount, 67 Pioneer 3DX (Mobile Robots), 8, 9, 464, 467, 584 ProcessFrame method, 362 ArcosCore.cs for, 136–137 ProcessFrameAndDetermineBehavior method, 452, Maze Simulator and, 464 453, 456 model, 7 ProcessFrameHandler, 452 in simulation environment, 230, 265–266, 458 ProcessImage method, 362, 365, 427 VPLExplorer diagram and, 524 Professions activity, 495, 496, 497, 498 Pixar Shader Model, 16 programmable interface controller. See PIC Platform Builder, 720 Project Properties (Visual Studio), 114–115 platform shape, 284, 285, 286 Project toolbox, 474 platforms directory, 19 Projection (member), 382 PlayerOne activity, 529, 530, 531, 533 ProMRDS sample code. See sample code PlayTone operation, 96, 97, 641, 642, 749, 774 ProMRDSbettersoccerplayer service, 450, 456, 457 Pleo, 797 ProMRDSsimplesoccerplayer service, 449, 456. See PluralNouns activity, 496–497 also SimpleSoccerPlayer plus operator (+), 481 Properties pane, 244 PNG files, 194, 243, 544, 784 Properties toolbox, 474 Pocket PC (PPC) Command Shell, 687, 688 proportional gain, 593 point-to-point motion. See PTP motion proportional- integral- derivative controllers. See PID polling, 90, 163 controllers Integrator robot and, 770–773 proprioceptive sensor data, 585 PollInterval value, 537, 540 Prospect 12, 13 PopulateWorld method, 340, 341, 345, 346, 383, protocol commands (Integrator robot), 760–763 385, 554 proxy assemblies, 114, 123 port parameter, 101 Proxy DLLs, 92, 121, 123 ports (I/O), 736 proxy generator, 97, 123, 285 ports (MRDS), 5, 38. See also specific ports PTP (point-to-point) motion, 660–661 advantage of, 51 asynchronous, 660 completion, 68, 69, 139–141 fully synchronous, 660 guarding, 64 synchronous, 660 messages and, 50–53 pulse width modulation. See PWM operations. See operations port PWM (pulse width modulation), 216, 568, 592, reading from, 51–53 698. See also PID controllers Success/Failure, 59, 79–80 commands, 757 PortSets, 53–55 method, 730 limits on declaring, 54 Pose, 261, 270, 293 Position property, 249, 251 Q Position/Rotation property, 261 quadruped robots, 10, 467, 565, 580. See also Post method, 50, 54, 69, 695, 749 RobuDog models PostAndTest, 51 qualifiers posting, 38, 50 /alt, 98, 116, 216, 297, 763 PostUnknownType method, 55 /clone, 116 Power Toys, 687, 688, 710 /month, 116 power v. speed, 629 /namespace, 116 Power value, 252 /org, 116 PPC (Pocket PC) Command Shell, 687, 688 /year, 116 PressEnter function, 52 Qualify option, 422 Previous variable, 481, 482 Quality Level, 240 Princeton Autonomous Vehicle Engineering quaternions, 270, 274, 451, 536, 542, 659, (PAVE), 13 675, 739

815

bbindex.inddindex.indd 815815 55/7/08/7/08 9:40:589:40:58 AMAM Query

Query, 91, 95 flashing/beeping, 640–643 QueryFrame request, 206, 212, 452 improving behavior, 636–640 QueryInfraRed, 95, 96 Dance.manifest.xml, 630–634 queues Boe-Bot, 633–634 dispatcher, 39, 65–68 LEGO NXT Tribot, 632–633 enqueued, 50, 67, 68. See also posting Dashboard, 615–625 FIFO, 50, 51 joystick/gamepad, 623–624 manifests R creation, 616–621 multiple, managing, 634–635 ramp, 239 partnering with robot, 630–635 Random Move button, 415 running, 621–623 random number generator, 124–125 reviewing results, 635–636 range scan, 589 sensors, 643–652 range sensors, 586–589. See also IR distance types, 643 sensors; laser range finders; sonar sensors setting up, 600 Ranges variable, 519 Boe-Bot, with MRDS, 611–615 reactive behaviors, 636 LEGO NXt tribot, with MRDS, 601–611 ReadFormData request, 200 shortcut for running, 624–625 reading, from ports, 51–53 Simple Dashboard, 619–621 Ready state, 355, 357, 425, 426 wandering Ready variable, 517 Boe-Bot, 647–652 ReAlign command, 453, 455, 456 LEGO NXT Tribot, 644–647 realtime cameras, 235–236 RemoveEntity, 273 reason, 135 RemoveItem function, 494 Receive example, 56–57 Render method, 273, 316 receivers, 5, 38, 46, 50 Rendering Materials property, 452 arbiters and, 55–65 Rendering menu, 236–241 nonpersistent, 47 combined rendering mode, 239 recursion, 483, 492, 526, 527, 542 Graphics Settings, 240–241 referee service, 338–347 no rendering mode, 240 cameras, 340 physics rendering mode, 237–239 running from browser, 339, 342–343 visual rendering mode, 236 SimulationTutorial1 service, 338–339 wireframe rendering mode, 237 sky/sun/ground, 340–341 RenderState, 275 traffic cones, 343–346 rendezvous point, 59 world, 340 Replace, 90, 95, 132–133 Reference Paths tab, 115 Representational State Transfer (REST) model, 83 references, 122–123 request/response cycle, 57, 90, 91 reflection, 37, 66, 92, 116, 124, 130, 137, 385, requests, 50, 90, 91. See also messages; specific 403. See also Object Browser requests Reflector. See .NET Reflector Reset state, 355, 359, 362 Refresh option, 422 resistors, 587 ReliableSubscribe, 166, 169 light-dependent, 589 remote controller, universal, 734 photo, 589 remote driving, Stinger CE, 690–702 Resource Diagnostics, 108 remote procedure calls, 92 responses, 50, 90, 91. See also messages remotely connected robots, 59, 565, 599–653 REST (Representational State Transfer) model, 83 Bluetooth connection restitution, 255, 261, 314, 380 Boe-Bot, 614–615 Result Output Pin, 478 LEGO NXT, 602–606 returning errors, 135 dance service, 625–643 Reverse Dominos button, 415 building, 626–630 Reverse function, 494

816

bbindex.inddindex.indd 816816 55/7/08/7/08 9:40:599:40:59 AMAM robotic arms (simulated) Index revolute joints, 377 Hemisson. See Hemisson robot Revolution Education, 733 humanoid, 10, 565, 574, 580, 655, 665, 668, 734 RGB color space, 450, 452, 462, 463, 590. See industrial, 14, 564, 573, 574, 661 also HSV color space Integrator, 754–785 Richter, Jeffrey, 81 laptops and, 682 right-handed coordinate systems, 234 mobile, 564–565 RIOS (robotic arm interactive operating system), MRDS supported, 574–584 579, 661, 666 PC-based, 681–684 roaches, mechanical. See hexapod project quadruped, 10, 467, 565, 580 ‘roadblock,’ artificial intelligence, 797 remotely connected. See remotely connected Roberts, Paul, 155, 524, 529 robots RoboCup 2007, 10, 444 safety considerations, 564 Robo-Magellan competition/rules, 337, 343, 374 tethered, 565–572. See also remotely connected Robo-Magellan simulation scenario, 269, 276, 336, robots 337–374 types of, 564–573 barriers, 337, 341–342, 374 Windows XP-based, 682 behavior states, 354–374 robot entities, 263–266 future directions, 374 robot service, running, 109–112 happiness function, 355, 356, 368, 369, 374 robotic arm interactive operating system (RIOS), manifest, creation of, 349–351 579, 661, 666 orchestration service, 347–354 robotic arms (real), 655–680. See also Lynxmotion referee service, 338–347 L6 robotic arm cameras, 340 articulated, 419, 565, 574, 655–665 running from browser, 339, 342–343 forward kinematics, 410, 661–664 SimulationTutorial1 service, 431 arm linkage configuration, 661–662 sky/sun/ground, 340–341 geometry for, 662–664 traffic cones, 343–346 introduction, 656–665 world, 340 inverse kinematics, 410–412, 664–665 SimMagellan service, 70, 277, 336 ‘pick and place’ operation, 677–679 generation of, 347–349 state, 656 WinForm connection to, 352–354 robotic arms (simulated), 394–418 simulation services, 277 camera entity, 402–403 state machine, 355, 356, 361 custom meshes, 404 defining, 355–356 dominos, 230, 413, 414, 415, 416, 417, 418, 679 implementing, 356–362 Reverse Dominos button, 415 WinForm Topple Dominos motion, 415, 416–417 connecting to SimMagellan service, 352–354 ToppleDominoPosition array, 417–418 creation, 351 gripper entities, 401–402 RoboRealm, 84, 221, 467, 582, 590 inverse kinematics, 410–412 RoboSoft, 10, 11, 444, 580 L0Entity, 398–399 robot(s). See also robotics hardware; specific robots L1Entity, 399–400 articulated, 10, 375, 467, 655, 656, 665 L2Entity, 400 autonomous. See autonomous robots L3Entity, 400, 401 bipedal, 580, 655 L4Entity, 400, 401 buying, 573–584 Motion Recorder and, 672 companion, 797 MoveToPosition, 410–411 components of, 584–596. See also actuators; MoveToPosition method, 410, 412, 415, 675 controllers; sensors parameters, 411–412 actuators, 585, 592–593 moving, 405–407 controllers, 584, 593–596 physics model, 394–404 sensors, 585–592 picking up objects, 407–410 differential drive, 263–267, 565 SimulatedLynxL6Arm service, 394, 395, 397, 403, dog, 10, 565, 580. See also RobuDog models 405, 410, 412, 418

817

bbindex.inddindex.indd 817817 55/7/08/7/08 9:40:599:40:59 AMAM robotic arms (simulated) (continued)

robotic arms (simulated) (continued) verification, 23–26 SimulatedLynxL6ArmEntity, MoveTo method, 405, MRDS versions and, 17, 33 406, 408, 410, 412, 414, 415 updates, 17, 33 user interface, 412–418 samples directory, 19–20 visual enhancement, 403–404 saturation, 450, 452 robotics, 3, 563. See also robots Savage Innovations, 733 courseware package, 11–12 saved state, 89. See also config file MRDS and, 4, 798 SaveState, 58, 131 team (Microsoft), 4, 444 saving state, 131–132. See also persisting state robotics hardware. See also robot(s) SBCs (single-board computers), 683 autonomous robots, 10, 12, 13, 170, 265, 457, scenes 572–573, 681–730 lights for, 257–258 MRDS with, 563–597 saving/loading, 243 new hardware services, writing, 731–798 screen images, saved to files, 243 remotely connected robots. See remotely Scribbler (Parallax), 571, 576, 581, 681, 733, 735 connected robots SDK (software development kit ), 3. See also robotic arm, 655–680 Microsoft Robotics Developer Studio Robotics Tutorials, 27, 512 Seattle Robotics Society (SRS), 337. See also # 4, 159, 171, 185, 351, 565, 690 Robo-Magellan simulation # 6, 565, 566 Security Manager, 99, 107–108 directory, 19 SegmentEntities, 435, 436, 437 Robotics with the Boe-Bot (book), 611–612 Segway Scooter, 13, 573 RoboticsCommon.dll, 151, 270 semaphores, 30 generic contracts, 270–271 sensor data types, 270 exteroceptive, 585 RoboticsCommon.Proxy, 122, 161, 348, 626, 643, proprioceptive, 585 691, 751, 764 reading of (VPL diagrams) RoboticsConnection website, 579, 685, 686, 713, from real robots, 512–519 720, 730, 734. See also Stinger CE from simulated robot, 509–512 RobotUpdateBumpersHandler, 427 types of, 585 RobotUpdateButtonsHandler, 426 sensors, 585–592 RobuDog models, 10–11, 444, 580 acceleration/tilt, 591 rocker switch, 181 analog, 585 Roomba (iRobot), 8, 532, 581, 582, 739. See also bump, 643, 748 iRobot Create compass, 590–591 root directory, 32, 99, 130. See also mountpoint contact, 586. See also bumpers RotateDegrees, 159, 184, 216, 270, 290, 291, 293, digital, 585 295, 308, 749 directory, 19 Corobot entity, 312–313 exteroceptive, 585–592 rotateVal, 405 generic contracts for, 585 RotatingWheelEntity, 317 GPS. See GPS Rotation and Translation Movement Scale, 240 light, 589–590 Rotation property, 249, 251 range, 586–589. See also IR distance sensors; Rovio, 797 laser range finders; sonar sensors Ruby, 44 remotely connected robots and, 643–652. See also running services, 123–125 remotely connected robots sonar, 587–588, 643 sound, 591 S video/image, 590. See also cameras; webcams /s parameter, 297 wandering with, 703–707 sample code (ProMRDS), 32, 37 wheel encoders. See wheel encoders coding tips, 37 whiskers. See whiskers installation, 21 sequential processing, 68–69

818

bbindex.inddindex.indd 818818 55/7/08/7/08 9:41:009:41:00 AMAM shader programs Index serial ports, 75–76 # 8, 215 Serializer board, 160, 216, 566, 579, 580, 686, # 9, 215, 219 734, 735, 739 #6, 185 interfacing to, 697–699 directory, 19 Serializer services, 686, 691, 697 ServiceA, 112 service(s), 6, 31, 84. See also DSS; specific breakpoints, 126 services compiling, 121–123 abstract. See generic contracts contract, 116–117 accessing, from web pages, 185–188 contract directory cache, 124 activities (VPL) and, 501–502 creation of, 113–115 advanced concepts, 157–222 Get operation, 118 behavior. See behaviors main operations port, 117 compiling, 121–123. See also compiling diagrams main service implementation file, 119–120 to services manifest, 124 components of, 85–94 Project Properties, 114–115 context of. See execution context references, 122–123 creation (with DssNewServiceTool), 115–116 running, 123–125 creation (with Visual Studio) with ServiceB, 143 DssService1, 34–37 source files, 114, 116–121 ServiceA, 113–115 state, 117 deploying, 151–155 ServiceB, 112 diagrams converted to. See compiling diagrams to breakpoints, 126 services compiling, 121–123 dropping, 141–142 config file, specified in manifest, 130–131 generic. See generic contracts creation of, 115–116 initialization. See initialization defining state for, 127–128 manifests. See manifests operations, 117 messages between, 90 random number generator, 124–125 migrating. See DssProjectMigration tool running, 123–125 orchestration. See orchestration services with ServiceA, 143 polling, 90 saved state, 132 running, 123–125 ServiceContract property, 250, 265, 266, 303, 551 source files. See source files ServiceForwarder, 139, 208, 423 starting/stopping ServiceInfoType records, 208 manual, 102–103, 205 ServicePaths class, 130 with Partner attribute, 144–145 ServicePort attribute, 87 programmatically, 137–143 ServiceRecordType, 94 state of. See state Services toolbox, 473, 474 versioning, 609 search groups in, 475 webcam added to, 206 ServiceUri, 129–130 WinForms added to, 172–173 servo motors, 592, 656, 657–658. See also SSC-32 WinForms and, passing information between, servo controller 175–180 Set Configuration, 510, 512, 521 service assemblies, 122 set point, 593 service directories, 93 SetActuators, 749 Service Directory, 22, 99, 103–105, 111, 136, 205, SetBounceThreshold method, 556 264, 266, 267, 278, 311, 323, 336, 443, SetCameraImage method, 364 512, 611 SetDrivePower, 182, 183, 749 service forwarder ports, 83, 134, 138, 140 SetEndEffectorPose, 540, 542, 668, 669, 675, 676 Service Instance Directory, 104, 110 SetLEDs, 749 service operations. See operations SetPollInterval action, 536–539, 542 Service Tutorials, 112 SetPose, 273, 299, 300, 360 # 4, 306, 335 shader programs, 240, 249

819

bbindex.inddindex.indd 819819 55/7/08/7/08 9:41:009:41:00 AMAM shadows

shadows, 259 communicating with, 423–425 ShapeDescriptors, 431, 433 SimulatedWebcam service, 26, 266, 277, 350, 362, ShapeId, 261 445, 446 sharing source code, 152–154 Corobot entity, 322–323 shortcuts simulation(s). See also simulator Windows CE, 688 directory, 19 Windows Mobil, 688 DLLs, 270–276 shoulder joint, 397, 405, 434, 435, 662 example projects, 419–467 shoulderVal, 405 Explorer project. See Explorer project SICK Laser range finder (LRF), 573, 584, 589. hexapod project. See hexapod project See also laser range finders soccer environment. See soccer environment code, 75 sumo environment. See sumo environment service, 17, 19 online forum, 28 SICK LRF. See SICK Laser range finder Simulation Editor, 225, 243, 244–252, 269, 272, SickLaserRangeFinder activity, 525 281, 283, 285, 289, 317, 330, 366, 374, SimMagellan service, 70, 277, 336. See also 452, 520, 550 Robo-Magellan simulation scenario simulation entity notifications, 300–310 generation of, 347–349 Simulation Environment. See Visual Simulation using, 374 Environment WinForm connection to, 352–354 Simulation Environment with Terrain, 230 SimPhotoCell, 547, 549, 550, 551, 552 simulation scenario, 276, 337. See also Robo- SimPlayerPlayerOne service, 530, 532 Magellan simulation scenario SimpleDashboard service, 17, 19, 263–264, 296, simulation services, 276–281 310, 311, 336, 438, 442, 511–512 creating, 277–281 remotely connected robots and, 619–621 Robo-Magellan simulation, 277 SimpleDialog activity, 476, 479, 481, 500, 518 Simulation Tutorials, 27 SimpleHandler method, 40, 41, 42 1, 230, 231, 243, 254 SimpleSoccerPlayer, 444, 445, 446, 449, 450 2, 243 SimpleVision service, 556, 558, 559 SimpleDashboard service and, 17 SimplifiedConvexMeshEnvironmentEntity, 262–263 5, scene from, 6 Simulated IR sensor. See IR distance sensors SimulationCommon.dll, 271–272 simulated robotic arms. See robotic arms (simulated) SimulationEngine class, 273–274 simulated sonar sensor service, 467 SimulationEngine service, 230, 263, 511 SimulatedBumper service, 263 SimulationEngine.dll, 272–274 SimulatedDifferentialDrive service, 263 SimulationEngine.Proxy.dll, 274 SimulatedGenericContactSensors service, 511 SimulationState, 271 SimulatedIR service, 331–336 SimulationTutorial1 service, 243 SimulatedIRobotLite service, 420, 423, 424, 425, HexapodEntity service, 431 426, 530, 531 referee service, 338–339 SimulatedLaserRangeFinder service, 525 simulator. See also simulations SimulatedLynxL6Arm service, 394, 395, 397, 403, advantages, 226 405, 410, 412, 418 built-in entities, 252–267 SimulatedLynxL6ArmEntity, 394, 405 Camera menu, 235–236 MoveTo method, 405, 406, 408, 410, 412, hardware requirements, 227–228 414, 415 Help menu, 235 SimulatedQuadDifferentialDrive service, limitations, 226–227 296–313, 336 navigating in, 232–233 manifest, 349 Physics menu, 241–243 simulation entity notifications, 300–310 Rendering menu, 236–241 testing, 310–312 scenarios, 230 SimulatedRangeFinder activity, 518 software requirements, 228–230 SimulatedSoccerReferee service, 444, 447 starting, 230–231 SimulatedSumoReferee service, 421–423, 529 using, 231–244

820

bbindex.inddindex.indd 820820 55/7/08/7/08 9:41:019:41:01 AMAM StateService Index simultaneous localization and mapping (SLAM), sound/voice synthesis, 593 458, 459, 467, 636. See also autonomous source code, sharing, 152–154 robots; Explorer project source files (service), 114, 116–121 single-board computers (SBCs), 683 main service implementation file, 119–120, 172 SingleShapeEntity, 248, 259, 260–262, 344, 383, manifest. See manifests 385, 395 types file, 116–119 SingleShapeSegmentEntity, 383–385 SourceLocation, 503 Single-Threaded Apartment (STA) model, 66, 81, Spawn, 40–42 172, 175, 567, 691 SpawnIterator method, 48–50, 81, 82, 137 six DOF joints, 377, 390–392, 418 Specular color value, 252 Lynxmotion L6 arm, 665 speed v. power, 629 six-legged walker. See hexapod project spheres, 238 skid steering, 565 SphereShapeProperties, 271 sky, 253–257, 279, 340–341 4-Spiral project, 514–515 SkyDomeEntity, 253–254 spline function, 314 SkyEntity, 253–254 spot lights, 258 SLAM (simultaneous localization and mapping), SpotUmbra, 258 458, 459, 467, 636. See also autonomous Spring (properties), 380 robots; Explorer project Spykee, 797 SlerpDrive, 379 SRS (Seattle Robotics Society), 337. See also SmallDamper joint, 389 Robo-Magellan simulation SOAP (Simple Object Access Protocol), 83, 114 SSC-32 servo controller, 80, 566, 657, 658, 659, DSSP v., 83 660, 664, 665, 666, 667, 668, 669, 670 Fault, 57, 79, 80, 95, 203 STA (Single-Threaded Apartment) model, 66, namespace, 119 81, 691 port, 101 Start Match button, 422 soccer environment (simulation), 444–457 Start method, 33, 36, 120, 136, 162 Corobot services, 457 Start variable, 483, 484, 485 CorobotSoccerPlayers service, 447, 448 state (behavior). See behavior states future directions, 457 state (diagram), 480 LEGO NXT robots, 446, 447 state (entity). See entity state ProMRDSbettersoccerplayer service, 450, state (FSM). See state machines 456, 457 state (Generic Brick). See Generic Brick ProMRDSsimplesoccerplayer service, 449, 456 contract SimpleSoccerPlayer, 444, 445, 446, 449, 450 state (of service), 6, 30, 64, 87–91 soccer players adding fields to, 117 behavior improvements, 453–456 debugging information for, 220 building, 449–456 defining, 127–128 changing, 446–449 displaying, with XSLT, 196–198 image processing improvements, 450–453 persisting. See persisting state soccer package, 10–11, 444 saved, 89 installation, 20, 444 saving, 131–132 software development kit. See SDK serialization of, 89 solid-state storage devices, 683 viewing, 111–112 SolidWorks, 318 state (wandering). See wandering SolveIterationCount, 286 state machines, 70, 355 Sonar (generic contract), 271 finite, 70, 87, 89 sonar ring, 588 Robo-Magellan scenario, 355, 356, 361 sonar sensor service (simulated), 467 defining, 355–356 sonar sensors, 587–588, 643 implementing, 356–362 Sort function, 494 sample sumo player, 425–427 sound sensors, 591 State Partner Service, 99 SoundPlayer activity, 519, 541 StateService, 94, 109, 149

821

bbindex.inddindex.indd 821821 55/7/08/7/08 9:41:019:41:01 AMAM static entities

static entities, 239 sumo player static joins, 61 hardware platform, 420–421, 430 StaticFriction, 261 simulation model, 421 status bar, 234–235 behavior, 425–427 Stinger CE (RoboticsConnection), 572, creating, 427–429 579–580, 684 state machine, 425–427 autonomous operation, 728–729 sun, 279, 340–341 IR sensors, 699–702 Sun SPOTs, 732 wandering and, 703–704 Surveyor SRV-1, 160, 205, 571, 582–583 remote driving, 690–702 Swann wireless camera, 158, 160, 205, 600 Serializer board, 160, 216, 566, 579, 580, 686, swarm algorithms, 443 734, 735, 739 Swing DOF, 378 setting up, 685–686 Swing1Limit, 379 wandering behavior, 703–707 Swing1Mode, 379 defining wander modes, 704–707 Swing2Limit, 379 IR sensors, 703–704 Swing2Mode, 379 running code, 707 SwingDrive, 379 StingerDriveByWire service, 688, 689, 690–702, Switch activity, 480, 493 707, 723, 729, 730 synchronization, completion ports for, 139–141 CF version, 708–713 Synchronized Dance service, 70 code overview, 691 synchronous PTP, 660 keyboard handling, 691, 692–694 System.Drawing, 161, 348 Serializer board, interfacing to, 697–699 service operations, 694–697 state, 87–89 T WinForm interface, 691–692 TargetFramework, 503 StingerPWMDrive, 215, 216, 217, 739 Task Execution Policy, 67 store directory, 19 values, 67–68 strong type-checking, 54, 749 tasks, 39–43 strong-name signing, 17 TCP (Tool Center Point), 657, 669 Subjugator, 3, 12 Tear Down receiver group, 64, 92 submarine, robotic, 3, 12 teardown, 59 Submit, 95 technologies directory, 19 Submit button, 188, 198, 199, 412, 795 teleoperation, 157, 565, 599. See also remotely Subscribe, 95 connected robots subscribing, 6, 90, 163 remote control and, 599–600 to state changes, 164–166 TeleOperation service, 157–158, 583, 590, 775, Subscription Manager service, 168–169 776, 785, 791, 792, 797 SubscriptionManager, 306, 332 creating, 160–163 Success/Failure ports, 59, 79–80 current state, 186–187 sumo competition, 9–10, 419, 420 DriveControl Form. See DriveControl Form sumo environment (simulation), 420–430. See also enhancements for, 221 VPL Sumo project references, 160–161 future directions, 430 WebCamForm. See WebCamForm sumo player, 421 telepresence, 797. See also TeleOperationservice behavior, 425–427 templates creating, 427–429 C++, 45 state machine, 425–427 Master Page, 187, 191, 192, 195 sumo referee, 421–423 MRDS, 192, 193–196 sumo referee service, 423–425 programming patterns, 68–76 sumo package, 9–10, 419, 420 robotics, 34 installation, 20, 420 Simple Dss Service (1.5), 34, 113 sample sumo player service, 423 XSLT, 189–190, 193–196

822

bbindex.inddindex.indd 822822 55/7/08/7/08 9:41:029:41:02 AMAM unsubscribing Index TerrainEntity, 256 toolboxes TerrainEntityLOD, 257 Basic Activities, 473, 479–480 test directory, 19 Project, 474 Test method, 51, 55 Properties, 474 TestBench Services, 473, 474, 475 joints Topple Dominos motion, 415, 416–417 with different connector orientations, 392 ToppleDominoPosition array, 417–418 with motion limits, 393–394 ToString method, 51 one DOF, 386–389 tracing, 221 six DOF, 377, 390–392, 418 trackball, 159, 161, 175, 176, 264, 266, SmallDamper, 389 311, 623 SingleShapeSegmentEntity, 383–385 Tracking state, 425, 427 tethered robots, 565–572. See also remotely traffic cones, 343–347 connected robots transducers, 584. See also sensors Text to Speech service (Microsoft), 593 traps/mistakes, 81–82 TexttoSpeechTTS activity, 474, 475, 476, 483, Traxster, 579, 686. See also Stinger CE 484, 485 TriangleMeshEnvironmentEntity, 263 Texture Tool, 254, 319 TriangleMeshShapeProperties, 271 Texture2D, 275 trigger shapes, 343–346, 423 TextureCube, 275 Trower, Tandy, 4 TextureFileName, 261 TryPostUnknownType, 55 thread affinity, 172 tutorials, 19 threadPoolName, 67 directories for, 19 ThreadPriority, 66 DSS, 27 values, 67 JavaScript, 203 Threads window, 67, 125, 220 MRDS, 27, 29 Thread.Sleep, 71, 73, 137 robotics. See Robotics Tutorials 3D graphics, 16, 225, 227 service. See Service Tutorials 3D Studio Max, 318 simulation. See Simulation Tutorials Threshold variable, 519 VPL, 27 throttling, 76 Twist DOF, 378 thumbsticks, 264, 524, 525, 534, 537, 538, TwistDrive, 379 539, 616, 624, 671 TwistMode, 379, 386 thunks, 53 8-TwoRobots project, 520–522 ticks, 593 type safety, 38 TIFF file format, 243, 544 typeof, 54, 219, 695, 749 tilt sensors, 591 types, 270–275 Time (parameter), 405, 411 in RoboticsCommon.dll, 270 Time Base Run-time Settings, 242 in SimulationCommon.dll, 271–272 time constant, 594 Visual Studio Help and, 272 time delays, 71–73 TimeoutPort, 72, 73, 75, 137, 793 timeouts, 75 U Timer activity, 515, 537 UART (universal asynchronous receiver/ TimerHandler method, 426, 427, 448 transmitter), 765 TimeSpan property, 183 uBot-5, 13–14 timestamps (Generic Brick contract), 737 UIMath, 272 timing loops, 31 Uninitalized state, 425, 426 tips, coding, 37 universal asynchronous receiver/transmitter tire friction (Corobot entity), (UART), 765 314–315 universal remote controller, 734 Tone class, 97 Universal Resource Identifiers. See URIs Tool Center Point (TCP), 657, 669 unsubscribing, 165, 167

823

bbindex.inddindex.indd 823823 55/7/08/7/08 9:41:029:41:02 AMAM Update

Update, 90, 95, 133–135 video/image sensors, 590. See also cameras; adding handler to process, 134–135 webcams defining class for, 133–134 ViewDssDeployContents, 155 Update method, 272–273 virtual bumpers, 586 UpdateElapsedTime method, 360 vision processing algorithm, 362–366. See also UpdateFrame messages, 162, 206, 210, 212 ProcessImage method UpdateGameControllerAxes, 176 Visual C# Express (Microsoft), 16, 33 UpdateSensors, 749 Visual Programming Language. See VPL UpdateState method, 79, 80, 335 visual rendering mode, 236. See also combined UpdateStateFromSimulation, 305, 460 rendering mode UpperTwistLimit, 379 Visual Simulation Environment, 6–7, 225–267. Upsert, 95 See also simulations; simulator URIs (Universal Resource Identifiers), 85, 86. extending, 269–336 See also contract identifiers graphics card, 22, 23 Use a Manifest, 510, 512, 521, 525 models, 7 UseExisting, 144, 146 online forum, 28 UseExistingOrCreate, 144, 145, 164 tutorials. See Simulation Tutorials UsePartnerListEntry, 144, 148–149 VPL projects and. See VPL projects/examples user guides Visual Studio (Microsoft), 16, 37 CCR, 27, 29 creation of services with. See services DSS, 27 debugger. See debugger MRDS, 27, 37 eBox and, 720–721 user interfaces, 170, 222. See also Web Forms; Help, types and, 272 WinForms Project Properties. See Project Properties UsesAlphaBlending flag, 250 VisualEntity, 247, 272, 282, 336, 385 using statements, 162 methods/members, 272–273 voice/sound synthesis, 593 VOLTS–IQ, 84 V VPL (Visual Programming Language), 7–8, 471–500, validate function, 204 501–522, 523–559 ValidateFrameHandler, 362, 426 activities. See activities value (color), 450, 452, 463 basics, 471–500 Variable activity, 479, 480–482, 484 conditionals, 482–484 variables (VPL), 480–482. See also data flow language, 471–473 specific variables debugger, 485–487 4-Variables diagram, 480–482 development environment, 473–474 VCD (video capture device), 160, 205, 206 diagrams. See diagrams Vector2, Vector3, Vector4, 270, 274 differential drives and, 513–516 vectors, 270 execution model, 484–485 veer, 596 extensibility, 7 velocity, 250, 380 loops. See loops versioning (service), 609 notifications. See notifications (VPL) versions (MRDS), 4–5, 33 orchestration services and, 523–559 1.5 Refresh, 4, 16, 33 reading sensors with, 517–518 2.0, 4, 5, 16, 33, 798 tutorials, 27 sample code and, 17, 33 directory, 19 Vertex, 16 variables. See variables VertexBuffer, 275 VPL Explorer project, 523–528 Vex Robotics Design System, 734 VPL projects/examples VFW (Video for Windows) standard, 205 Arm Mover, 534–542 video capture device. See VCD 6-BackAndForth project, 517–518 video cards. See graphics cards Ball Follower project, 554–558 Video for Windows (VFW) standard, 205 7-CustomActivity, 488–491

824

bbindex.inddindex.indd 824824 55/7/08/7/08 9:41:039:41:03 AMAM WinForms (Windows Forms) Index 8-CustomActivity, 491–493, 503–508 WinForms v., 170 5-DriveDistance diagram, 515–516 web services, 83, 92, 114. See also DSSP; SOAP 3-DriveInCirclesSim, 513–514 Webcam (generic contract), 271 2-GenericContactSensorNXT, 512–513 Webcam service, 103, 104, 105. See also 1-GenericContactSensorSim, 509–512 SimulatedWebcam service 1-Hello VPL project, 474–475 manually start, 102–103, 205 2-Hello VPL project, 476–477 _webCamEventsPort, 162, 210 7-LaserRangeFinder, 518–519 WebCamForm, 162, 173, 174 Line Follower, 542–553 _webCamFormLoaded, 210 9-Lists, 495–499 webcams, 205–215, 590. See also cameras 5-Loops, 482–483 adding, to services, 206 6-Loops, 484–485 aspect ratio, 206 3-Notifications diagram, 478–479 connecting, 210–212 4-Spiral project, 514–515 frames, processing, 212–215 8-TwoRobots project, 520–522 settings, changing, 206 4-Variables diagram, 480–482 video feed, 173, 205, 600 VPL Explorer, 523–528 WinForm for, 207–212 VPL Sumo, 529–534 Webcam service, 205 VPL Sumo project, 529–534 wheel encoders, 216, 271, 591–592, 593, 602, bumper sensors, reading of, 532–533 627, 637, 639, 640, 730, 739, 779 IR sensors, reading data from, 532 Generic Brick contract, 739 iRobot Create, 530, 532 simulated, 317–318 main diagram, 529 WheelEntities, 287 Maneuver message, 533–534 WheelShapeProperties, 271, 287 PlayerOne activity, 529, 530, 531, 533 whiskers, 167, 170, 569, 586, 594, 595, 612, 613, SimulatedSumoReferee, 529 647, 651 Start action, 530–531 White Box Robotics 914 PC-BOT, 583–584, 682 VPLExplorer diagram, 524–528 WIDCOMM, 603 LRF data, reading of, 525–528 Wiimote, 37 Pioneer3DX robot and, 524 Windows CE, 10, 16, 152, 154, 420, 421, 572, 579, Xbox controller, interfacing with, 524–525 580, 681, 683 booting, 715 SDK, 720 W service on W (rotation angle of wrist joint), 411 running, 725–729 Wait method, 71, 72, 73 setting up, 726–727 walking gaits, 565 testing, 727–728 Wall Colors, 462 shortcuts on, 688 Wall Textures, 462 system image, building, 724–725 WallBoxSize, 464 Windows Forms. See WinForms wandering Windows Mobile, 16, 152, 154, 181, 184, 683, 684, Boe-Bot, 647–652 687, 688, 731 code, running, 707 shortcuts, 688 LEGO NXT Tribot, 644–647 Windows Presentation Foundation (WPF), 172 states (modes), 355, 367–369, 425, 427, Windows XP-based robots, 682 704–707 WinForms (Windows Forms), 66, 81, 171–185 Stinger CE, 703–707 Adapter, 161, 352, 353, 691, 727 WAV files, 593 adding, to services, 172–173 waypoints, 343, 360, 369, 374 SimMagellan service, 352–354 Web Forms, 95, 105, 107, 185–205 creating, 173–175 creating, 198–203 for Robo-Magellan scenario, 351 JavaScript and See JavaScript event handlers, adding, 178–180 steps for using, 187–188 instantiating, 353

825

bbindex.inddindex.indd 825825 55/7/08/7/08 9:41:039:41:03 AMAM WinForms (Windows Forms) (continued)

WinForms (Windows Forms) (continued) forums, 275 receiving from, 175 Microsoft.Xna.Framework namespace, 274 sending to, 175 Microsoft.Xna.Framework.dll, 274–275, 278, 340 services and, passing information, 175–180 adding reference to, 275 StingerDriveByWire and, 691–692 Microsoft.Xna.Framework.Graphics for video feed, 207–212 namespace, 275 Web Forms v., 170 SDK, 275 WinFormsServicePort, 175, 176 XSLT (Extensible Stylesheet Language Transform), wireframe rendering mode, 237 185, 188–198, 784 Worker activity, 526, 527 case sensitivity and, 191 WorkerThreadCount, 67 development environment for, 188–191 world, 340 displaying state with, 196–198 WowWee Robotics, 797 embedded resources. See embedded resources WPF (Windows Presentation Foundation), 172 for enhanced information display, 191 wrappers, 39, 40, 53, 55, 79, 81, 95 file, creation of wrist joints, 401, 405, 411, 662 from scratch, 192–193 wristVal, 405 using MRDS template, 192, 193–196 writing new hardware services, 731–798 HttpGet requests and. See HttpGet requests HttpPost requests and. See HttpPost requests X X position, 411, 534, 538, 541, 664 Y Xbox controllers, 31, 264, 534, 535, 615, Y position, 344, 411, 534, 538, 539, 664 623, 624, 671 YDrive, 381 Arm Mover project and, 534, 535, 537 /year qualifier, 116, 297 thumbsticks, 264, 524, 525, 534, 537, 538, yield break, 45, 46, 69 539, 616, 624, 671 ‘yield is your friend,’ 73 VPLExplorer diagram and, 524–525 yield return, 44, 45, 46, 47, 58, 69, 73 XDrive, 381 YMotionMode, 380 XInputController activity, 525, 537 XML (Extensible Markup Language), 188. See also manifests Z case sensitive, 188, 193 Z position, 411, 534, 538, 539, 664 editing. See Manifest Editor ZDrive, 381 XMotionMode, 380 ZMotionMode, 380 XNA (Microsoft), 19, 154, 228, 229, 240, 275, 279 ZX-Bluetooth module, 754, 755

826

bbindex.inddindex.indd 826826 55/7/08/7/08 9:41:049:41:04 AMAM