MAX, or “Mobile Autonomous ‘X'” is a completely unique and independently created autonomous stack. MAX’s patented architecture enables vehicles to follow a defined course and dynamically select appropriate maneuvers based on situational awareness. Note that this does not require extensive training – a simple course can be defined in any environment with meta-data such as speeds, intersections, stops, yields, etc. all captured in mission files. Then the MAX autonomous engine chooses from available maneuvers and makes its way down the course.
Note that extensive training on the course in day and night conditions is NOT required. All that is needed is a clear path and then some tweaking and testing to validate the setup. All included MAX routines are ready to go from the start.
MAX has a layered software model as shown, but each layer is composed of services rather than just APIs. The base MAX layer contains core services: data collection from sensors; perception; fusing sensor data; decision-making; communications; and taking actions via controls.
The MAX-UGV (Unmanned Guided Vehicle) layer provides path and movement planning services suitable for any kind of ground vehicle or robot. This layer includes 2-D path planning and routing services, support for different steering mechanisms such as skid steering or ackerman steering, and obstacle detection and avoidance.
The MAX-Auto layer provides higher-level automotive and transit maneuvers such as intersection handling, parking, traffic light detection and evaluation, merging on highways, round-abouts, following, and much more.
MAX delivers all of these capabilities as a reference autonomous engine. A solution provider need only create high-level application functions to deliver a specific solution on top of solid, core autonomy. MAX is highly configurable using text-based configuration files that define how sensor data is consumed, how movements are made, how controls are engaged and much, much more.
In summary, MAX is your abstraction to autonomy – you spend your time on higher level logic and instructions for what the vehicle should ultimately do, and MAX takes care of movement, perception, and obstacle avoidance.
MAX supports higher-level programming models and also fast integration of existing code or other product libraries. Our platform offers choice, not lock-in to a specific model. The MAX services model means your high level code requests activities and events to happen such as “give me the list of objects you detect” or “take the next right”. This frees the developer to focus on their job – we’ll do the driving.
MAX includes all required functions out of the box, but you can quickly insert your own custom algorithms and logic. This allows you to leverage your expertise or pool of existing software. MAX’s layered architecture and robust APIs give you the flexibility to pick and choose what parts you want to do yourself. Further, MAX is designed to operate either on a single processor or to be distributed among a range of processors or cores. Changing the run-time setup allows you to use a simple solution on a lower-end unit and then scale up to a more complex solution across multiple processors while leveraging the same code across both solutions.
PRI offers an optional simulator toolkit that allows you to test your autonomous vehicle under real-world conditions. Pedestrians, other vehicles, and intersections of any kind can be simulated in a realistic manner. Real-world testing is still required, but our simulator solution reduces development cycles and cost by allowing your team to test quickly and safely from their office. You can use the same hardware as in the vehicle, or on more convenient platforms like laptops.
MAX can drive your vehicle via configuration of sensors, controls, and behavior without the need to write a single line of code. As proof, we obtained the pre-defined CAN commands from a major automotive OEM. Then we installed our GPS solution on their car and had the car self-driving in one morning from arrival of car to complete self-navigation. MAX handles all the critical operating functions including logging, security, and system management so you don’t have to.
MAX has operated in real-time environments for over 16 years and has autonomously driven over 33,500 miles! Today’s MAX software has its roots in the 2005 DARPA Grand Challenge and the 2007 DARPA Urban Challenge. MAX was built as a production grade system from the start and has a provable safety model that we are working on certifying. MAX is the one solution that works from the test bench to the test track to the production line without ever needing a rewrite.
With experienced, high quality autonomous engineers in short supply, you may want some help as you staff up your team. Perrone Robotics’ services team is there to help fill in any gaps in expertise or we assist you to implement an entire solution to your specs. We have projects that range from small personal robots to ATVs to shuttles to automobiles to trucking to the world’s largest Mining truck – all running on the same autonomous engine: MAX.
Watch MAX-based Hardware In the Loop (HIL) simulation at work in the video below.
The goal of the MAX platform is to enable your work, not restrict you. As such, MAX runs on a wide range of operating systems and supports both soft and hard real-time environments. Our soft real-time support is very good, and of course hard-real-time meets all deadlines as designed. Does your code have to change? No. You need to pick the HW platform needed for the amount of sensor processing you’re doing and for your power profile. Note that we have (as a demo/example) run an automobile running GPS localization, 2 lidars and radars performing obstacle detection and avoidance – all on a Raspberry Pi ($39). More rigorous and production environments will need more. If you’re performing simple tasks using only MAX Common functions, you can run on a smaller processor/memory footprint. Listed below are some common requirements: