Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

License

Notifications You must be signed in to change notification settings

sntubix/robocar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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. If your system supports the --gpus all option, run with bash docker/run.sh --gpu. Some nodes (e.g robocar_tfl_detector) will need a dedicated GPU to work properly.
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:

{
  "robocar": {
    "global": {
      "launch_group": "default",
      "param_a": 50,
      "param_b": "b"
    },
    "component_a": {
      "groups": ["default", "sim"],
      "param_a": 10,
      "param_c": 0.25,
      "other_params": "..."
    },
    "component_b": {
      "groups": ["sim"],
      "param_d": 0.5,
      "other_params": "..."
    },
    "component_c": {
      "groups": [],
      "other_params": "..."
    }
  }
}

The configuration file is structured around components (ROS2 nodes) sections and a global parameters section. The component section name must match a registered RoboCar component, see src/robocar/src/main.cc for how to register components. A component section contains parameters and a mandatory "groups" option which sets the launch groups a component belongs to. Parameters defined in the "global" section can be overridden in a component section, see "param_a" in the above example.
The launch group to use must be specified in the "global" section under the "launch_group" option, in the above example, only component_a will be loaded whereas if launch group "sim" is used, both component_a and component_b are loaded.

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

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 robocar robocar.launch.py.

Once RoboCar is running, pressing SHIFT will toggle autonomous driving (AD) mode, other basic commands can be found in the hmi_component. Safety checks are implemented in the vehicle_component and they can prevent AD mode from engaging, refer to parameters and implementation to disable these checks.

Citation

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

@ARTICLE{10924789,
  author={Testouri, Mehdi and Elghazaly, Gamal and Frank, Raphael},
  journal={IEEE Intelligent Transportation Systems Magazine}, 
  title={RoboCar: A Rapidly Deployable Open Source Platform for Autonomous Driving Research}, 
  year={2025},
  volume={17},
  number={4},
  pages={83-95},
  keywords={Hardware;Cameras;Autonomous vehicles;Laser radar;Middleware;Computer architecture;Location awareness;Full stack;Automobiles;Urban areas;Autonomous driving},
  doi={10.1109/MITS.2025.3546755}}

License

See NOTICE and LICENSE.

About

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

Resources

License

Stars

Watchers

Forks

Releases

No releases published