Autoware.Auto vs Autoware.AI Motion Planners flexibility - Runtime Manager
Hi Autoware.Auto staff I need a strong suggestion from you !!!But at first let me congratulate you for the amazing and well produced course on youtube and documentation on Gitlab, as well as for all the replies I have posted :).
At this moment I have concluded the AWF course: read all the live classes material, reproduced all the videoclasses and read some articles of Autoware.
However I am still stuck on my master research: "Path planners and obstacle avoidance for self-driving cars", which the goal is to test and launch different path planners (global or/and local) in order to have different car behaviour and optimization when achieving the goal pose, while avoiding static or dynamic obstacles. At the beginning I was trying to trigger OMPL planners (Djikstra, A* search, RRT, etc, based on a previous similar project that my team used for for Girona 500 Intervention Autonomous Underwater Vehicles in MoveIt Ros framework, and as result had a complete benchmark of planners algorithms in terms of planned/executed time, path length, computational consumption resources, trajectory smoothness and so on. But it was not possible to use the same framework for cars, unfortunately. It is a pitty, because MoveI offered a good interface to switch planners and afterwards return a matplotlib Benchmark. As the image below suggest:
Then later I have used Navigation Stack on ROS1 with Gazebo and Prius car model to switch TEB local planner, DWA, Eband, carrot, and other algorithms. However the ROS1 Navigation Stack did not offer suitable algorithms for nonholonimic car model (with exception of TEB), as well as any benchmark tool as MoveIt (a rosbag would be a solution for good comparisons, I believe),besides that Gazebo environment also was poor, not so realistic.
Then I finally migrated to Autoware.Auto and now I have realized, maybe I am wrong, that Autoware.Auto project is kind of "closed" for "raw path planners" applications and exchange. I mean it is not so easy or even possible directly use planners from OMPL, with a just import and use in scripts and launch files... In Autoware.Auto things does not work like that right? To understand how it works, I have opened the global planner pkgs and files, but as I was opening I have seen a bunch of import in those scripts, it never ends!!!
A global_planner.cpp or .hpp file, calls another one and this one calls another ones (such as "->global->global_route->route_struct->route_builder->trajectory_point_struct->map_primitive_traits...etc) As depict the image below:
As far as I understood the global planner is a planner that just interprets the HD map, convert it to Autoware.Auto primitives, and select the most suitable streets and highways, assigning ID to them, right?
I have never used Autoware.AI. However after a youtube search I have seen that there is a kind of better Interface, called runtime manager, that unfortunatelyAutoware.Auto does not have, or has it??? It seems to be possible with this interface to switch the path planners,tune the parameters of these planners, as well as switch and tune other autonomous driving modules in order to test and choose the most feasible one for particular scenario:
Is there also the "runtime manager" interface tool in Autoware.Auto or similar as in Autoware.AI, if yes how to install and launch it ?
Going deep to understand the planners in Autoware, I have read part of this documentation: https://autoware.readthedocs.io/en/feature-documentation_rtd/DevelopersGuide/PackagesNodes.html and later the article attached to this documentation:
From the article I understood that Autoware.AI used the OpenPlanner application instead OMPL or others. And it is written that it is reasonable to use the derived Lanelet2 planner for global planner on highways scenarios ALWAYS. With exception for parking, and off-road simulations, once it would not be appropriated for them. Loking for how Autoware.Auto triggers the local planners I have found:
From this explanation I conclude there is not a real local planner, but an implemented trajectory steps from Autoware.Auto team: autowarefoundation/autoware.auto/AutowareAuto#447 (closed)
This implementation basically makes the "local planner" to call for the control module (Pure Pursuit or MPC) to force the car follows these evasive maneuver, that is built over trajectories waypoints. Am I right? There is not available in AutowareAuto a standard local planner (Djikstra, RRT, A*) calculating the waypoints based on sensor input or is it?
Finally after listen this podcast from Josh Whitley: https://www.theconstructsim.com/the-autoware-foundation-self-driving-cars-with-joshua-whitley/
I became aware and worried!!! Autoware.Auto is not just an improvement of Autoware.AI but a different project! Right?
Considering I do not need to to embed code in a real-time with safety system in a real car (One purpose of ROS2/AutowareAuto). But just do a simulation project for university, I should use Autoware.AI? **Is Autoware.AI capable of address path planners switch for the same Dataset scenario, As the following image below suggests? **
I did not find any Autoware.AI course or installation methods, so good as Autoware.Auto.** Where could I find?**
My deadline is not far, so to start and learn a new framework such as Autoware.AI would demand lot of time?? Is there a way to do the same path planner exchange in Autoware.Auto and load these "raw" standard algorithms to the local planner module or to global planner and switch them? Or AutowareAuto does not offer this flexibility? If possible, how to achieve that?
If not could you please send me a step-by-step Autoware.AI installation and path planners usage tutorials, as well as how to run the runtime-manager interface? Can Autoware.AI be installed along Autoware.Auto in the same linux partition (Ubuntu 20.04)? Or need I uninstall Autoware.Auto? I have installed inside ade folder and downloaded from repo in docker container as reccomends the installation instructions.
Thanks very much in advance






