The AutonoNav™ is a customizable set of autonomous software modules that can be deployed on a variety of different hardware, based on the specifics of the application. The autonomous software architecture, which follows a hierarchical state-machine model, provides the foundation for integrating software and algorithms for autonomous vehicle control.
The key to making an unmanned vehicle autonomous is software that runs on the AutonoNav. The AutonoNav system is typically composed of one or more computers running TORC’s navigation and autonomy software. You can select from standard autonomy configurations or have TORC customize one for you.
Every mission is different, so to build your AutonoNav, start by selecting the capabilities and behaviors that fit your mission goals. This helps to determine the computing power needed to make your autonomous system. Next, determine the operational environment of your unmanned system. Will it be operating on roads, off-roads, under trees, on sand? Finally, describe what environmental rating your system needs.
TORC's software architecture, which follows a hierarchical state-machine model, provides the foundation for integrating algorithms for autonomous vehicle control. The software components within this architecture include: Mission Planning, Perception, Behaviors, Motion Planning, and Vehicle Control. Each component has different levels of capabilities that are assembled to meet customer requirements. Whether you need a system that can drive in a complex urban environment or as system that simply follows waypoints, our team of software engineers will work to integrate the components that fit your autonomous vehicle application.
TORC's software architecture achieves high speed of response, advanced capability and quick customization required for TORC’s clients. The major software components – mission planning, perception, behaviors, motion planning and vehicle control – form a hybrid Deliberative/Reactive control strategy. Deliberative control is best described as one that makes a detailed plan before acting while a Reactive control strategy takes the data as is and acts on it immediately. Deliberative control has the ability to take in a priori information such as road networks or assumed geometries and applying those assumptions to create detailed plan such as a map to follow. This can be much more processor intensive than the predictable reactive control. So combining them allows TORC to deliver a solution that has the speed of response and cognition required for unmanned vehicle systems.
The Mission Planner component is the coarsest level of decision planning within the software architecture. The Mission Planner is responsible for determining which waypoint segments the vehicle should travel to complete a mission. The Mission Planner uses a-priori information such as terrain profiles, road networks, and information gathered during missions. After processing, the Mission Planner outputs a series of waypoints to the Behaviors module.
TORC has developed a broad range of perception algorithms for performing localization, road detection, and object classification. These algorithms integrate information from sensors such as LIDAR, RADAR and vision into fused perception data that can be used by planning and reactive components.
The Behaviors component is responsible for following rules during a mission. These behaviors may include rules of the road such as intersection progression for ground vehicles or docking for surface vehicles. Often, rules and guidelines may conflict. As a result, an Action-Selection-Mechanism (ASM) evaluates the most appropriate behavior given the situation. The Behavior Integrator is responsible for ensuring that there is a 'winner' from each rule so a full behavior profile can be generated at any time. This structure also allows for greater modularity and specialization for specific applications.
Motion Planning is the decision making layer between Behaviors and the Vehicle Controller that converts target points into a series of vehicle commands. Motion Planning generates a navigation strategy to safely achieve these set goal points. The two main subdivisions are lanes and zones. Lane navigation requires the vehicle to maintain strict boundaries and conform to the motion other vehicles. Zones, on the other hand, are much less structured and require a balance of speed and steering based obstacle avoidance.
The last element in the architecture, the vehicle controller is run on the ByWire. It is responsible for maintaining closed loop control of the vehicle’s actuators and reporting system health and monitoring safety systems.
When customizing an autonomy solution to meet your application, it is best to start by specifically defining what you want the autonomous robotic system to do. Below are some specifications, behaviors and capabilities that will help you explain what your system needs to do so we can configure our autonomous software to match your requirements.
|Travel surfaces (primary & secondary roads, trails and cross country terrain)|
|Types of static obstacles
|Types of moving obstacles: pedestrians, animals, cars, trucks, motorcycles, others|
|Weather, fog, rain, dust|
|Platform type and mobility (Ackerman, Differential Drive, other)|
|Shock and vibration|
|Waypoints, checkpoints, and rally points (GPS, UTM, MGRS, other)|
|Aerial imagery integration|
|Terrain map data integration|
|Road network integration|
|Mission time estimation|
|Route generation optimization|
|Third party interfaces (FalconVIEW, MOCU, JAUS, Google Earth, others)|
|Behaviors and Capabilities|
|Semi-autonomous waypoint following|
|Follow the leader|
|Teleoperated (remote) control|
|Obey rules of the road|
|Intersection behaviors (precedence, queuing)|
|Passing disabled/moving vehicles|
|Lost communication procedures|
|Re-traverse, teach and repeat a route|
|Retro-traverse: return to point of origin along the previously travelled path|
|Detecting and estimating road surfaces|
|Detecting and classifying obstacles (people, vehicles, others)|
|Detecting and interpreting regulatory traffic signs|
|MIL-STDs (810, 882, others)|