1.3 Welcome to BeeSoft!
In this section...
Youll take a whirlwind tour of BeeSofts client-server architecture, find out about the structure of the system and review the locations of important controls and sensors on your B14 or B21 robot.
1.3.1 What Is BeeSoft?
Real World Interface, Inc.s BeeSoft package is the software that lets you tell your robot exactly what to do and when to do it.
Each RWI robot contains one or more onboard computers that control its resources, such as its mobile base, its sonars, and its pan/tilt head, and enable such useful robot behaviors as moving forward along a specific heading, detecting a nearby wall, and pointing a camera. Thanks to the BeeSoft softwares client-server architecture, though, you, as a programmer, dont need to know or care which specific computer controls the particular robot resource you want to use. A separate server program manages each robot resource, empowering you to control that resource as if it were local to your own program. Figure 1-1 illustrates BeeSofts client-server architecture.
To coordinate communication among all the computers in your robot system, BeeSoft is organized around this set of servers. Whether your robot includes only a single computer or several, a special program called tcxServer manages communication among all the programs running on all the computers that make up your robot system
Your own user application program communicates with the servers, and thus directs the robots activities, via API (Application Program Interface) function calls. Your program, running on any of the robot systems computers, can thus direct robot activities controlled from any of the other system computers, with complete transparency. For example, when you want to tell the robot to move forward a certain distance, you need only call the appropriate function in the client API library that controls the robot bases motion. The client API library function then determines which server manages the robots base and instructs that server to initiate forward motion.
BeeSoft also includes built-in support for the ACCESS.bus, a hardware subsystem within therobot itself that manages communication with some of the onboard sensors. See Chapter 15 on The Access.bus and mspterm for details.
Figure 1-1 - BeeSoft Client-Server Architecture
In addition to all the features listed above, BeeSoft provides two fully supported utilities, the BeeSoft Simulator and the BeeSoft Commander; and also includes some related example applications for advanced robotics work. These applications, the BeeSoft Mapper, the BeeSoft Planner, sonarint and laserint are not formally supported by RWI, Inc.
1.3.2 BeeSoft Architecture: The Servers
baseServer issues commands to the robots wheeled base. You can control the robots motion forwards and backwards, as well as rotational motion clockwise and counterclockwise around the robots center axis. baseServer does not include automatic obstacle avoidance. The robot just moves.
In addition baseServer provides control of and interface to the robots sonar, tactile and infrared sensors. The baseServer must run on the computer that is directly connected to the hardware it controls.
colliServer issues commands to the robots wheeled base in guarded motion mode, that is, incorporating built-in collision avoidance. You give the robot a target point at which to aim: either a relative target point or an absolute target point. The robot follows your commands, while trying its best to avoid those obstacles it can perceive. colliServer calls baseServer routines for basic motion control.
The pantiltServer server sends commands to your robots pan/tilt head. You control the speed, acceleration and power of the move, or set the head to any fixed position you like.
The pantiltServer must run on the computer that is directly connected to the hardware it controls.
The armServer, the B21 Manipulator server, lets you control the robots B21 manipulator mechanism, often called the robots "arm.". You direct the actions of the mast, the gripper, and the manipulators.
The armServer must run on the computer that is directly connected to the hardware it controls.
speechServer lets you send text for the robot to enunciate, if the DoubleTalker (speech synthesis) board is installed on your robot. The speechServer must run on the computer that is directly connected to the hardware it controls.
tcxServer is the communications management software supplied with BeeSoft. It runs on one computer, but coordinates communications among all control programs running on all computers in your robot system.
1.3.3 Bandwidth Constraints Under BeeSoft
In BeeSofts client/server architecture, its important to understand why certain processes, and combinations of processes, are divided among the processors in the way they are. Think of your entire robot system as two "worlds" or "realms:" the robot and the workstation. Now, here we dont mean the actual, physical robot, but the computers within it. Consider the chart below, Figure 1-2A, showing one possible division of labor:
Figure 1-2A - Bandwidth Constraints Under BeeSoft: Running colliServer without the ROUTER Utility
The connections between colliServer and each of the colliServer-based utilities and applications are, individually, low-bandwidth connections. But, in aggregate, as they are often run in actual practice, they require a high-bandwidth connection.
If you communicate with your robot over a radio modem, you can run one, or at most, a few of these at a time. But if you try to run them all at once, your radio modem will not be able to keep up. (If you have an Ethernet radio link, though, youll have plenty of bandwidth.) On the workstation side, the connection between the BeeSoft Planner and its X-Windows environment can be characterized as a very high bandwidth connection. To run the BeeSoft Planner successfully, you really need an Ethernet cable.
The following diagram, Figure 1-2B, shows the use of the ROUTER utility to help manage these bandwidth conundrums. Running colliServer with the --router command line argument allows colliServer to communicate over a radio link running at 38400 baud to interface with the colliServer-based applications -- the BeeSoft Commander, BeeSoft Mapper and BeeSoft Planner.
Figure 1-2B - Using the ROUTER Utility to Help Overcome Bandwidth Constraints under BeeSoft
With the ROUTER utility run as a command line argument when starting up colliServer, the communication between colliServer and the ROUTER utility, running on the workstation, can now be handled by a 38400 baud connection.
Figure 1-2C, below, shows how the example application program wander is affected by bandwidth constraints.
Figure 1-2C - Bandwidth Considerations with the BeeSoft Example Application wander
1.3.4 Other Important BeeSoft Considerations
1. baseServer, armServer, panServer and speechServer must each run on the computer that is directly connected to the hardware they control.
2. To run the BeeSoft supported utilities BeeSoft Commander and BeeSoft Simulator, and to run the programs sonarint and laserint, you need an X-Windows workstation.
3. All tcxServer connections are low-bandwidth.