Currently used approach :-
Step 1: Use bayesian optimization to find the global optimal racing line and save the coordinates for the trajectory generated in a text file. References :- https://arxiv.org/pdf/2002.04794.pdf
Step 2: Run MPC on the global trajectory generated to locally avoid obstacles and perform overtaking maneuver with competitor vehicles. References :- Model-predictive active steering and obstacle avoidance for autonomous ground vehicles, Optimization‐based autonomous racing of 1:43 scale RC cars, “Kinematic and Dynamic Vehicle Models for Autonomous Driving Control Design” ,Jason Kong , Mark Pfeiffer, Georg Schildbach , Francesco Borrelli
- Install rtidds-connext, casadi python libraries using pip install
- Switch back to Indy_scheduled configuration
- Change the directory for controller process (Point it to the new location of ds_control__controller.exe from DS_DDS folder
- Remove the extra arguments
- Run the controller scripts from MPC folder
- Swith the configuration to hack3_1ego for 1 ego vehicle, hack3_2ego for 2 ego vehicles
- Comment 2 lines in cnxwrapper.cpp (Refer to the video)
- Open scade and open scade_controller project
- Change the id constant to 1
- Swith the build method to DS_DDS1
- Check the topic names. If they do not already contain _ego1 as suffix, add it by going to tools->update topicnames and eecute the command '-o Control::Controller -s _ego1'
- Rebuild the project to generate the new ds_control__controller.exe file
- Launch the controller scripts from MPC_ego1 folder
Refer to the following video : Link