All Projects → ee09115 → conde_simulator

ee09115 / conde_simulator

Licence: other
Autonomous Driving Simulator for the Portuguese Robotics Open

Programming Languages

CMake
9771 projects
C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to conde simulator

my ROS mobile robot
Differential drive mobile robot using ROS.
Stars: ✭ 123 (+296.77%)
Mutual labels:  ros, gazebo, mobile-robots, differential-drive
copilot
Lane and obstacle detection for active assistance during driving. Uses windowed sweep for lane detection. Combination of object tracking and YOLO for obstacles. Determines lane change, relative velocity and time to collision
Stars: ✭ 95 (+206.45%)
Mutual labels:  autonomous-driving, lane-detection, lane-tracking
FusionAD
An open source autonomous driving stack by San Jose State University Autonomous Driving Team
Stars: ✭ 30 (-3.23%)
Mutual labels:  ros, autonomous-driving, ros-kinetic
Virtual-Lane-Boundary-Generation
Virtual Lane Boundary Generation for Human-Compatible Autonomous Driving
Stars: ✭ 22 (-29.03%)
Mutual labels:  autonomous-driving, lane-detection, lane-tracking
wpr simulation
No description or website provided.
Stars: ✭ 24 (-22.58%)
Mutual labels:  ros, gazebo, mobile-robots
2019-UGRP-DPoom
2019 DGIST DPoom project under UGRP : SBC and RGB-D camera based full autonomous driving system for mobile robot with indoor SLAM
Stars: ✭ 35 (+12.9%)
Mutual labels:  ros, autonomous-driving, ros-kinetic
ar-tu-do
ROS & Gazebo project for 1/10th scale self-driving race cars
Stars: ✭ 65 (+109.68%)
Mutual labels:  ros, gazebo, autonomous-driving
summit xl sim
Packages for the simulation of the Summit XL, Summit XL HL and Summit-X (including X-WAM) robots
Stars: ✭ 32 (+3.23%)
Mutual labels:  ros, gazebo, ros-kinetic
Awesome Robotic Tooling
Tooling for professional robotic development in C++ and Python with a touch of ROS, autonomous driving and aerospace.
Stars: ✭ 1,876 (+5951.61%)
Mutual labels:  robot, ros, autonomous-driving
ZeroSimROSUnity
Robotic simulation in Unity with ROS integration.
Stars: ✭ 112 (+261.29%)
Mutual labels:  gazebo, mobile-robots
motion-planner-reinforcement-learning
End to end motion planner using Deep Deterministic Policy Gradient (DDPG) in gazebo
Stars: ✭ 99 (+219.35%)
Mutual labels:  gazebo, ros-kinetic
ur ws
Universal robot with robotiq hand workspace
Stars: ✭ 21 (-32.26%)
Mutual labels:  ros, gazebo
ros webconsole
🌐 A ROS WEB console to control remotely your robot. Based with robotwebtools.
Stars: ✭ 71 (+129.03%)
Mutual labels:  robot, ros-kinetic
smacha
SMACHA is a meta-scripting, templating, and code generation engine for rapid prototyping of ROS SMACH state machines.
Stars: ✭ 15 (-51.61%)
Mutual labels:  robot, ros
Autonomous-Parking-System
Automatic Parking is an autonomous car maneuvering system (part of ADAS) that moves a vehicle from a traffic lane into a parking spot to perform parallel parking. The automatic parking system aims to enhance the comfort and safety of driving in constrained environments where much attention and experience is required to steer the car. The parking…
Stars: ✭ 39 (+25.81%)
Mutual labels:  gazebo, autonomous-driving
robotiq 2finger grippers
ROS packages enabling the control, visualization and simulation of the Robotiq 2 Fingers Adaptive Grippers model version C3
Stars: ✭ 59 (+90.32%)
Mutual labels:  ros, ros-kinetic
roskinectic src
This ROS kinectic workspace src folder, which was created on Ubuntu 16.04. Here I worked on ROS1 projects like 2d & 3D SLAM, Motion Planning, SWARM of drone, RL based drone, Surveilling Robot etc.
Stars: ✭ 44 (+41.94%)
Mutual labels:  ros, ros-kinetic
gazebo cars
Gazebo Models for different types of cars
Stars: ✭ 31 (+0%)
Mutual labels:  ros, gazebo
DDPG
End to End Mobile Robot Navigation using DDPG (Continuous Control with Deep Reinforcement Learning) based on Tensorflow + Gazebo
Stars: ✭ 41 (+32.26%)
Mutual labels:  ros, gazebo
scikit-robot
A Flexible Framework for Robot Control in Python
Stars: ✭ 70 (+125.81%)
Mutual labels:  robot, ros

Autonomous Driving Simulator for the Portuguese Robotics Open

ROS Noetic Support

ROS Melodic Support

ROS Kinetic Support

ROS Indigo Support

Overview

The Autonomous Driving Competition (ADC) of the Portuguese Robotics Open (PRO) represents a medium complexity technical challenge in which a mobile robot completely devoid of human input during its runtime travels in a track (with a size of ~17x7m), Fig. 1, detects and identifies signalling panels projected in two ordinary monitors, recognizes traffic signs defined in the competition ruling, detects and avoids obstacles and is able to park in two different parking areas.

To overcome the need physical space to develop and deploy the code on the real robot, a simulator was created. Currently this simulator supports two different robots. The first one, named Conde, uses a differential driving steering locomotion (two small wheels coupled in two motors that controls its linear and angular movement) and a castor wheel to balance the structure. The sensors applied to the robot are three cameras. Two pointed down to see/navigate along the track and detect/avoid obstacles and one pointed up to detect/identify the signaling panels and traffic signs.

The second one, called Major Alvega uses a ackermann steering locomotion and two cameras as sensors (as in the Conde robot one of the cameras is pointed up to see the track and the other is pointed up to see the signalling panels and traffic signs).

These two robots represent real world robots as shown in Fig. 2.

This simulator is able to replicate all of the autonomous driving competition challenges of the PRO.

Fig. 1 - On the left track for the 2017 autonomous driving competition, on the right real robot.


















Fig. 2 - On the left conde robot, on the right major alvega robot.

Instalation and Dependencies

  • ROS distro: ROS Kinetic / ROS Melodic

  • Ubuntu version: Ubuntu 16.04 LTS / Ubuntu 18.04 LTS / Ubuntu 20.04 LTS

  • Gazebo version: Gazebo 7.0 / Gazebo 9.0 / Gazebo 11.0

Perform the full instalation for the ROS Kinetic that comes with Gazebo 7.0, ROS Melodic that comes with Gazebo 9 or ROS Noetic that comes with Gazebo 11.0

Install ackermann dependencies on ROS Noetic:

sudo apt-get install ros-noetic-ackermann-* ros-noetic-effort-controllers ros-noetic-gazebo-ros-control ros-noetic-joint-state-controller

Install ackermann dependencies on ROS Melodic:

sudo apt-get install ros-melodic-ackermann-* ros-melodic-effort-controllers ros-melodic-gazebo-ros-control ros-melodic-joint-state-controller

Install ackermann dependencies on ROS Kinetic:

sudo apt-get install ros-kinetic-ackermann-* ros-kinetic-effort-controllers ros-kinetic-gazebo-ros-control ros-kinetic-joint-state-controller

Building

Clone this repository into the src folder inside the catkin workspace and compile it.

Running

There are several launch files in the autonomous_driving_world package. To launch Major Alvega / Conde in the competition track run on of the following commands:

roslaunch autonomous_driving_world spawn_major_in_competition_track_D1_D2_B1_P1.launch
roslaunch autonomous_driving_world spawn_conde_in_competition_track_D1_D2_B1_P1.launch

For the driving with obstacles challenge run:

roslaunch autonomous_driving_world spawn_major_in_competition_track_with_obstacles_D3_v1.launch
roslaunch autonomous_driving_world spawn_major_in_competition_track_with_obstacles_D3_v2.launch
roslaunch autonomous_driving_world spawn_conde_in_competition_track_with_obstacles_D3_v1.launch
roslaunch autonomous_driving_world spawn_conde_in_competition_track_with_obstacles_D3_v2.launch

For the driving with obstacles and work zone challenge run:

roslaunch autonomous_driving_world spawn_major_in_competition_track_with_obstacles_and_construction_cones_D4.launch
roslaunch autonomous_driving_world spawn_conde_in_competition_track_with_obstacles_and_construction_cones_D4.launch

For the parallel parking challenge with obstacles run:

roslaunch autonomous_driving_world spawn_major_in_competition_track_with_parking_obstacles_P2.launch
roslaunch autonomous_driving_world spawn_conde_in_competition_track_with_parking_obstacles_P2.launch

For the bay parking challenge with obstacle run one of the following commands:

roslaunch autonomous_driving_world spawn_major_in_competition_track_with_parking_obstacles_B2_v1.launch
roslaunch autonomous_driving_world spawn_major_in_competition_track_with_parking_obstacles_B2_v2.launch
roslaunch autonomous_driving_world spawn_conde_in_competition_track_with_parking_obstacles_B2_v1.launch	
roslaunch autonomous_driving_world spawn_conde_in_competition_track_with_parking_obstacles_B2_v2.launch

To spawn the traffic signs in the world run:

roslaunch autonomous_driving_world spawn_major_in_competition_track_with_traffic_signs_V1.launch
roslaunch roslaunch autonomous_driving_world spawn_conde_in_competition_track_with_traffic_signs_V1.launch

Controlling the signalling panels run, Fig. 2:

rosrun gazebo_signalling_panel_control gazebo_signalling_panel_control_node

Controlling the traffic signs run:

rosrun gazebo_traffic_sign gazebo_traffic_sign_node

Documentation

To help understanding the challenges of the ADC of the PRO videos for each challenge using Conde and Major Alvega robots were recorded:

Challenges Video Link
D1 Major Alvega / Conde
D2 Major Alvega / Conde
D3 Major Alvega / Conde
P1 Major Alvega / Conde
P2 Major Alvega / Conde
B1 Major Alvega / Conde
B2 Major Alvega / Conde

ROS architecture for Conde

rosgraph for the simulation world

Short description of ROS nodes - Conde

  • conde_tracking - it is responsible for the detection of the track
  • conde_signalling_panel - it is responsible to recognize the signalling panels
  • conde_traffic_sign - it is responsible to recognize the traffic signs
  • conde_decision - it is responsible for all the decisions followed by the robot (it is the intelligence of the robot)
  • conde_control - it is responsible to calculate the velocities accordingly to the reference to follow
  • conde_key_teleop - it controls the robot's movement manually by publishing a /cmd_vel message

ROS architecture for Major Alvega

rosgraph for the simulation world

Short description of ROS nodes - Major Alvega

  • major_tracking - it is responsible for the detection of the track
  • major_signalling_panel - it is responsible to recognize the signalling panels
  • major_traffic_sign - it is responsible to recognize the traffic signs
  • major_decision - it is responsible for all the decisions followed by the robot (it is the intelligence of the robot)
  • major_control - it is responsible to calculate the velocities accordingly to the reference to follow

Short description of ROS nodes - General Packages

  • autonomous_driving_world - simulation world representing the autonomous driving competition of the portuguese robotics open
  • gazebo_traffic_sign_control - it controls the traffic sign displayed in the conde_world
  • gazebo_signalling_panel_control - it controls the signalling panels displayed in conde_world through a terminal menu

How to cite

If you use this simulator please cite articles [2], [3] and [5]:

@article{Costa2017c,
author = {Costa, Valter and Rossetti, Rosaldo and Sousa, Armando},
doi = {10.4018/IJTHI.2017100102},
issn = {1548-3908},
journal = {International Journal of Technology and Human Interaction},
month = {oct},
number = {4},
pages = {19--32},
title = {{Simulator for Teaching Robotics, ROS and Autonomous Driving in a Competitive Mindset}},
url = {http://services.igi-global.com/resolvedoi/resolve.aspx?doi=10.4018/IJTHI.2017100102},
volume = {13},
year = {2017}
}

@inproceedings{Costa2016a,
author = {Costa, Valter and Rossetti, Rosaldo J.F. and Sousa, Armando},
booktitle = {2016 11th Iberian Conference on Information Systems and Technologies (CISTI)},
doi = {10.1109/CISTI.2016.7521461},
isbn = {978-9-8998-4346-2},
issn = {21660735},
month = {jun},
pages = {1--5},
publisher = {IEEE},
title = {{Autonomous driving simulator for educational purposes}},
url = {http://ieeexplore.ieee.org/document/7521461/},
year = {2016}
}

@incollection{Costa2020,
author = {Costa, Valter and Cebola, Peter and Tavares, Pedro and Morais, Vitor and Sousa, Armando},
booktitle = {Robot 2019: Fourth Iberian Robotics Conference},
doi = {10.1007/978-3-030-35990-4_37},
isbn = {978-3-030-35990-4},
pages = {455--466},
publisher = {Springer International Publishing},
title = {{Teaching Mobile Robotics Using the Autonomous Driving Simulator of the Portuguese Robotics Open}},
url = {http://link.springer.com/10.1007/978-3-030-35990-4{\_}37},
year = {2020}
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].