SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 PIKES PEAK ROBOT HILL CLIMB SKYBOT Document Abstract This document is a part of the conceptual and preliminary design phase of the project. The document presents a high-level overview of the SkyBot Race Vehicle subsystem. This document answers “what” the race vehicle subsystem is expected to do. The document presents an integrated view of the race vehicle subsystem’s functional blocks. The functions have been derived based on the operations that the system is expected to perform. Document Control File Name: SkyBot_FunctionalAnalysis_V1.6.doc History Version No. 1.0 Date 07/07/06 Created Modified by Shivani Pandey 1.1 07/17/06 Shivani Pandey 1.2 07/19/2006 Shivani Pandey 1.3 07/25/2006 Shivani Pandey 1.4 07/26/2006 Shivani Pandey 1.5 07/28/2006 Shivani Pandey 1.6 08/02/06 Shivani Pandey / Reviewed by Sam Harbaugh Sam Harbaugh Changes Made Original Changed Functional Block Diagram to include Clients perspective Sam Functional Block Harbaugh Diagram broken down to further lower levels Lynn Carter, Modified Functional Sam Block Diagram Harbaugh Sam Description of each Harbaugh function added. Lynn Carter Change in Functional Block Diagram to add Legend 1 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 Table of Contents 1. Introduction………………………………………………………………..3 1.1 Background……………………………………………………………..3 2. Scope………………………………………………………………………..3 3. Functional Block Diagram ………………………………………………..6 4. Functional Description…………………………………………………….7 4.1 Sense…………………………………………………………………….7 4.2 Perceive………………………………………………………………….8 4.3 Plan……………………………………………………………………...9 4.4 Navigate………………………………………………………………..11 4.5 Record………………………………………………………………….12 4.6 Ensure Safety…………………………………………………………..12 4.7 Manual Control………………………………………………………...14 5. Conclusion ………………………………………………………………..14 2 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 1. Introduction Team SkyBot is preparing to participate in the Pikes Peak Robot Hill Climb Race. Our goal is to develop the winning race vehicle which is quick, agile, and stable and can handle rough terrain and can reach the finish line of the race in the least time performing better than its competitors. It should function autonomously, be equipped with proper safety equipment and should be controlled by a chase vehicle. In this functional analysis document we capture the desired functionality of the race vehicle subsystem to complete the race successfully. 1.1 Background The race course is a 12.4 mile race, with +/- 10% grades, 156 corners, many of them hairpins, and 2,000 foot cliffs with no guardrails. It is a 4,710 foot climb from the start line to a summit of 14,100 ft. The requirements of the race have been documented in the requirements analysis document. The functional block diagram of the race vehicle subsystem is designed based on the functions the race vehicle will have to perform in order to move from the start to the finish line. 2. Scope The top-level of the functional block diagram captures the flow in entirety which we have considered for approaching the race. 2.0 1.0 Requirements Analysis and Validation 8.0 3.0 Design the race vehicle subsystem Perform integration and sub system acceptance test 6.0 7.0 Post-Race Vehicle Maintenance and Operations 4.0 Procure or Develop the subsystem components Operate the vehicle in actual race environment 3 Operate the vehicle in Pre-Race environment 5.0 Package and Ship the race vehicle SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 From this diagram we can’t conclude what the actual function of the race vehicle will be. Hence we break down the step (7.0) which emphasizes on operating the race vehicle in the actual race environment. 7.0 Ref Operate the vehicle in actual race environment 7.1 7.2 Prepare the race vehicle in inertial state Move the race vehicle to the start line 7.3 Start the race vehicle subsystem at the start line 7.4 Move the race vehicle from the start line to the finish line 7.5 Perform the race vehicle system shutdown 7.6 Manually control / maneuver the race vehicle This is a sequential step by step representation of what we will need to do to operate the vehicle and complete the race. The notion of what the race vehicle subsystem does is still not introduced. So we need to concentrate on the block 7.4 which considers moving the race vehicle from the start to the finish line. We capture the functions which will be performed by the race vehicle subsystem to move from the start to the finish line safely in least possible time. The functionality of each of the critical steps is captured along with a small description of components which will accomplish the task. 4 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 The Pikes Peak Hill climb race provides tremendous technical challenges while synthesizing the different functionalities into an integrated system. The Challenge can be broken down into distinct components: 1. Real time sensing of the environment to avoid obstacles. 2. Perceiving the true nature of the obstacles 3. Map assessment and planning to define a path to the goal, selection of the optimal route, 4. Transmission of commands to mechanically move the vehicle. 5. Recording the movement of the vehicle. 6. Ensuring safety of the spectators, race vehicle subsystem and the participants. Each of these functions has further been discussed to cover the components which can be used to achieve the expected functionality. The complete functional block diagram as it will be for the race vehicle subsystem is shown below. 5 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 3. Functional Block Diagram 2.0 1.0 Requirements Analysis and Validation 3.0 4.0 Procure or Develop the subsystem components Design the race vehicle subsystem 8.0 5.0 6.0 7.0 Post-Race Vehicle Maintenance and Operations Perform integration and sub system acceptance test Operate the vehicle in actual race environment Package and Ship the race vehicle Operate the vehicle in Pre-Race environment 6.0 6.1 Ref Operate the vehicle in Pre-Race environment Check conformity with the Race Administration Rules AND 6.3 G 7.0 G Disqualify the race vehicle G G bar 6.4 6.2 Test the performance of race vehicle Maintain the race vehicle G bar 7.0 7.1 Ref Operate the vehicle in actual race environment 7.2 Prepare the race vehicle in inertial state Move the race vehicle to the start line G 7.2 7.1 Check Fuel level, oil level, Air flow, temperature 7.4 Move the race vehicle from the start line to the finish line Start the race vehicle subsystem at the start line 7.1.2 7.1.1 Ref Prepare the race vehicle in inertial state 7.3 G bar 7.5 Perform the race vehicle system shutdown Maintain the race vehicle 7.6 7.4.1 7.4.1 Sense à GPS, RADAR ,LIDAR,Contact Sensors Manually control / maneuver the race vehicle 7.4.2 Perceive à Imaging, Database 7.4 Ref Move the race vehicle from the start line to the finish line 7.4.7 7.4.3 Plan à RDDF , Software System Reach the finish line safely 7.4.4 Navigate LEGEND All Functions are happening simultaneously 7.4.5 Record à Stereovision Camera Output from one function is given as input to the next simultaneous function 7.4.6 Ensure Safety à Klaxon , Beacon, Safety Buttons to Disable / Enable vehicle Functional Flow Diagram for Race Vehicle SubSystem 6 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 4. Functional Description The main functions of the race vehicle identified are explained below: 4.1 Sense : - Read / Interpret Sensors - Pose Sensing - Obstacle Detection By sense we mean, the ability of the race vehicle subsystem to read/ interpret the input which will be obtained from the various sensors mounted on the vehicle. This sensing architecture is fused with the overall vehicle control. Each obstacle detection component is an independent component and the functionality that will be achieved by these components such as GPS, RADAR, LIDAR, contact sensors is described below. Using a GPS receiver, we can determine the latitude, longitude and altitude of the race vehicle. This receiver with its built-in-clock will give us other pieces of information such as how far has the race vehicle traveled how long has the race vehicle been traveling the current speed of race vehicle the average speed of race vehicle estimated time of arrival of race vehicle at the top of the mountain, keeping the minimum constant speed. Thus the state of our race vehicle can be sensed with GPS, which globally estimates vehicle position and orientation with respect to map database with excellent short-term accuracy and minimum long-term drift. 7 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 RADAR will be used to detect the position of the object / obstacle at any distance. The RADAR is not susceptible to dust/mud interference or lighting conditions and has the longest range. The RADAR broadcasts the obstacle parameters including position in both local and global coordinates along with obstacle size to the perceiver. LIDAR will also do the global positioning and sizing of the obstacle. It will return the highest features, for example tree canopy, buildings etc and also valuable data about objects right on the surface of the earth. Contact sensors are integrated to provide a method to indicate if any vehicle is coming in close vicinity of the race vehicle. Vehicle stuck scenarios are handled through close range sensors (LIDAR & contact sensors) if stuck against immobile obstacles as well as vehicle wheel rotation with respect to other navigation clues for mud/sand/high-center obstacles. 4.2 Perceive: -Geometry Characterization Once the vehicle is capable of detecting some obstacle, it needs to possess the ability of associating that sensed object with some known object which it already maintains in its database form previous experiences or what has been fed in the database. The problem of ascertaining the presence of dynamic objects in a robot’s vicinity becomes all the more obscure when information about the environment is obtained from range sensors (lasers). 8 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 In vision-based detection and tracking systems a single snapshot can furnish the essential details and a holistic representation of the environment can be obtained. Data obtained from range sensors on the other hand are nothing but discretized spatial samples, which represent those parts of the local environment that have reflected the beam emitted by these sensors. To obtain a unified picture of the environment based on a temporal sequence of such spatially discrete samples becomes problematic, especially if the environment is nonstationary and the sensors are themselves subjected to translation and rotation. In spite of these difficulties, range sensors (especially lasers) have been popular. Here in our case, perceived environmental interpretation is achieved by combining the data obtained from LIDAR, RADAR and GPS. The imaging of data is done and the results are matched with the entries in the database to determine what is the magnitude and type of the obstacle. The database will already have a repository of object images mapped such as rock, another car, people, shrub, bushes etc. The vehicle will perceive its environment and send the appropriate commands by running some software algorithm and this will be mechanically translated to the actuators which will then give directions to the planning system about what path the vehicle should follow in order to reach the top of mountain in the least time and safely. 4.3 Plan: Once the vehicle understands the nature of the obstacles on its way and knows the track that it has to follow, the next important function is to be able to plan the path and the speed at which the vehicle will move through that path to ensure safety and at the same time reach the destination fast. The objective of the plan function is to keep a check on: speed path 9 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 -Plan speed -Plan path Based on these two factors the race vehicle subsystem can take the decision of how it should proceed on the current path which it is traversing and at the same time determine how it should proceed to avoid obstacles and reach destination. The software system will have the program to interpolate between the large GPS increments provided in the RDDF file. The algorithm’s purpose is to generate points at increments that the GPS follower could follow even without a path planner active. In case the GPS fails to work, the primary sensor for this adjustment is the road following LIDAR system. Path planner receives “center of the road” messages from the road follower. Based on current position, route boundaries, and operating speed, the path planner decides to adjust the path onto the center of the road. This is done using a proprietary real-time path overlaying technique that can adjust the path in the real-time controller while moving at speed. Each obstacle detection sensor follows the same process. A failure of any individual sensor results in no information being broadcast from that specific sensor. Each sensor filters the data by comparing the data from other sensors of the same type which provides true positive obstacles to the path planner. 10 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 4.4 Navigate: Once the race vehicle knows the path and the speed at which it has to travel, the steps that become important for it to continue its movement on the track and reach the summit are as follows. Navigate - Steering - Road finding / following - Braking / Speed Control - Disable / Enable vehicle Vehicle state is also derived from the supplementary navigation system that provides vehicle orientation with respect to the flat earth. Feedback is also provided by several sensors located with each actuation system. There are some behavioral processing algorithms run for each of these sensors. Using the feedback, the race vehicle should be able to steer forward and backward. Speed control determines the need for braking and throttle actuation. This takes into account the starting/stopping/operating on flat and inclined surfaces. During the race, the race vehicle will receive signals only through E-Stop, GPS via satellite. The vehicle can be disabled or enabled using the E-Stop transmitter from the chase vehicle. In case the GPS stops to function, the race vehicle should be able to do road following by adjusting itself in the center of road and maintaining the sense of where it is heading using the current position as basis for sensing. 11 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 4.5 Record The progress of the race vehicle will be captured by the cameras which are mounted on top of the race vehicle in all directions. These cameras will closely monitor the track followed by the race vehicle and record the same - Capture path . This is important from the stakeholder’s point of view as the sponsors will earn the entertainment value from the captured video. Also the tape can be viewed later by the team to understand its follies. 4.6 Ensure Safety: The top most attribute of our race vehicle subsystem is to ensure safety of the spectators, race participants, objects in the environment and the system itself. This is the most important requirement from our system. There are several ways in which we shall ensure that the operations of the vehicle are safe. - Make sound - Emit light - Suppress fire - Continuously monitor all subsystem elements 12 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 We have several components to achieve the above functions, these are described below. Klaxon: In case of failure of any of the critical subsystems of the race vehicle, klaxon should set off and alarm people or spectators. This will warn the spectators and the race administration and the participating teams that something is wrong in the race vehicle and appropriate actions can be taken quickly. Beacon: The beacon should get activated and flash the warning signal or light so that in case of foggy weather or in dark, race administration or spectators or the representing teams will take note that something has gone wrong even from a far off distance and the race track can be cleared to deflect potential possibility of threat. Safety Buttons: There are four safety buttons on the vehicle. In addition to this, the vehicle is also controlled by the E-Stop which is located in the chase vehicle. To move the vehicle, an emergency brake manual deactivation knob (any of the four buttons) on the outside of the vehicle can be turned which will release the brakes. A manual brake lever is available if the vehicle starts to roll. In addition, the gear shift switch is available to put the vehicle in PARK (or pause) if necessary. The manual DISABLE buttons cut the power to the brake deactivator. The spring-loaded brake will apply automatically. The main engine power is disconnected and the engine control module is grounded causing the engine to stop completely. This will prevent any unexpected movements. Safety equipments such as fire extinguishers will be mounted external to the race vehicle to suppress fire. Safety control system will continuously monitor all the subsystems. This will help to take a fast step to realizing the problems in the subsystem early and it will ensure safe movement of the vehicle. 13 SkyBot Pikes Peak Robot Hill Climb SkyBot_FunctionalAnalysis_V1.6 All the equipments which are mounted on the vehicle will be put in cages or shields so that they do not fall-off during the normal operation of the vehicle. This is to ensure an extra level of safety of the spectators. 4.7 Manual control The vehicle will remain human drivable. The vehicle will also be controllable using an E-Stop transmitter so that in case of any unexpected events the vehicle can be controlled from the chase vehicle. At the end of the race when the vehicle reaches the finish line the subsystems will stop working and the vehicle control will transfer to manual operations. 5. Conclusion Based on this functional analysis, we model our race vehicle subsystem. We have identified the components for carrying out the functionality to move from the start to the finish line and now we can proceed to do the reliability analysis for each of the components identified for the subsystems to gain confidence in how best can we meet the requirements. 14