Repository files navigation

FSSIM

FSSIM is a vehicle simulator dedicated for Formula Student Driverless Competition. It was developed for autonomous software testing purposes and not for gaming. A version of this simulator was used to predict lap time of gotthard at FSG 2018 trackdrive with 1% accuracy.

This simulator is developed and tested on Ubuntu 16.04 and ROS Kinetic and both are assumed to be already installed.

The more extensive tutorial can be found under Wiki

FSSIM is developed by Juraj Kabzan as part of our work at AMZ-Driverless.

How to Run It in your Workspace

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone this repository to an existing ROS Workspace initialized with catkin init
  3. Run cd src/fssim from the workspace.
  4. Run ./update_dependencies.sh, you will need to approve multiple packages to be installed
  5. Run catkin build
  6. Source the workspace
  7. After successful building, run the simulator with roslaunch fssim auto_fssim.launch. RVIZ window will start. NOTE: You might need to untick and tick FSSIM Track and RobotModel in RVIZ in order to load the STL files. NOTE: This [Wrn] [ModelDatabase.cc:339] Getting models from[http://gazebosim.org/models/]. This may take a few seconds. might take up to a minute when starting for the first time.
  8. The terminal will inform you what is happening. The loading time takes around 20 seconds. When Sending RES GO will show up in the terminal, you can start controlling the vehicle with /fssim/cmd topic.

Combine it with simple FSD skeleton Framework and drive a lap

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone the AMZ skeleton workspace.
  3. Run ./update_dependencies.sh -f from fsd_skeleton, you will need to approve multiple packages to be installed
  4. Compile with catkin build
  5. Source the workspace source fsd_environment.sh
  6. Run roslaunch fssim_interface fssim.launch
  7. Run roslaunch control_meta trackdrive.launch

or

  1. Run automated test. Execute FSD_ATS (this command is loaded when sourcing fsd_environment.sh). If you will want to see the visualization, run RViZ: roslaunch fssim_interface rviz.launch. NOTE: The car will keep driving until the simulation will time-out since no lap counter is implemented.

Features

  • This simulator is targeted for FSD competition, thus it contains some of the real-car safety features
    • RES (Remote Emergency Stop): The vehicle will not be able to be controlled if a /fssim/res_state/push_button = true is not sent. On the other side, if /fssim/res_state/emergency = true is send, the vehicle will stop immediately. If you start FSSIM with roslaunch fssim auto_fssim.launch or through fssim_interface this is done automatically.
    • Leaving Track: If the simulation is started with auto_fssim.launch, an automated RES person is launched. This means, if the vehicle exists the track with all four wheels, RES-emergency will be send and the simulation will exit itself
  • FSSIM does not simulate the RAW sensors! It uses a cone-sensor-model instead. This means a cone observations around the vehicle are simulated with numerous noise-models. The configuration file for this sensors can be found in fssim/fssim_description/cars/gotthard/config/sensors.yaml. Thanks to this simplification it is real-time capable
  • FSSIM does not use GAZEBO Physics Engine to simulate the vehicle. Instead, it uses a basic vehicle model which is discretized with Euler Forward discretization and overwrites the model pose. This feature allows the simulated model to match closely the real world car.
  • Automated Run of multiple scenarios with different configurations and save logs as well as report.
  • Lap-time counter

Known problems

  • The update rate of TF between wheels and main chassis is too low or too rough. This causes jumps of wheels at higher speeds in RViZ. This influences only the visualization and not the functionality.

Cite

  • If using this project for scientific publications, please cite this paper:

Juraj Kabzan, Miguel de la Iglesia Valls, Victor Reijgwart, Hubertus Franciscus Cornelis Hendrikx, Claas Ehmke, Manish Prajapat, Andreas Bühler, Nikhil Gosala, Mehak Gupta, Ramya Sivanesan, Ankit Dhall, Eugenio Chisari, Napat Karnchanachari, Sonja Brits, Manuel Dangel, Inkyu Sa, Renaud Dubé, Abel Gawel, Mark Pfeiffer, Alexander Liniger, John Lygeros, Roland Siegwart, "AMZ Driverless: The Full Autonomous Racing System", arXiv preprint arXiv:1905.05150

@misc{1905.05150,
Author = {Juraj Kabzan and Miguel de la Iglesia Valls and Victor Reijgwart and Hubertus Franciscus Cornelis Hendrikx and Claas Ehmke and Manish Prajapat and Andreas Bühler and Nikhil Gosala and Mehak Gupta and Ramya Sivanesan and Ankit Dhall and Eugenio Chisari and Napat Karnchanachari and Sonja Brits and Manuel Dangel and Inkyu Sa and Renaud Dubé and Abel Gawel and Mark Pfeiffer and Alexander Liniger and John Lygeros and Roland Siegwart},
Title = {AMZ Driverless: The Full Autonomous Racing System},
Year = {2019},
Eprint = {arXiv:1905.05150},
}

Example

A note: this is a public copy of a private version. The public version might have some internal functionality removed. FSSIM was developed by

About

Formula Student Simulator dedicated for FSD competition

Resources

Stars

273 stars

Watchers

32 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all \u003cpre\u003e\u003ccode\u003e blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks"); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

FSSIM

FSSIM is a vehicle simulator dedicated for Formula Student Driverless Competition. It was developed for autonomous software testing purposes and not for gaming. A version of this simulator was used to predict lap time of gotthard at FSG 2018 trackdrive with 1% accuracy.

This simulator is developed and tested on Ubuntu 16.04 and ROS Kinetic and both are assumed to be already installed.

The more extensive tutorial can be found under Wiki

FSSIM is developed by Juraj Kabzan as part of our work at AMZ-Driverless.

How to Run It in your Workspace

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone this repository to an existing ROS Workspace initialized with catkin init
  3. Run cd src/fssim from the workspace.
  4. Run ./update_dependencies.sh, you will need to approve multiple packages to be installed
  5. Run catkin build
  6. Source the workspace
  7. After successful building, run the simulator with roslaunch fssim auto_fssim.launch. RVIZ window will start. NOTE: You might need to untick and tick FSSIM Track and RobotModel in RVIZ in order to load the STL files. NOTE: This [Wrn] [ModelDatabase.cc:339] Getting models from[http://gazebosim.org/models/]. This may take a few seconds. might take up to a minute when starting for the first time.
  8. The terminal will inform you what is happening. The loading time takes around 20 seconds. When Sending RES GO will show up in the terminal, you can start controlling the vehicle with /fssim/cmd topic.

Combine it with simple FSD skeleton Framework and drive a lap

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone the AMZ skeleton workspace.
  3. Run ./update_dependencies.sh -f from fsd_skeleton, you will need to approve multiple packages to be installed
  4. Compile with catkin build
  5. Source the workspace source fsd_environment.sh
  6. Run roslaunch fssim_interface fssim.launch
  7. Run roslaunch control_meta trackdrive.launch

or

  1. Run automated test. Execute FSD_ATS (this command is loaded when sourcing fsd_environment.sh). If you will want to see the visualization, run RViZ: roslaunch fssim_interface rviz.launch. NOTE: The car will keep driving until the simulation will time-out since no lap counter is implemented.

Features

  • This simulator is targeted for FSD competition, thus it contains some of the real-car safety features
    • RES (Remote Emergency Stop): The vehicle will not be able to be controlled if a /fssim/res_state/push_button = true is not sent. On the other side, if /fssim/res_state/emergency = true is send, the vehicle will stop immediately. If you start FSSIM with roslaunch fssim auto_fssim.launch or through fssim_interface this is done automatically.
    • Leaving Track: If the simulation is started with auto_fssim.launch, an automated RES person is launched. This means, if the vehicle exists the track with all four wheels, RES-emergency will be send and the simulation will exit itself
  • FSSIM does not simulate the RAW sensors! It uses a cone-sensor-model instead. This means a cone observations around the vehicle are simulated with numerous noise-models. The configuration file for this sensors can be found in fssim/fssim_description/cars/gotthard/config/sensors.yaml. Thanks to this simplification it is real-time capable
  • FSSIM does not use GAZEBO Physics Engine to simulate the vehicle. Instead, it uses a basic vehicle model which is discretized with Euler Forward discretization and overwrites the model pose. This feature allows the simulated model to match closely the real world car.
  • Automated Run of multiple scenarios with different configurations and save logs as well as report.
  • Lap-time counter

Known problems

  • The update rate of TF between wheels and main chassis is too low or too rough. This causes jumps of wheels at higher speeds in RViZ. This influences only the visualization and not the functionality.

Cite

  • If using this project for scientific publications, please cite this paper:

Juraj Kabzan, Miguel de la Iglesia Valls, Victor Reijgwart, Hubertus Franciscus Cornelis Hendrikx, Claas Ehmke, Manish Prajapat, Andreas Bühler, Nikhil Gosala, Mehak Gupta, Ramya Sivanesan, Ankit Dhall, Eugenio Chisari, Napat Karnchanachari, Sonja Brits, Manuel Dangel, Inkyu Sa, Renaud Dubé, Abel Gawel, Mark Pfeiffer, Alexander Liniger, John Lygeros, Roland Siegwart, "AMZ Driverless: The Full Autonomous Racing System", arXiv preprint arXiv:1905.05150

@misc{1905.05150,
Author = {Juraj Kabzan and Miguel de la Iglesia Valls and Victor Reijgwart and Hubertus Franciscus Cornelis Hendrikx and Claas Ehmke and Manish Prajapat and Andreas Bühler and Nikhil Gosala and Mehak Gupta and Ramya Sivanesan and Ankit Dhall and Eugenio Chisari and Napat Karnchanachari and Sonja Brits and Manuel Dangel and Inkyu Sa and Renaud Dubé and Abel Gawel and Mark Pfeiffer and Alexander Liniger and John Lygeros and Roland Siegwart},
Title = {AMZ Driverless: The Full Autonomous Racing System},
Year = {2019},
Eprint = {arXiv:1905.05150},
}

Example

A note: this is a public copy of a private version. The public version might have some internal functionality removed. FSSIM was developed by

About

Formula Student Simulator dedicated for FSD competition

Resources

Stars

273 stars

Watchers

32 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FSSIM

FSSIM is a vehicle simulator dedicated for Formula Student Driverless Competition. It was developed for autonomous software testing purposes and not for gaming. A version of this simulator was used to predict lap time of gotthard at FSG 2018 trackdrive with 1% accuracy.

This simulator is developed and tested on Ubuntu 16.04 and ROS Kinetic and both are assumed to be already installed.

The more extensive tutorial can be found under Wiki

FSSIM is developed by Juraj Kabzan as part of our work at AMZ-Driverless.

How to Run It in your Workspace

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone this repository to an existing ROS Workspace initialized with catkin init
  3. Run cd src/fssim from the workspace.
  4. Run ./update_dependencies.sh, you will need to approve multiple packages to be installed
  5. Run catkin build
  6. Source the workspace
  7. After successful building, run the simulator with roslaunch fssim auto_fssim.launch. RVIZ window will start. NOTE: You might need to untick and tick FSSIM Track and RobotModel in RVIZ in order to load the STL files. NOTE: This [Wrn] [ModelDatabase.cc:339] Getting models from[http://gazebosim.org/models/]. This may take a few seconds. might take up to a minute when starting for the first time.
  8. The terminal will inform you what is happening. The loading time takes around 20 seconds. When Sending RES GO will show up in the terminal, you can start controlling the vehicle with /fssim/cmd topic.

Combine it with simple FSD skeleton Framework and drive a lap

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone the AMZ skeleton workspace.
  3. Run ./update_dependencies.sh -f from fsd_skeleton, you will need to approve multiple packages to be installed
  4. Compile with catkin build
  5. Source the workspace source fsd_environment.sh
  6. Run roslaunch fssim_interface fssim.launch
  7. Run roslaunch control_meta trackdrive.launch

or

  1. Run automated test. Execute FSD_ATS (this command is loaded when sourcing fsd_environment.sh). If you will want to see the visualization, run RViZ: roslaunch fssim_interface rviz.launch. NOTE: The car will keep driving until the simulation will time-out since no lap counter is implemented.

Features

  • This simulator is targeted for FSD competition, thus it contains some of the real-car safety features
    • RES (Remote Emergency Stop): The vehicle will not be able to be controlled if a /fssim/res_state/push_button = true is not sent. On the other side, if /fssim/res_state/emergency = true is send, the vehicle will stop immediately. If you start FSSIM with roslaunch fssim auto_fssim.launch or through fssim_interface this is done automatically.
    • Leaving Track: If the simulation is started with auto_fssim.launch, an automated RES person is launched. This means, if the vehicle exists the track with all four wheels, RES-emergency will be send and the simulation will exit itself
  • FSSIM does not simulate the RAW sensors! It uses a cone-sensor-model instead. This means a cone observations around the vehicle are simulated with numerous noise-models. The configuration file for this sensors can be found in fssim/fssim_description/cars/gotthard/config/sensors.yaml. Thanks to this simplification it is real-time capable
  • FSSIM does not use GAZEBO Physics Engine to simulate the vehicle. Instead, it uses a basic vehicle model which is discretized with Euler Forward discretization and overwrites the model pose. This feature allows the simulated model to match closely the real world car.
  • Automated Run of multiple scenarios with different configurations and save logs as well as report.
  • Lap-time counter

Known problems

  • The update rate of TF between wheels and main chassis is too low or too rough. This causes jumps of wheels at higher speeds in RViZ. This influences only the visualization and not the functionality.

Cite

  • If using this project for scientific publications, please cite this paper:

Juraj Kabzan, Miguel de la Iglesia Valls, Victor Reijgwart, Hubertus Franciscus Cornelis Hendrikx, Claas Ehmke, Manish Prajapat, Andreas Bühler, Nikhil Gosala, Mehak Gupta, Ramya Sivanesan, Ankit Dhall, Eugenio Chisari, Napat Karnchanachari, Sonja Brits, Manuel Dangel, Inkyu Sa, Renaud Dubé, Abel Gawel, Mark Pfeiffer, Alexander Liniger, John Lygeros, Roland Siegwart, "AMZ Driverless: The Full Autonomous Racing System", arXiv preprint arXiv:1905.05150

@misc{1905.05150,
Author = {Juraj Kabzan and Miguel de la Iglesia Valls and Victor Reijgwart and Hubertus Franciscus Cornelis Hendrikx and Claas Ehmke and Manish Prajapat and Andreas Bühler and Nikhil Gosala and Mehak Gupta and Ramya Sivanesan and Ankit Dhall and Eugenio Chisari and Napat Karnchanachari and Sonja Brits and Manuel Dangel and Inkyu Sa and Renaud Dubé and Abel Gawel and Mark Pfeiffer and Alexander Liniger and John Lygeros and Roland Siegwart},
Title = {AMZ Driverless: The Full Autonomous Racing System},
Year = {2019},
Eprint = {arXiv:1905.05150},
}

Example

A note: this is a public copy of a private version. The public version might have some internal functionality removed. FSSIM was developed by

About

Formula Student Simulator dedicated for FSD competition

Resources

Stars

273 stars

Watchers

32 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length \u003e 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FSSIM

FSSIM is a vehicle simulator dedicated for Formula Student Driverless Competition. It was developed for autonomous software testing purposes and not for gaming. A version of this simulator was used to predict lap time of gotthard at FSG 2018 trackdrive with 1% accuracy.

This simulator is developed and tested on Ubuntu 16.04 and ROS Kinetic and both are assumed to be already installed.

The more extensive tutorial can be found under Wiki

FSSIM is developed by Juraj Kabzan as part of our work at AMZ-Driverless.

How to Run It in your Workspace

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone this repository to an existing ROS Workspace initialized with catkin init
  3. Run cd src/fssim from the workspace.
  4. Run ./update_dependencies.sh, you will need to approve multiple packages to be installed
  5. Run catkin build
  6. Source the workspace
  7. After successful building, run the simulator with roslaunch fssim auto_fssim.launch. RVIZ window will start. NOTE: You might need to untick and tick FSSIM Track and RobotModel in RVIZ in order to load the STL files. NOTE: This [Wrn] [ModelDatabase.cc:339] Getting models from[http://gazebosim.org/models/]. This may take a few seconds. might take up to a minute when starting for the first time.
  8. The terminal will inform you what is happening. The loading time takes around 20 seconds. When Sending RES GO will show up in the terminal, you can start controlling the vehicle with /fssim/cmd topic.

Combine it with simple FSD skeleton Framework and drive a lap

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone the AMZ skeleton workspace.
  3. Run ./update_dependencies.sh -f from fsd_skeleton, you will need to approve multiple packages to be installed
  4. Compile with catkin build
  5. Source the workspace source fsd_environment.sh
  6. Run roslaunch fssim_interface fssim.launch
  7. Run roslaunch control_meta trackdrive.launch

or

  1. Run automated test. Execute FSD_ATS (this command is loaded when sourcing fsd_environment.sh). If you will want to see the visualization, run RViZ: roslaunch fssim_interface rviz.launch. NOTE: The car will keep driving until the simulation will time-out since no lap counter is implemented.

Features

  • This simulator is targeted for FSD competition, thus it contains some of the real-car safety features
    • RES (Remote Emergency Stop): The vehicle will not be able to be controlled if a /fssim/res_state/push_button = true is not sent. On the other side, if /fssim/res_state/emergency = true is send, the vehicle will stop immediately. If you start FSSIM with roslaunch fssim auto_fssim.launch or through fssim_interface this is done automatically.
    • Leaving Track: If the simulation is started with auto_fssim.launch, an automated RES person is launched. This means, if the vehicle exists the track with all four wheels, RES-emergency will be send and the simulation will exit itself
  • FSSIM does not simulate the RAW sensors! It uses a cone-sensor-model instead. This means a cone observations around the vehicle are simulated with numerous noise-models. The configuration file for this sensors can be found in fssim/fssim_description/cars/gotthard/config/sensors.yaml. Thanks to this simplification it is real-time capable
  • FSSIM does not use GAZEBO Physics Engine to simulate the vehicle. Instead, it uses a basic vehicle model which is discretized with Euler Forward discretization and overwrites the model pose. This feature allows the simulated model to match closely the real world car.
  • Automated Run of multiple scenarios with different configurations and save logs as well as report.
  • Lap-time counter

Known problems

  • The update rate of TF between wheels and main chassis is too low or too rough. This causes jumps of wheels at higher speeds in RViZ. This influences only the visualization and not the functionality.

Cite

  • If using this project for scientific publications, please cite this paper:

Juraj Kabzan, Miguel de la Iglesia Valls, Victor Reijgwart, Hubertus Franciscus Cornelis Hendrikx, Claas Ehmke, Manish Prajapat, Andreas Bühler, Nikhil Gosala, Mehak Gupta, Ramya Sivanesan, Ankit Dhall, Eugenio Chisari, Napat Karnchanachari, Sonja Brits, Manuel Dangel, Inkyu Sa, Renaud Dubé, Abel Gawel, Mark Pfeiffer, Alexander Liniger, John Lygeros, Roland Siegwart, "AMZ Driverless: The Full Autonomous Racing System", arXiv preprint arXiv:1905.05150

@misc{1905.05150,
Author = {Juraj Kabzan and Miguel de la Iglesia Valls and Victor Reijgwart and Hubertus Franciscus Cornelis Hendrikx and Claas Ehmke and Manish Prajapat and Andreas Bühler and Nikhil Gosala and Mehak Gupta and Ramya Sivanesan and Ankit Dhall and Eugenio Chisari and Napat Karnchanachari and Sonja Brits and Manuel Dangel and Inkyu Sa and Renaud Dubé and Abel Gawel and Mark Pfeiffer and Alexander Liniger and John Lygeros and Roland Siegwart},
Title = {AMZ Driverless: The Full Autonomous Racing System},
Year = {2019},
Eprint = {arXiv:1905.05150},
}

Example

A note: this is a public copy of a private version. The public version might have some internal functionality removed. FSSIM was developed by

About

Formula Student Simulator dedicated for FSD competition

Resources

Stars

273 stars

Watchers

32 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

FSSIM

FSSIM is a vehicle simulator dedicated for Formula Student Driverless Competition. It was developed for autonomous software testing purposes and not for gaming. A version of this simulator was used to predict lap time of gotthard at FSG 2018 trackdrive with 1% accuracy.

This simulator is developed and tested on Ubuntu 16.04 and ROS Kinetic and both are assumed to be already installed.

The more extensive tutorial can be found under Wiki

FSSIM is developed by Juraj Kabzan as part of our work at AMZ-Driverless.

How to Run It in your Workspace

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone this repository to an existing ROS Workspace initialized with catkin init
  3. Run cd src/fssim from the workspace.
  4. Run ./update_dependencies.sh, you will need to approve multiple packages to be installed
  5. Run catkin build
  6. Source the workspace
  7. After successful building, run the simulator with roslaunch fssim auto_fssim.launch. RVIZ window will start. NOTE: You might need to untick and tick FSSIM Track and RobotModel in RVIZ in order to load the STL files. NOTE: This [Wrn] [ModelDatabase.cc:339] Getting models from[http://gazebosim.org/models/]. This may take a few seconds. might take up to a minute when starting for the first time.
  8. The terminal will inform you what is happening. The loading time takes around 20 seconds. When Sending RES GO will show up in the terminal, you can start controlling the vehicle with /fssim/cmd topic.

Combine it with simple FSD skeleton Framework and drive a lap

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone the AMZ skeleton workspace.
  3. Run ./update_dependencies.sh -f from fsd_skeleton, you will need to approve multiple packages to be installed
  4. Compile with catkin build
  5. Source the workspace source fsd_environment.sh
  6. Run roslaunch fssim_interface fssim.launch
  7. Run roslaunch control_meta trackdrive.launch

or

  1. Run automated test. Execute FSD_ATS (this command is loaded when sourcing fsd_environment.sh). If you will want to see the visualization, run RViZ: roslaunch fssim_interface rviz.launch. NOTE: The car will keep driving until the simulation will time-out since no lap counter is implemented.

Features

  • This simulator is targeted for FSD competition, thus it contains some of the real-car safety features
    • RES (Remote Emergency Stop): The vehicle will not be able to be controlled if a /fssim/res_state/push_button = true is not sent. On the other side, if /fssim/res_state/emergency = true is send, the vehicle will stop immediately. If you start FSSIM with roslaunch fssim auto_fssim.launch or through fssim_interface this is done automatically.
    • Leaving Track: If the simulation is started with auto_fssim.launch, an automated RES person is launched. This means, if the vehicle exists the track with all four wheels, RES-emergency will be send and the simulation will exit itself
  • FSSIM does not simulate the RAW sensors! It uses a cone-sensor-model instead. This means a cone observations around the vehicle are simulated with numerous noise-models. The configuration file for this sensors can be found in fssim/fssim_description/cars/gotthard/config/sensors.yaml. Thanks to this simplification it is real-time capable
  • FSSIM does not use GAZEBO Physics Engine to simulate the vehicle. Instead, it uses a basic vehicle model which is discretized with Euler Forward discretization and overwrites the model pose. This feature allows the simulated model to match closely the real world car.
  • Automated Run of multiple scenarios with different configurations and save logs as well as report.
  • Lap-time counter

Known problems

  • The update rate of TF between wheels and main chassis is too low or too rough. This causes jumps of wheels at higher speeds in RViZ. This influences only the visualization and not the functionality.

Cite

  • If using this project for scientific publications, please cite this paper:

Juraj Kabzan, Miguel de la Iglesia Valls, Victor Reijgwart, Hubertus Franciscus Cornelis Hendrikx, Claas Ehmke, Manish Prajapat, Andreas Bühler, Nikhil Gosala, Mehak Gupta, Ramya Sivanesan, Ankit Dhall, Eugenio Chisari, Napat Karnchanachari, Sonja Brits, Manuel Dangel, Inkyu Sa, Renaud Dubé, Abel Gawel, Mark Pfeiffer, Alexander Liniger, John Lygeros, Roland Siegwart, "AMZ Driverless: The Full Autonomous Racing System", arXiv preprint arXiv:1905.05150

@misc{1905.05150,
Author = {Juraj Kabzan and Miguel de la Iglesia Valls and Victor Reijgwart and Hubertus Franciscus Cornelis Hendrikx and Claas Ehmke and Manish Prajapat and Andreas Bühler and Nikhil Gosala and Mehak Gupta and Ramya Sivanesan and Ankit Dhall and Eugenio Chisari and Napat Karnchanachari and Sonja Brits and Manuel Dangel and Inkyu Sa and Renaud Dubé and Abel Gawel and Mark Pfeiffer and Alexander Liniger and John Lygeros and Roland Siegwart},
Title = {AMZ Driverless: The Full Autonomous Racing System},
Year = {2019},
Eprint = {arXiv:1905.05150},
}

Example

A note: this is a public copy of a private version. The public version might have some internal functionality removed. FSSIM was developed by

About

Formula Student Simulator dedicated for FSD competition

Resources

Stars

273 stars

Watchers

32 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FSSIM

FSSIM is a vehicle simulator dedicated for Formula Student Driverless Competition. It was developed for autonomous software testing purposes and not for gaming. A version of this simulator was used to predict lap time of gotthard at FSG 2018 trackdrive with 1% accuracy.

This simulator is developed and tested on Ubuntu 16.04 and ROS Kinetic and both are assumed to be already installed.

The more extensive tutorial can be found under Wiki

FSSIM is developed by Juraj Kabzan as part of our work at AMZ-Driverless.

How to Run It in your Workspace

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone this repository to an existing ROS Workspace initialized with catkin init
  3. Run cd src/fssim from the workspace.
  4. Run ./update_dependencies.sh, you will need to approve multiple packages to be installed
  5. Run catkin build
  6. Source the workspace
  7. After successful building, run the simulator with roslaunch fssim auto_fssim.launch. RVIZ window will start. NOTE: You might need to untick and tick FSSIM Track and RobotModel in RVIZ in order to load the STL files. NOTE: This [Wrn] [ModelDatabase.cc:339] Getting models from[http://gazebosim.org/models/]. This may take a few seconds. might take up to a minute when starting for the first time.
  8. The terminal will inform you what is happening. The loading time takes around 20 seconds. When Sending RES GO will show up in the terminal, you can start controlling the vehicle with /fssim/cmd topic.

Combine it with simple FSD skeleton Framework and drive a lap

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone the AMZ skeleton workspace.
  3. Run ./update_dependencies.sh -f from fsd_skeleton, you will need to approve multiple packages to be installed
  4. Compile with catkin build
  5. Source the workspace source fsd_environment.sh
  6. Run roslaunch fssim_interface fssim.launch
  7. Run roslaunch control_meta trackdrive.launch

or

  1. Run automated test. Execute FSD_ATS (this command is loaded when sourcing fsd_environment.sh). If you will want to see the visualization, run RViZ: roslaunch fssim_interface rviz.launch. NOTE: The car will keep driving until the simulation will time-out since no lap counter is implemented.

Features

  • This simulator is targeted for FSD competition, thus it contains some of the real-car safety features
    • RES (Remote Emergency Stop): The vehicle will not be able to be controlled if a /fssim/res_state/push_button = true is not sent. On the other side, if /fssim/res_state/emergency = true is send, the vehicle will stop immediately. If you start FSSIM with roslaunch fssim auto_fssim.launch or through fssim_interface this is done automatically.
    • Leaving Track: If the simulation is started with auto_fssim.launch, an automated RES person is launched. This means, if the vehicle exists the track with all four wheels, RES-emergency will be send and the simulation will exit itself
  • FSSIM does not simulate the RAW sensors! It uses a cone-sensor-model instead. This means a cone observations around the vehicle are simulated with numerous noise-models. The configuration file for this sensors can be found in fssim/fssim_description/cars/gotthard/config/sensors.yaml. Thanks to this simplification it is real-time capable
  • FSSIM does not use GAZEBO Physics Engine to simulate the vehicle. Instead, it uses a basic vehicle model which is discretized with Euler Forward discretization and overwrites the model pose. This feature allows the simulated model to match closely the real world car.
  • Automated Run of multiple scenarios with different configurations and save logs as well as report.
  • Lap-time counter

Known problems

  • The update rate of TF between wheels and main chassis is too low or too rough. This causes jumps of wheels at higher speeds in RViZ. This influences only the visualization and not the functionality.

Cite

  • If using this project for scientific publications, please cite this paper:

Juraj Kabzan, Miguel de la Iglesia Valls, Victor Reijgwart, Hubertus Franciscus Cornelis Hendrikx, Claas Ehmke, Manish Prajapat, Andreas Bühler, Nikhil Gosala, Mehak Gupta, Ramya Sivanesan, Ankit Dhall, Eugenio Chisari, Napat Karnchanachari, Sonja Brits, Manuel Dangel, Inkyu Sa, Renaud Dubé, Abel Gawel, Mark Pfeiffer, Alexander Liniger, John Lygeros, Roland Siegwart, "AMZ Driverless: The Full Autonomous Racing System", arXiv preprint arXiv:1905.05150

@misc{1905.05150,
Author = {Juraj Kabzan and Miguel de la Iglesia Valls and Victor Reijgwart and Hubertus Franciscus Cornelis Hendrikx and Claas Ehmke and Manish Prajapat and Andreas Bühler and Nikhil Gosala and Mehak Gupta and Ramya Sivanesan and Ankit Dhall and Eugenio Chisari and Napat Karnchanachari and Sonja Brits and Manuel Dangel and Inkyu Sa and Renaud Dubé and Abel Gawel and Mark Pfeiffer and Alexander Liniger and John Lygeros and Roland Siegwart},
Title = {AMZ Driverless: The Full Autonomous Racing System},
Year = {2019},
Eprint = {arXiv:1905.05150},
}

Example

A note: this is a public copy of a private version. The public version might have some internal functionality removed. FSSIM was developed by

About

Formula Student Simulator dedicated for FSD competition

Resources

Stars

273 stars

Watchers

32 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

FSSIM

FSSIM is a vehicle simulator dedicated for Formula Student Driverless Competition. It was developed for autonomous software testing purposes and not for gaming. A version of this simulator was used to predict lap time of gotthard at FSG 2018 trackdrive with 1% accuracy.

This simulator is developed and tested on Ubuntu 16.04 and ROS Kinetic and both are assumed to be already installed.

The more extensive tutorial can be found under Wiki

FSSIM is developed by Juraj Kabzan as part of our work at AMZ-Driverless.

How to Run It in your Workspace

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone this repository to an existing ROS Workspace initialized with catkin init
  3. Run cd src/fssim from the workspace.
  4. Run ./update_dependencies.sh, you will need to approve multiple packages to be installed
  5. Run catkin build
  6. Source the workspace
  7. After successful building, run the simulator with roslaunch fssim auto_fssim.launch. RVIZ window will start. NOTE: You might need to untick and tick FSSIM Track and RobotModel in RVIZ in order to load the STL files. NOTE: This [Wrn] [ModelDatabase.cc:339] Getting models from[http://gazebosim.org/models/]. This may take a few seconds. might take up to a minute when starting for the first time.
  8. The terminal will inform you what is happening. The loading time takes around 20 seconds. When Sending RES GO will show up in the terminal, you can start controlling the vehicle with /fssim/cmd topic.

Combine it with simple FSD skeleton Framework and drive a lap

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone the AMZ skeleton workspace.
  3. Run ./update_dependencies.sh -f from fsd_skeleton, you will need to approve multiple packages to be installed
  4. Compile with catkin build
  5. Source the workspace source fsd_environment.sh
  6. Run roslaunch fssim_interface fssim.launch
  7. Run roslaunch control_meta trackdrive.launch

or

  1. Run automated test. Execute FSD_ATS (this command is loaded when sourcing fsd_environment.sh). If you will want to see the visualization, run RViZ: roslaunch fssim_interface rviz.launch. NOTE: The car will keep driving until the simulation will time-out since no lap counter is implemented.

Features

  • This simulator is targeted for FSD competition, thus it contains some of the real-car safety features
    • RES (Remote Emergency Stop): The vehicle will not be able to be controlled if a /fssim/res_state/push_button = true is not sent. On the other side, if /fssim/res_state/emergency = true is send, the vehicle will stop immediately. If you start FSSIM with roslaunch fssim auto_fssim.launch or through fssim_interface this is done automatically.
    • Leaving Track: If the simulation is started with auto_fssim.launch, an automated RES person is launched. This means, if the vehicle exists the track with all four wheels, RES-emergency will be send and the simulation will exit itself
  • FSSIM does not simulate the RAW sensors! It uses a cone-sensor-model instead. This means a cone observations around the vehicle are simulated with numerous noise-models. The configuration file for this sensors can be found in fssim/fssim_description/cars/gotthard/config/sensors.yaml. Thanks to this simplification it is real-time capable
  • FSSIM does not use GAZEBO Physics Engine to simulate the vehicle. Instead, it uses a basic vehicle model which is discretized with Euler Forward discretization and overwrites the model pose. This feature allows the simulated model to match closely the real world car.
  • Automated Run of multiple scenarios with different configurations and save logs as well as report.
  • Lap-time counter

Known problems

  • The update rate of TF between wheels and main chassis is too low or too rough. This causes jumps of wheels at higher speeds in RViZ. This influences only the visualization and not the functionality.

Cite

  • If using this project for scientific publications, please cite this paper:

Juraj Kabzan, Miguel de la Iglesia Valls, Victor Reijgwart, Hubertus Franciscus Cornelis Hendrikx, Claas Ehmke, Manish Prajapat, Andreas Bühler, Nikhil Gosala, Mehak Gupta, Ramya Sivanesan, Ankit Dhall, Eugenio Chisari, Napat Karnchanachari, Sonja Brits, Manuel Dangel, Inkyu Sa, Renaud Dubé, Abel Gawel, Mark Pfeiffer, Alexander Liniger, John Lygeros, Roland Siegwart, "AMZ Driverless: The Full Autonomous Racing System", arXiv preprint arXiv:1905.05150

@misc{1905.05150,
Author = {Juraj Kabzan and Miguel de la Iglesia Valls and Victor Reijgwart and Hubertus Franciscus Cornelis Hendrikx and Claas Ehmke and Manish Prajapat and Andreas Bühler and Nikhil Gosala and Mehak Gupta and Ramya Sivanesan and Ankit Dhall and Eugenio Chisari and Napat Karnchanachari and Sonja Brits and Manuel Dangel and Inkyu Sa and Renaud Dubé and Abel Gawel and Mark Pfeiffer and Alexander Liniger and John Lygeros and Roland Siegwart},
Title = {AMZ Driverless: The Full Autonomous Racing System},
Year = {2019},
Eprint = {arXiv:1905.05150},
}

Example

A note: this is a public copy of a private version. The public version might have some internal functionality removed. FSSIM was developed by

About

Formula Student Simulator dedicated for FSD competition

Resources

Stars

273 stars

Watchers

32 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

FSSIM

FSSIM is a vehicle simulator dedicated for Formula Student Driverless Competition. It was developed for autonomous software testing purposes and not for gaming. A version of this simulator was used to predict lap time of gotthard at FSG 2018 trackdrive with 1% accuracy.

This simulator is developed and tested on Ubuntu 16.04 and ROS Kinetic and both are assumed to be already installed.

The more extensive tutorial can be found under Wiki

FSSIM is developed by Juraj Kabzan as part of our work at AMZ-Driverless.

How to Run It in your Workspace

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone this repository to an existing ROS Workspace initialized with catkin init
  3. Run cd src/fssim from the workspace.
  4. Run ./update_dependencies.sh, you will need to approve multiple packages to be installed
  5. Run catkin build
  6. Source the workspace
  7. After successful building, run the simulator with roslaunch fssim auto_fssim.launch. RVIZ window will start. NOTE: You might need to untick and tick FSSIM Track and RobotModel in RVIZ in order to load the STL files. NOTE: This [Wrn] [ModelDatabase.cc:339] Getting models from[http://gazebosim.org/models/]. This may take a few seconds. might take up to a minute when starting for the first time.
  8. The terminal will inform you what is happening. The loading time takes around 20 seconds. When Sending RES GO will show up in the terminal, you can start controlling the vehicle with /fssim/cmd topic.

Combine it with simple FSD skeleton Framework and drive a lap

  1. Install sudo apt install ros-kinetic-desktop-full and sudo apt install python-catkin-tools
  2. Clone the AMZ skeleton workspace.
  3. Run ./update_dependencies.sh -f from fsd_skeleton, you will need to approve multiple packages to be installed
  4. Compile with catkin build
  5. Source the workspace source fsd_environment.sh
  6. Run roslaunch fssim_interface fssim.launch
  7. Run roslaunch control_meta trackdrive.launch

or

  1. Run automated test. Execute FSD_ATS (this command is loaded when sourcing fsd_environment.sh). If you will want to see the visualization, run RViZ: roslaunch fssim_interface rviz.launch. NOTE: The car will keep driving until the simulation will time-out since no lap counter is implemented.

Features

  • This simulator is targeted for FSD competition, thus it contains some of the real-car safety features
    • RES (Remote Emergency Stop): The vehicle will not be able to be controlled if a /fssim/res_state/push_button = true is not sent. On the other side, if /fssim/res_state/emergency = true is send, the vehicle will stop immediately. If you start FSSIM with roslaunch fssim auto_fssim.launch or through fssim_interface this is done automatically.
    • Leaving Track: If the simulation is started with auto_fssim.launch, an automated RES person is launched. This means, if the vehicle exists the track with all four wheels, RES-emergency will be send and the simulation will exit itself
  • FSSIM does not simulate the RAW sensors! It uses a cone-sensor-model instead. This means a cone observations around the vehicle are simulated with numerous noise-models. The configuration file for this sensors can be found in fssim/fssim_description/cars/gotthard/config/sensors.yaml. Thanks to this simplification it is real-time capable
  • FSSIM does not use GAZEBO Physics Engine to simulate the vehicle. Instead, it uses a basic vehicle model which is discretized with Euler Forward discretization and overwrites the model pose. This feature allows the simulated model to match closely the real world car.
  • Automated Run of multiple scenarios with different configurations and save logs as well as report.
  • Lap-time counter

Known problems

  • The update rate of TF between wheels and main chassis is too low or too rough. This causes jumps of wheels at higher speeds in RViZ. This influences only the visualization and not the functionality.

Cite

  • If using this project for scientific publications, please cite this paper:

Juraj Kabzan, Miguel de la Iglesia Valls, Victor Reijgwart, Hubertus Franciscus Cornelis Hendrikx, Claas Ehmke, Manish Prajapat, Andreas Bühler, Nikhil Gosala, Mehak Gupta, Ramya Sivanesan, Ankit Dhall, Eugenio Chisari, Napat Karnchanachari, Sonja Brits, Manuel Dangel, Inkyu Sa, Renaud Dubé, Abel Gawel, Mark Pfeiffer, Alexander Liniger, John Lygeros, Roland Siegwart, "AMZ Driverless: The Full Autonomous Racing System", arXiv preprint arXiv:1905.05150

@misc{1905.05150,
Author = {Juraj Kabzan and Miguel de la Iglesia Valls and Victor Reijgwart and Hubertus Franciscus Cornelis Hendrikx and Claas Ehmke and Manish Prajapat and Andreas Bühler and Nikhil Gosala and Mehak Gupta and Ramya Sivanesan and Ankit Dhall and Eugenio Chisari and Napat Karnchanachari and Sonja Brits and Manuel Dangel and Inkyu Sa and Renaud Dubé and Abel Gawel and Mark Pfeiffer and Alexander Liniger and John Lygeros and Roland Siegwart},
Title = {AMZ Driverless: The Full Autonomous Racing System},
Year = {2019},
Eprint = {arXiv:1905.05150},
}

Example

A note: this is a public copy of a private version. The public version might have some internal functionality removed. FSSIM was developed by

About

Formula Student Simulator dedicated for FSD competition

Resources

Stars

273 stars

Watchers

32 watching

Forks

Releases

Packages

Used by

Contributors

Languages