Skip to content

A comprehensive toolbox containing modular APIs and turnkey demos for autonomous driving using AutoDRIVE Ecosystem and MathWorks tool suite

Notifications You must be signed in to change notification settings

AutoDRIVE-Ecosystem/AutoDRIVE-MathWorks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AutoDRIVE       MathWorks

A comprehensive toolbox containing modular APIs and turnkey demos for autonomous driving using AutoDRIVE Ecosystem and MathWorks tool suite.

MATLAB File Exchange GitHub Github Stars Github Forks Github Downloads

MATLAB API

This section describes the MATLAB API for AutoDRIVE, which can be used to develop modular as well as end-to-end autonomous driving algorithms using textual programming. This API is primarily designed for "software engineers" who prefer a script/function-based workflow.

SETUP

Note

Please skip this setup if you have already installed the autodrive_simulink_api.

  1. Install the Java library:
    • Place the WebSocket-1.0.0.jar file on the static Java class path in MATLAB by editing the javaclasspath.txt file (create the file if it does not exist). Run the following in MATLAB Command Window:

      edit(fullfile(prefdir,'javaclasspath.txt'))

      For example, if the location of the jar file is C:\AutoDRIVE-MathWorks\autodrive_matlab_api\lib\target\WebSocket-1.0.0.jar, then open the static class path file with the above command and add the full path to it. Make sure that there are no other lines with a WebSocket-* entry. You can refer to MATLAB's Documentation for more information on the static Java class path.

      After having done this, restart MATLAB and check that the path was read by MATLAB properly by running the javaclasspath command. The newly added path should appear at the bottom of the list, before the DYNAMIC JAVA PATH entries. Note that seeing the entry here does not mean that MATLAB necessarily found the jar file properly. You must make sure that the actual jar file is indeed available at this location.

    • [OPTIONAL] To build the jar file yourself, it is recommended to use Apache Maven (tested with version 3.8.1) with Java Development Kit (tested with version 8u411). Maven will automatically take care of downloading the Java-WebSocket library and neatly package everything into a single file (an "uber jar") based on the pom.xml. Once the mvn command is on your path, simply cd to the lib directory and execute the mvn package command.

  2. Add the autodrive_matlab_api directory to MATLAB path by right-clicking on it from MATLAB's file explorer and selecting Add to PathSelected Folders and Subfolders.

USAGE

  1. Execute AutoDRIVE MATLAB API:

    autodrive = example_{vehicle}(4567)

    Replace {vehicle} by one of the available objects:

  2. Terminate AutoDRIVE MATLAB API:

    autodrive.stop
    delete(autodrive)
    clear autodrive

Simulink API

This section describes the Simulink API for AutoDRIVE, which can be used to develop modular as well as end-to-end autonomous driving algorithms using graphical programming. This API is primarily designed for "system engineers" who prefer an interactive MBD/MBSE toolchain.

SETUP

Note

Please skip this setup if you have already installed the autodrive_matlab_api.

  1. Install the Java library:
    • Place the WebSocket-1.0.0.jar file on the static Java class path in MATLAB by editing the javaclasspath.txt file (create the file if it does not exist). Run the following in MATLAB Command Window:

      edit(fullfile(prefdir,'javaclasspath.txt'))

      For example, if the location of the jar file is C:\AutoDRIVE-MathWorks\autodrive_simulink_api\lib\target\WebSocket-1.0.0.jar, then open the static class path file with the above command and add the full path to it. Make sure that there are no other lines with a WebSocket-* entry. You can refer to MATLAB's Documentation for more information on the static Java class path.

      After having done this, restart MATLAB and check that the path was read by MATLAB properly by running the javaclasspath command. The newly added path should appear at the bottom of the list, before the DYNAMIC JAVA PATH entries. Note that seeing the entry here does not mean that MATLAB necessarily found the jar file properly. You must make sure that the actual jar file is indeed available at this location.

    • [OPTIONAL] To build the jar file yourself, it is recommended to use Apache Maven (tested with version 3.8.1) with Java Development Kit (tested with version 8u411). Maven will automatically take care of downloading the Java-WebSocket library and neatly package everything into a single file (an "uber jar") based on the pom.xml. Once the mvn command is on your path, simply cd to the lib directory and execute the mvn package command.

  2. Add the autodrive_simulink_api directory to MATLAB path by right-clicking on it from MATLAB's file explorer and selecting Add to PathSelected Folders and Subfolders.

Note

If you face issues installing/running the AutoDRIVE Simulink API or examples, check out the Troubleshooting Guide for helpful tips.

USAGE

Run the vehicle-specific example file:

Note

The AutoDRIVE Simulink API, which is implemented as a Level-2 MATLAB S-Function, will automatically take care of creating a WebSocket server instance upon running the Simulink model and will ensure a graceful exit upon termination by stopping the server instance, deleting it, and clearing it from the memory.

Turnkey Demos

This section describes various turnkey demos for modular as well as end-to-end autonomous driving algorithms developed using AutoDRIVE Ecosystem and MathWorks tool suite.

autodrive_rzr_aeb_mbd
- Platform: RZR Pro R 4 Ultimate
- Sensors: Camera + IMU + Encoders
- Environment: Handcrafted Dirt Road in Thick Vegetation
- Task: Autonomous Emergency Braking (AEB)
- Approach: Model-Based Design (MBD) using Simulink
autodrive_rzr_aeb_mbse
- Platform: RZR Pro R 4 Ultimate
- Sensors: Camera + IMU + Encoders
- Environment: Handcrafted Dirt Road in Thick Vegetation
- Task: Autonomous Emergency Braking (AEB)
- Approach: Model-Based Systems Engineering (MBSE) using System Composer
autodrive_husky_g2g_mbse
- Platform: Husky A200
- Sensors: GNSS + IMU
- Environment: Procedurally generated uneven terrain
- Task: Autonomous Go-to-Goal (G2G) Navigation
- Approach: Model-Based Systems Engineering (MBSE) using System Composer

Taxonomy & Nomenclature:

  • *_alg: Algorithm Development using MATLAB
  • *_mbd: Model-Based Design (MBD) using Simulink
  • *_mbse: Model-Based Systems Engineering (MBSE) using System Composer