Giter Club home page Giter Club logo

robocar's Introduction

RoboCar

RoboCar is a modular, low footprint and easy to deploy autonomous driving software based on ROS2.

Software and Hardware Overview

Get Started

Prerequisites

The provided Dockerfile can be used to get a development environment easily.
Use docker build -f docker/Dockerfile -t ubix/robocar . and then run with bash docker/run.sh.
Please note that some specific adjustments might be needed for deployment in a vehicle.

Configuration

Internal RoboCar nodes (components) are configured using a custom robocar.json file. Below is an example configuration:

{
  "cycle": {
    "global": {
      "param_a": 50,
      "param_b": "b"
    },
    "module_a": {
      "enable": true,
      "component_a": {
        "enable": true,
        "param_a": 10,
        "param_c": 0.25,
        "other_params": "..."
      }
    },
    "module_b": {
      "enable": false,
      "component_b": {
        "other_params": "..."
      },
      "component_c": {
        "other_params": "..."
      }
    }
  }
}

The configuration file is structured around modules containing components (ROS2 nodes). A component section contains parameters and an optional "enable" option. The component section name must match a registered RoboCar component, see src/modules/startup/src/main.cc for how to register components. A disabled module will be skipped during initialization, thus disabling all contained components irrespective of their individual settings. Global parameters are defined in the "global" section and can be overriden in a component section, see "param_a" in the above example.

You should rebuild for changes in the configuration file to take effect or change args="$(find-pkg-share startup)/config/robocar.json" in robocar.launch to a custom path.

External ROS2 nodes should be added and configured using robocar.launch.

Build

  • Debug : bash scripts/build.sh debug.
  • Release : bash scripts/build.sh release.

Run

First, source using source install/setup.sh.
RoboCar can be run using ROS2 launch : ros2 launch startup robocar.launch.

Citation

If you find RoboCar useful or relevant for your research, please cite our paper:

@article{testouri2024robocar,
  title={RoboCar: A Rapidly Deployable Open-Source Platform for Autonomous Driving Research},
  author={Mehdi Testouri and Gamal Elghazaly and Raphael Frank},
  year={2024},
  eprint={2405.03572},
  archivePrefix={arXiv},
  primaryClass={cs.RO}
}

License

See NOTICE and LICENSE.

robocar's People

Contributors

sntubix avatar

Stargazers

Hammad Ali Khan avatar  avatar lgruda avatar  avatar Dmitry Senushkin avatar  avatar  avatar Davut Can Akbaş avatar Quentin Quadrat avatar Simon Kenneth avatar zhouzuhong avatar CN_13 avatar Adithya Balaji avatar sxwebdev avatar Nueber avatar Wenhao Ding avatar  avatar Siyuan Wu avatar Shaza Ismail Kaoud Abdelaziz avatar Feiyu Xiao avatar Kashyap Chitta avatar Ahmed Hanie avatar Ihab S. Mohamed avatar shiroyasha avatar Mahmoud Ali avatar Shiva Hanifi avatar  avatar  avatar Georg Jäger avatar Raphael Frank avatar  avatar Sasan Jafarnejad avatar

Watchers

Yu Zhang avatar zhouzuhong avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.