The autonomous driving competition 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, 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.
The robot model represents a real robot presented in Fig.1. This robot 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. This simulator is able to replicate the autonomous driving competition challenges of the PRO except the tunnel and working zone.
- [1] - Conference Paper - Design hints for efficient robotic vision - Lessons learned from a robotic platform
- [2] - Conference Paper - Autonomous driving simulator for educational purposes
- [3] - Journal Article - Simulator for teaching robotics, ROS and autonomous driving in a competitive mindset
- [4] - Journal Article - Design of an Embedded Multi-Camera Vision System - A Case Study in Mobile Robotics
- Presentation Guidelines
Fig. 1 - On the left track for the 2017 autonomous driving competition, on the right real robot.
Fig. 2 - Menu to choose the desired signalling panel.
-
ROS distro: ROS Kinetic
-
Ubuntu version: Ubuntu 16.04 LTS
-
Gazebo version: Gazebo 7.0
Perform the full instalation for the ROS Kinetic that comes with Gazebo 7.0
Clone this repository into the src folder inside the catkin workspace and compile it.
To launch the simulation world for D1, D2 and D3 challenges run:
roslaunch conde_world spawn_world.launch
To spawn the robot inside the world run:
roslaunch conde_world spawn_robot.launch
To spawn the obstacles in the world run one of the following commands:
roslaunch conde_world spawn_obstacles_v1.launch
roslaunch conde_world spawn_obstacles_v2.launch
For the bay parking challenge with obstacle run one of the following commands:
roslaunch conde_world spawn_parking_obstacles_v1.launch
roslaunch conde_world spawn_parking_obstacles_v2.launch
To spawn the traffic signs in the world run:
roslaunch conde_world spawn_traffic_sign_panels.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
- 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
- conde_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
If you use this simulator please cite articles [2] and [3]:
@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}
}