SlideShare a Scribd company logo
1 of 41
Download to read offline
First steps
with Gazebo simulation
for Robocar
Sergey Matyunin
August 2020
Plan
● Motivation
● Intro to ROS
● Building a simulation for roborace in Gazebo
2
Motivation
● Preparing for robocar competition 2019
○ Meetup
○ First steps with robotics
○ Low-cost self driving car
● Donkeycar software
○ https://www.donkeycar.com/
○ Easy to start with
○ Active community
○ Specialized software stack
● Robot Operating System (ROS)
○ flexible framework for writing robot software.
○ It is a collection of tools, libraries, and conventions
○ https://www.ros.org/about-ros/
3
https://www.donkeycar.com/
ROS: Overview
4
How does ROS look like?
● Set up environment
● Write code with ROS libraries in C++ or
python
○ Use built-in modules as building blocks
○ Define message types
○ Write configs
● Launch
● Use visualization and debug tools
5
…
…
Projects with ROS
● Robocar
○ github V1 - race 2019, wiki
○ github V2 (ongoing)
● Project Omicron
○ target: https://www.robocup.org/
○ blog https://project-omicron.github.io/
○ code https://github.com/project-omicron/
6
Porting Donkeycar to ROS
● Inspiration
○ Donkeycar
○ Project Omicron
○ ….
● Hardware was customized a bit
● ROS for Raspberry Pi
○ Installing ROS Kinetic on the Raspberry Pi
○ ROS melodic on Raspberry Pi 3 B+
● Robocar on github
7
Why simulation
● I had two projects ongoing, when Corona happened
● How to develop if you don’t have hardware at hand?
● Donkeycar simulator
○ https://github.com/tawnkramer/sdsandbox
○ Learning to Drive Smoothly in Minutes
● Gazebo simulator
8
What is Gazebo
● Gazebo is an open-source 3D robotics simulator.
○ Physics engine
○ 3D rendering
○ Sensor simulation
○ Integration with ROS
● Let’s launch some simulation (video)
○ $ sudo apt-get install ros-<distro>-husky-simulator
○ $ source /opt/ros/melodic/setup.bash
○ $ export HUSKY_GAZEBO_DESCRIPTION=$(rospack find husky_gazebo)/urdf/description.gazebo.xacro
○ $ roslaunch husky_gazebo husky_playpen.launch kinect_enabled:=true
○ In another terminal to check that the sensors work
# activate ROS
$ rqt_image_view
○ In another terminal to control
# activate ROS
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
9
Another example
● Project Omicron https://github.com/project-omicron/gazebo_simulation
○ Check out the README, install the dependencies.
○
○ Controlling
cd ~/catkin_ws/ && source devel/setup.bash
rosrun teleop_twist_keyboard teleop_twist_keyboard.py
10
Another example
11
Resources for learning
● Tutorials
○ http://wiki.ros.org/urdf_tutorial
○ http://gazebosim.org/tutorials
● Learning by copying
○ turtlebot3 https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/
○ husky http://wiki.ros.org/husky_gazebo/Tutorials/Simulating%20Husky
○ husky + slam https://github.com/incebellipipo/carto_demo
● More advanced examples
○ https://github.com/AutoRally/autorally
○ https://mushr.io/tutorials/intro-to-ros/
12
Simulation for robocar race
13
Simulation for robocar race
├──
├──
│ └──
├──
└──
14
changing package.xml
15
launch file
16
launch file - results
17
Defining the (empty) world
18
Defining the (empty) world
19
Defining a robot
To define a robot we have to describe all the parts (aka links) and connections
between them (aka joints).
Ros and Gazebo take care of
● geometrical transformations (tf module),
● physics simulation and rendering.
http://wiki.ros.org/navigation/Tutorials/RobotSetup/TF 20
Defining a robot - URDF/XACRO (not working)
21
Defining a model - XACRO for Gazebo
22
Defining a model - Updating launch file
23
…
…
…
Defining a model - Results
24
Defining a model - Results
25
Let’s add some wheels - XACRO update
26
…
…
Let’s add some wheels - launch.xml
27
……
Let’s add some wheels - controller
28
Launching
29
A realistic car with Ackermann steering
https://en.wikipedia.org/wiki/Ackermann_steering_geometry
https://github.com/trainman419/ackermann_vehicle-1, blog post
30
A realistic car with Ackermann steering
Changes in launch file:
<node name="controller_spawner" pkg="controller_manager" type="spawner"
args="$(arg joint_params)" output="screen"/>
<!-- Control the steering, axle, and shock absorber joints. -->
<node name="ackermann_controller" pkg="robocar_simulation"
type="ackermann_controller.py"
output="screen">
<param name="cmd_timeout" value="$(arg cmd_timeout)"/>
<rosparam file="$(find robocar_simulation)/config/em_3905_ackermann_ctrlr_params.yaml"
command="load"/>
</node>
<!-- required to get geometrical transformations from ackermann_controller -->
<node name="vehicle_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher">
<param name="publish_frequency" value="30.0"/>
</node>
31
A realistic car with Ackermann steering
Publishing ackermann_msgs:
roslaunch robocar_simulation robocar_sim.launch model:=$(rospack find
robocar_ackermann_description)/urdf/car.xacro joint_params:=$(rospack find
robocar_simulation)/config/em_3905_joint_ctrlr_params.yaml
Results:
https://www.youtube.com/watch?v=oXl0L4rbr3o
32
Defining the track
33
https://github.com/project-omicron/gazebo_simulation
Defining the track
34
Defining the track
35
└──
├──
│ ├──
│ │ ├──
│ │ └──
│ └──
│ ├──
│ ├──
│ └──
├──
├──
├──
├──
├──
└──
Defining the track (model.sdf)
36
Defining the track (3d model and materials)
37
Results
https://youtu.be/vllWGL7J_i8
38
What is missing?
● Simulating sensors
○ Raspberry pi camera
https://github.com/UbiquityRobotics/raspic
am_node.git
○ Realsense camera
https://github.com/SyrianSpock/realsense_
gazebo_plugin.git
○ Lidar
http://gazebosim.org/tutorials?tut=add_las
er#AddingaLaser
○ IMU
http://wiki.ros.org/hector_gazebo_plugins
○ Some usage examples:
https://github.com/project-omicron/gazebo
_simulation
● Algorithm of the robot steering
39
Possible future topics
● More about ROS
● ROS on Arduino
● Simultaneous localization and mapping (SLAM)
○ Basics
○ SLAM in ROS
● Sensors simulation for Gazebo
40
Join us!
Autonomous Mobility Slack channel
https://join.slack.com/t/autonom-mobility/shared
_invite/zt-2srteszk-KUI6yVDE33PXo9xE_f1JXw
41
Advanced Computer Vision Study Group
https://www.meetup.com/advanced-computer-vision/
https://advancedcomputervision.github.io/
Scope: reading and discussing state of the art papers
First topic: Unsupervised depth estimation
Paper: 3D Packing for Self-Supervised Monocular Depth
Estimation, by Vitor Guizilini et al, 2020

More Related Content

What's hot

Lane Detection and Obstacle Aviodance
Lane Detection and Obstacle AviodanceLane Detection and Obstacle Aviodance
Lane Detection and Obstacle Aviodance
Nishanth Sriramoju
 

What's hot (20)

My ROS Experience
My ROS ExperienceMy ROS Experience
My ROS Experience
 
Simulation in Robotics
Simulation in RoboticsSimulation in Robotics
Simulation in Robotics
 
Introduction to ROS
Introduction to ROSIntroduction to ROS
Introduction to ROS
 
ROS and Unity.pdf
ROS and Unity.pdfROS and Unity.pdf
ROS and Unity.pdf
 
Lab-1-ROS-Intro.pdf
Lab-1-ROS-Intro.pdfLab-1-ROS-Intro.pdf
Lab-1-ROS-Intro.pdf
 
Lane Detection and Obstacle Aviodance
Lane Detection and Obstacle AviodanceLane Detection and Obstacle Aviodance
Lane Detection and Obstacle Aviodance
 
ROS Based Programming and Visualization of Quadrotor Helicopters
ROS Based Programming and Visualization of Quadrotor HelicoptersROS Based Programming and Visualization of Quadrotor Helicopters
ROS Based Programming and Visualization of Quadrotor Helicopters
 
Google project tango seminar report
Google project tango   seminar reportGoogle project tango   seminar report
Google project tango seminar report
 
How I built my robot with ROS and deep learning
How I built my robot with ROS and deep learningHow I built my robot with ROS and deep learning
How I built my robot with ROS and deep learning
 
Introduction to OpenCV
Introduction to OpenCVIntroduction to OpenCV
Introduction to OpenCV
 
Kinematic models and constraints.ppt
Kinematic models and constraints.pptKinematic models and constraints.ppt
Kinematic models and constraints.ppt
 
Abalanche - Unity Shader Graph #1: Shader & PBR Materials
Abalanche - Unity Shader Graph #1: Shader & PBR MaterialsAbalanche - Unity Shader Graph #1: Shader & PBR Materials
Abalanche - Unity Shader Graph #1: Shader & PBR Materials
 
Shader Programming With Unity
Shader Programming With UnityShader Programming With Unity
Shader Programming With Unity
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)
 
Introductory Level of SLAM Seminar
Introductory Level of SLAM SeminarIntroductory Level of SLAM Seminar
Introductory Level of SLAM Seminar
 
Best Practices for Shader Graph
Best Practices for Shader GraphBest Practices for Shader Graph
Best Practices for Shader Graph
 
Object detection and Instance Segmentation
Object detection and Instance SegmentationObject detection and Instance Segmentation
Object detection and Instance Segmentation
 
Faster R-CNN: Towards real-time object detection with region proposal network...
Faster R-CNN: Towards real-time object detection with region proposal network...Faster R-CNN: Towards real-time object detection with region proposal network...
Faster R-CNN: Towards real-time object detection with region proposal network...
 
Pune Flutter Presents - Flutter 101
Pune Flutter Presents - Flutter 101Pune Flutter Presents - Flutter 101
Pune Flutter Presents - Flutter 101
 
Visual odometry presentation_without_video
Visual odometry presentation_without_videoVisual odometry presentation_without_video
Visual odometry presentation_without_video
 

Similar to First steps with Gazebo simulation for ROS

Docker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil TayarDocker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Applitools
 

Similar to First steps with Gazebo simulation for ROS (20)

Drools & jBPM Workshop London 2013
Drools & jBPM Workshop London 2013Drools & jBPM Workshop London 2013
Drools & jBPM Workshop London 2013
 
Docker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil TayarDocker and Your Path to a Better Staging Environment - webinar by Gil Tayar
Docker and Your Path to a Better Staging Environment - webinar by Gil Tayar
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Boosting Sitecore Development With Sitecore Docker
Boosting Sitecore Development With Sitecore DockerBoosting Sitecore Development With Sitecore Docker
Boosting Sitecore Development With Sitecore Docker
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Continuous Delivery com Docker, OpenShift e Jenkins
Continuous Delivery com Docker, OpenShift e JenkinsContinuous Delivery com Docker, OpenShift e Jenkins
Continuous Delivery com Docker, OpenShift e Jenkins
 
Introduction of unit test on android kernel
Introduction of unit test on android kernelIntroduction of unit test on android kernel
Introduction of unit test on android kernel
 
Build and run applications in a dockerless kubernetes world
Build and run applications in a dockerless kubernetes worldBuild and run applications in a dockerless kubernetes world
Build and run applications in a dockerless kubernetes world
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
ContainerDayVietnam2016: Django Development with Docker
ContainerDayVietnam2016: Django Development with DockerContainerDayVietnam2016: Django Development with Docker
ContainerDayVietnam2016: Django Development with Docker
 
Set up a Development Environment in 5 Minutes
Set up a Development Environment in 5 MinutesSet up a Development Environment in 5 Minutes
Set up a Development Environment in 5 Minutes
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
Android Platform Debugging and Development
Android Platform Debugging and DevelopmentAndroid Platform Debugging and Development
Android Platform Debugging and Development
 
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
DMCA #25: Jenkins - Docker & Android: Comment Docker peu faciliter la créatio...
 
Super powered Drupal development with docker
Super powered Drupal development with dockerSuper powered Drupal development with docker
Super powered Drupal development with docker
 
Docker slides
Docker slidesDocker slides
Docker slides
 
Take care of hundred containers and not go crazy
Take care of hundred containers and not go crazyTake care of hundred containers and not go crazy
Take care of hundred containers and not go crazy
 

Recently uploaded

CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Recently uploaded (20)

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 

First steps with Gazebo simulation for ROS

  • 1. First steps with Gazebo simulation for Robocar Sergey Matyunin August 2020
  • 2. Plan ● Motivation ● Intro to ROS ● Building a simulation for roborace in Gazebo 2
  • 3. Motivation ● Preparing for robocar competition 2019 ○ Meetup ○ First steps with robotics ○ Low-cost self driving car ● Donkeycar software ○ https://www.donkeycar.com/ ○ Easy to start with ○ Active community ○ Specialized software stack ● Robot Operating System (ROS) ○ flexible framework for writing robot software. ○ It is a collection of tools, libraries, and conventions ○ https://www.ros.org/about-ros/ 3 https://www.donkeycar.com/
  • 5. How does ROS look like? ● Set up environment ● Write code with ROS libraries in C++ or python ○ Use built-in modules as building blocks ○ Define message types ○ Write configs ● Launch ● Use visualization and debug tools 5 … …
  • 6. Projects with ROS ● Robocar ○ github V1 - race 2019, wiki ○ github V2 (ongoing) ● Project Omicron ○ target: https://www.robocup.org/ ○ blog https://project-omicron.github.io/ ○ code https://github.com/project-omicron/ 6
  • 7. Porting Donkeycar to ROS ● Inspiration ○ Donkeycar ○ Project Omicron ○ …. ● Hardware was customized a bit ● ROS for Raspberry Pi ○ Installing ROS Kinetic on the Raspberry Pi ○ ROS melodic on Raspberry Pi 3 B+ ● Robocar on github 7
  • 8. Why simulation ● I had two projects ongoing, when Corona happened ● How to develop if you don’t have hardware at hand? ● Donkeycar simulator ○ https://github.com/tawnkramer/sdsandbox ○ Learning to Drive Smoothly in Minutes ● Gazebo simulator 8
  • 9. What is Gazebo ● Gazebo is an open-source 3D robotics simulator. ○ Physics engine ○ 3D rendering ○ Sensor simulation ○ Integration with ROS ● Let’s launch some simulation (video) ○ $ sudo apt-get install ros-<distro>-husky-simulator ○ $ source /opt/ros/melodic/setup.bash ○ $ export HUSKY_GAZEBO_DESCRIPTION=$(rospack find husky_gazebo)/urdf/description.gazebo.xacro ○ $ roslaunch husky_gazebo husky_playpen.launch kinect_enabled:=true ○ In another terminal to check that the sensors work # activate ROS $ rqt_image_view ○ In another terminal to control # activate ROS rosrun teleop_twist_keyboard teleop_twist_keyboard.py 9
  • 10. Another example ● Project Omicron https://github.com/project-omicron/gazebo_simulation ○ Check out the README, install the dependencies. ○ ○ Controlling cd ~/catkin_ws/ && source devel/setup.bash rosrun teleop_twist_keyboard teleop_twist_keyboard.py 10
  • 12. Resources for learning ● Tutorials ○ http://wiki.ros.org/urdf_tutorial ○ http://gazebosim.org/tutorials ● Learning by copying ○ turtlebot3 https://emanual.robotis.com/docs/en/platform/turtlebot3/simulation/ ○ husky http://wiki.ros.org/husky_gazebo/Tutorials/Simulating%20Husky ○ husky + slam https://github.com/incebellipipo/carto_demo ● More advanced examples ○ https://github.com/AutoRally/autorally ○ https://mushr.io/tutorials/intro-to-ros/ 12
  • 14. Simulation for robocar race ├── ├── │ └── ├── └── 14
  • 17. launch file - results 17
  • 20. Defining a robot To define a robot we have to describe all the parts (aka links) and connections between them (aka joints). Ros and Gazebo take care of ● geometrical transformations (tf module), ● physics simulation and rendering. http://wiki.ros.org/navigation/Tutorials/RobotSetup/TF 20
  • 21. Defining a robot - URDF/XACRO (not working) 21
  • 22. Defining a model - XACRO for Gazebo 22
  • 23. Defining a model - Updating launch file 23 … … …
  • 24. Defining a model - Results 24
  • 25. Defining a model - Results 25
  • 26. Let’s add some wheels - XACRO update 26 … …
  • 27. Let’s add some wheels - launch.xml 27 ……
  • 28. Let’s add some wheels - controller 28
  • 30. A realistic car with Ackermann steering https://en.wikipedia.org/wiki/Ackermann_steering_geometry https://github.com/trainman419/ackermann_vehicle-1, blog post 30
  • 31. A realistic car with Ackermann steering Changes in launch file: <node name="controller_spawner" pkg="controller_manager" type="spawner" args="$(arg joint_params)" output="screen"/> <!-- Control the steering, axle, and shock absorber joints. --> <node name="ackermann_controller" pkg="robocar_simulation" type="ackermann_controller.py" output="screen"> <param name="cmd_timeout" value="$(arg cmd_timeout)"/> <rosparam file="$(find robocar_simulation)/config/em_3905_ackermann_ctrlr_params.yaml" command="load"/> </node> <!-- required to get geometrical transformations from ackermann_controller --> <node name="vehicle_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher"> <param name="publish_frequency" value="30.0"/> </node> 31
  • 32. A realistic car with Ackermann steering Publishing ackermann_msgs: roslaunch robocar_simulation robocar_sim.launch model:=$(rospack find robocar_ackermann_description)/urdf/car.xacro joint_params:=$(rospack find robocar_simulation)/config/em_3905_joint_ctrlr_params.yaml Results: https://www.youtube.com/watch?v=oXl0L4rbr3o 32
  • 35. Defining the track 35 └── ├── │ ├── │ │ ├── │ │ └── │ └── │ ├── │ ├── │ └── ├── ├── ├── ├── ├── └──
  • 36. Defining the track (model.sdf) 36
  • 37. Defining the track (3d model and materials) 37
  • 39. What is missing? ● Simulating sensors ○ Raspberry pi camera https://github.com/UbiquityRobotics/raspic am_node.git ○ Realsense camera https://github.com/SyrianSpock/realsense_ gazebo_plugin.git ○ Lidar http://gazebosim.org/tutorials?tut=add_las er#AddingaLaser ○ IMU http://wiki.ros.org/hector_gazebo_plugins ○ Some usage examples: https://github.com/project-omicron/gazebo _simulation ● Algorithm of the robot steering 39
  • 40. Possible future topics ● More about ROS ● ROS on Arduino ● Simultaneous localization and mapping (SLAM) ○ Basics ○ SLAM in ROS ● Sensors simulation for Gazebo 40
  • 41. Join us! Autonomous Mobility Slack channel https://join.slack.com/t/autonom-mobility/shared _invite/zt-2srteszk-KUI6yVDE33PXo9xE_f1JXw 41 Advanced Computer Vision Study Group https://www.meetup.com/advanced-computer-vision/ https://advancedcomputervision.github.io/ Scope: reading and discussing state of the art papers First topic: Unsupervised depth estimation Paper: 3D Packing for Self-Supervised Monocular Depth Estimation, by Vitor Guizilini et al, 2020