SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
Premaster team
Under the supervision of prof: Sherine Rady
eng: Mohammed Aly
Implemented,documented and edited by : Esraa
Tarek Sadek

 Robot Operating System (ROS) is a collection
of software frameworks for robot software
development providing operating system-like
functionality.
 ROS provides standard operating system services
such as hardware abstraction, low-level device
control, implementation of commonly used
functionality, message-passing between processes,
and package management.
What is ROS?

History


Fuerte
WHY?
 The best tested and working version .
VersionUsed

 Ubuntu 12.0
Ubuntu Version

OS Vs. ROS
=
Applications Packages

 Software in ROS is organized in packages.
 A package might contain ROS nodes, a ROS-
independent library, a dataset, configuration files, a
third-party piece of software, or anything else that
logically constitutes a useful module.
 The goal of these packages it to provide this useful
functionality in an easy-to-consume manner so that
software can be easily reused.
Packages

 joy_node(joy) and ardrone_joystick(ardrone): They
are the joystick driver and the command information
translator for the Ardrone.
 rviz: A 3d visualization environment for the
simulated flying robots.
Common Packages

 Nodes: Nodes are processes that perform
computation.
 ROS is designed to be modular at a fine-grained
scale; a robot control system usually comprises many
nodes. For example, one node controls a laser range-
finder, one node controls the wheel motors, one node
performs localization, one node performs path
planning, one Node provides a graphical view of the
system, and so on.
 A ROS node is written with the use of a ROS client
library, such as roscpp or rospy.
Nodes

Communication
Messages
Topics
How Do Nodes
Communicate ?

 Messages: Nodes communicate with each other by
passing messages.
 A message is simply a data structure, comprising
typed fields. Standard primitive types (integer,
floating point, boolean, etc.) are supported, as are
arrays of primitive types.
 Messages can include arbitrarily nested structures
and arrays (much like C structs).
Messages

 Topics: Messages are routed via a transport system with
publish / subscribe semantics.
 A node sends out a message by publishing it to a given topic.
The topic is a name that is used to identify the content of the
message.
 A node that is interested in a certain kind of data will subscribe
to the appropriate topic.
 There may be multiple concurrent publishers and subscribers
for a single topic, and a single node may publish and/or
subscribe to multiple topics.
 In general, publishers and subscribers are not aware of each
others' existence.
 The idea is to decouple the production of information from its
consumption. Logically, one can think of a topic as a strongly
typed message bus. Each bus has a name, and anyone can
connect to the bus to send or receive messages as long as they
are the right type.
Topics


 TUM
 TUM_SIMULATOR: This package contains the
implementation of a gazebo simulator for the Ardrone 2.0
 TUM_ARDRONE: This package contains the
implementations of controlling techinques for drones .
Packages Used

 gazebo, ground_truth_to_tf, robot_state_publisher:
The simulator program.
 rviz: A 3d visualization environment for the
simulated flying robots.
 joy_node, ardrone_joystick: They are the joystick
driver and the command information translator for
the Ardrone.
tum_simulator main nodes

 drone_stateestimation: Drone State-estimation,
including PTAM & Visualization.
 drone_autopilot: Drone Controller, requires
drone_stateestimation
 drone_gui: GUI for controlling the drone (with a
Joystick or KB) and for controlling the autopilot and
the stateestimation node
tum_ardrone main nodes

Real quadrocopter
structure: The
AR.Drone2.0 connects
with a computer via
WIFI, while the user
manipulate a joystick
which is via USB
connecting with the
same computer. ROS is
running in this
computer.
Real Scenario

 Simulated
quadrocopter
manipulation: After the
simulation is started.
The user can use a
joystick to manipulate
the simulated
quadrocopter.
 The button functions of
the joystick are the
same as manipulating
the real AR.Drone2.0.

 Sample

 It is required to investigate the robot simulator
environment ROS (Robot Operating System) for
simulating a mobile robot platform and operating
environment.
 The selected platform is the drone model by TUM
(Technische Universität München), Germany.
Task Description

 It is required to learn practical skills on how to:
 configure the platform on the simulator
 control the drone fly
 read measurements from different sensors mounted
on the platform
 add items to the simulation environment
 apply a simple scenario: e.g. trajectory following or
obstacle avoidance algorithm
Objectives

 ROS/Installation
 Getting familiar with ROS
 TUM Package Installation
 TUM_SIMULATOR
 TUM_ARDRONE
 Control the drone
 Add items to the simulation environment
 Apply a simple scenario
Task Flow
 In one terminal do the following :
 Make sure that you are on your home directory
 Type : source fuerte_workspace/setup.bash
 Type : roscd
 Type : export
ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ardr
one_autonomy
 Type : export
ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ardr
one_helpers
 Type : export
ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/tum
_simulator
 Then You can start the simulator with one of flying
scenarios:here
How To Run The Scenario ?

It’s Expected to see:

And

 In another terminal :
 Make sure that you are on your home directory
 Type : source fuerte_workspace/setup.bash
 Type : roscd
 Type : export
ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ardrone_autono
my
 Type : export
ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ardrone_helper
s
 Type : export
ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/tum_simulator
 Type : export
ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/tum_ardrone
 Type : roslaunch tum_ardrone tum_ardrone.launch
Run the tum_ardrone

It’s Expected To See

 Buttons
 Manual Keyboard control
 Manual Joystick control
 Autopilot
Now It’s the time of
manipulating the drone

 Buttons Land, Takeoff, Toggle Cam, Flat trim,
Emergency (toggles emergency state).
Buttons


 KB control requires the GUI window to have focus, but NOT
the upper-left text field (press ECS)
 q,a: fly up & down.
 i,j,k,l: fly horizontally.
 u,o: rotate yaw.
 F1: toggle emergency
 s: takeoff
 d: land
 Focus the GUI window and press ESC to immediately enable
KB control and set focus such that KB control works properly.
This can be used for safety (autopilot does wired stuff -> press
ESC and immediately take over, disabling the autopilot and
enabling manual control).
Keyboard

 Joystick control requires a connected joystick and running
rosrun joy joy_node. We use a PS3 six-axis controller.
 left joystick is horizontal position control; right joystick
is height and yaw control.
 L1 to take off, release L1 to land.
 R1 to toggle emergency state.
 By moving any of the two joysticks, the Control Source is
immediately sent to Joystick. This can be used for safety
(autopilot does wired stuff -> immediately take over by
hand, disabling the autopilot and enabling manual
control).
Joystick

 Using the text-field on the left side, commands can be sent to
the autopilot node, for example a given trajectory of way-
points.
 write commands in top-left text field (or load an example
from one of the files). You can simply add .txt files to
flightplans/.
 click Send to transmit commands to the autopilot's command
queue (automatically sets Control Source to Autopilot).
 click Clear to clear autopilot command queue and current
target.
 click Reset to reset Autopilot, PTAM and EKF.
Autopilot

 # The output camera
 rosrun image_view image_view image:=/ardrone/image_raw
 # The front camera
 rosrun image_view image_view image:=/ardrone/front/image_raw
 # The buttom camera
 rosrun image_view image_view image:=/ardrone/bottom/image_raw
 # The height sensor
 rostopic echo /sonar_height
 #The navigation info
 rostopic echo /ardrone/navdata
Add items to the simulation
environment

 Nodes :
 image_view: Simple image viewer for ROS
sensor_msgs/Image topics.
 disparity_view: Simple viewer for
stereo_msgs/DisparityImage topics. Color-maps the
disparity image for visualization.
 stereo_view :Viewer for stereo images. Shows the
synchronized left/right image pair and the disparity
image (color-mapped) computed from them.
image_view package


Any Questions ?

 http://wiki.ros.org/ROS/Concepts
 http://wiki.ros.org/fuerte/Installation/Ubuntu
 http://wiki.ros.org/tum_ardrone
 http://wiki.ros.org/tum_ardrone/drone_gui#Keyb
oard_Control
 wiki.ros.org/tum_simulator
 http://wiki.ros.org/ROS/Tutorials
Refrences

Más contenido relacionado

La actualidad más candente

An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
Clay Flannigan
 

La actualidad más candente (20)

ROS vs ROS2
ROS vs ROS2ROS vs ROS2
ROS vs ROS2
 
Guide to ROS tools
Guide to ROS tools Guide to ROS tools
Guide to ROS tools
 
An Introduction to ROS-Industrial
An Introduction to ROS-IndustrialAn Introduction to ROS-Industrial
An Introduction to ROS-Industrial
 
ROS - An open source platform for robotics software developers (lecture).pdf
ROS - An open source platform for robotics software developers (lecture).pdfROS - An open source platform for robotics software developers (lecture).pdf
ROS - An open source platform for robotics software developers (lecture).pdf
 
Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)Robot operating systems (ros) overview & (1)
Robot operating systems (ros) overview & (1)
 
FIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROSFIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROS
 
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
 
Apache Hadoop YARN
Apache Hadoop YARNApache Hadoop YARN
Apache Hadoop YARN
 
ROS and Unity.pdf
ROS and Unity.pdfROS and Unity.pdf
ROS and Unity.pdf
 
FIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROSFIWARE Robotics: ROS2 & micro-ROS
FIWARE Robotics: ROS2 & micro-ROS
 
10. ROS (1).pptx
10. ROS (1).pptx10. ROS (1).pptx
10. ROS (1).pptx
 
ROS - an open-source Robot Operating System
ROS - an open-source Robot Operating SystemROS - an open-source Robot Operating System
ROS - an open-source Robot Operating System
 
My ROS Experience
My ROS ExperienceMy ROS Experience
My ROS Experience
 
Fundamentals of Robotics and Machine Vision System
Fundamentals of Robotics and Machine Vision SystemFundamentals of Robotics and Machine Vision System
Fundamentals of Robotics and Machine Vision System
 
Wireless controlled robotic arm
Wireless controlled robotic armWireless controlled robotic arm
Wireless controlled robotic arm
 
10 Common Hadoop-able Problems Webinar
10 Common Hadoop-able Problems Webinar10 Common Hadoop-able Problems Webinar
10 Common Hadoop-able Problems Webinar
 
Golang - Overview of Go (golang) Language
Golang - Overview of Go (golang) LanguageGolang - Overview of Go (golang) Language
Golang - Overview of Go (golang) Language
 
Go lang
Go langGo lang
Go lang
 
Introduction to Gstreamer
Introduction to GstreamerIntroduction to Gstreamer
Introduction to Gstreamer
 
Grafana
GrafanaGrafana
Grafana
 

Destacado

ROS - Robotics Operation System
ROS - Robotics Operation SystemROS - Robotics Operation System
ROS - Robotics Operation System
hudvin
 

Destacado (11)

Ros based programming and visualization of quadrotor helicopters 110090139 a...
Ros based programming and visualization of quadrotor helicopters  110090139 a...Ros based programming and visualization of quadrotor helicopters  110090139 a...
Ros based programming and visualization of quadrotor helicopters 110090139 a...
 
Autonomous navigation of flying robot
Autonomous navigation of flying robotAutonomous navigation of flying robot
Autonomous navigation of flying robot
 
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRVROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
ROS Hands-On Intro/Tutorial (Robotic Vision Summer School 2015) #RVSS #ACRV
 
Augmented Reality Application Tutorial for Education 1
Augmented  Reality Application Tutorial for Education 1Augmented  Reality Application Tutorial for Education 1
Augmented Reality Application Tutorial for Education 1
 
Advanced programming with #nodecopter
Advanced programming with #nodecopterAdvanced programming with #nodecopter
Advanced programming with #nodecopter
 
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
Gazebo, 9개의 파일로 간단히 시작하는 로봇 시뮬레이션
 
Introduction to AR with Unity3D
Introduction to AR with Unity3DIntroduction to AR with Unity3D
Introduction to AR with Unity3D
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解
 
ROS distributed architecture
ROS  distributed architectureROS  distributed architecture
ROS distributed architecture
 
ROS - Robotics Operation System
ROS - Robotics Operation SystemROS - Robotics Operation System
ROS - Robotics Operation System
 
Modeling and Control Robot Arm using Gazebo, MoveIt!, ros_control
Modeling and Control Robot Arm using Gazebo, MoveIt!, ros_controlModeling and Control Robot Arm using Gazebo, MoveIt!, ros_control
Modeling and Control Robot Arm using Gazebo, MoveIt!, ros_control
 

Similar a Simulating TUM Drone 2.0 by ROS

Buffer overflow tutorial
Buffer overflow tutorialBuffer overflow tutorial
Buffer overflow tutorial
hughpearse
 
BIT204 1 Software Fundamentals
BIT204 1 Software FundamentalsBIT204 1 Software Fundamentals
BIT204 1 Software Fundamentals
James Uren
 
Virtual platform
Virtual platformVirtual platform
Virtual platform
sean chen
 

Similar a Simulating TUM Drone 2.0 by ROS (20)

6202942
62029426202942
6202942
 
Metasploit - Basic and Android Demo
Metasploit  - Basic and Android DemoMetasploit  - Basic and Android Demo
Metasploit - Basic and Android Demo
 
ARM Embeded_Firmware.pdf
ARM Embeded_Firmware.pdfARM Embeded_Firmware.pdf
ARM Embeded_Firmware.pdf
 
Buffer overflow tutorial
Buffer overflow tutorialBuffer overflow tutorial
Buffer overflow tutorial
 
Mp lab manual
Mp lab manualMp lab manual
Mp lab manual
 
Brahms Agent-Based Modeling & Simulation Course #1
Brahms Agent-Based Modeling & Simulation Course #1Brahms Agent-Based Modeling & Simulation Course #1
Brahms Agent-Based Modeling & Simulation Course #1
 
Book
BookBook
Book
 
maXbox Starter 45 Robotics
maXbox Starter 45 RoboticsmaXbox Starter 45 Robotics
maXbox Starter 45 Robotics
 
Compiler presentaion
Compiler presentaionCompiler presentaion
Compiler presentaion
 
BIT204 1 Software Fundamentals
BIT204 1 Software FundamentalsBIT204 1 Software Fundamentals
BIT204 1 Software Fundamentals
 
GNURAdioDoc-8
GNURAdioDoc-8GNURAdioDoc-8
GNURAdioDoc-8
 
GNURAdioDoc-8
GNURAdioDoc-8GNURAdioDoc-8
GNURAdioDoc-8
 
Virtual platform
Virtual platformVirtual platform
Virtual platform
 
Introduction to C Language - Version 1.0 by Mark John Lado
Introduction to C Language - Version 1.0 by Mark John LadoIntroduction to C Language - Version 1.0 by Mark John Lado
Introduction to C Language - Version 1.0 by Mark John Lado
 
Robotics Operating System Research Tool
Robotics Operating System Research Tool Robotics Operating System Research Tool
Robotics Operating System Research Tool
 
Backtrack Manual Part6
Backtrack Manual Part6Backtrack Manual Part6
Backtrack Manual Part6
 
linkerloader ss-2.pptx
linkerloader ss-2.pptxlinkerloader ss-2.pptx
linkerloader ss-2.pptx
 
RomaFramework Tutorial Basics
RomaFramework Tutorial BasicsRomaFramework Tutorial Basics
RomaFramework Tutorial Basics
 
React native
React nativeReact native
React native
 
Introduction to Rust (Presentation).pptx
Introduction to Rust (Presentation).pptxIntroduction to Rust (Presentation).pptx
Introduction to Rust (Presentation).pptx
 

Último

VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
ankushspencer015
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
amitlee9823
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
dollysharma2066
 

Último (20)

Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Palanpur 7001035870 Whatsapp Number, 24/07 Booking
 
Online banking management system project.pdf
Online banking management system project.pdfOnline banking management system project.pdf
Online banking management system project.pdf
 
AKTU Computer Networks notes --- Unit 3.pdf
AKTU Computer Networks notes ---  Unit 3.pdfAKTU Computer Networks notes ---  Unit 3.pdf
AKTU Computer Networks notes --- Unit 3.pdf
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bangalore ☎ 7737669865 🥵 Book Your One night Stand
 
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
(INDIRA) Call Girl Bhosari Call Now 8617697112 Bhosari Escorts 24x7
 
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete RecordCCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
CCS335 _ Neural Networks and Deep Learning Laboratory_Lab Complete Record
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)Java Programming :Event Handling(Types of Events)
Java Programming :Event Handling(Types of Events)
 
Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...Call for Papers - International Journal of Intelligent Systems and Applicatio...
Call for Papers - International Journal of Intelligent Systems and Applicatio...
 
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
FULL ENJOY Call Girls In Mahipalpur Delhi Contact Us 8377877756
 
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...Bhosari ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready For ...
Bhosari ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready For ...
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
Call Girls Pimpri Chinchwad Call Me 7737669865 Budget Friendly No Advance Boo...
 
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance BookingCall Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
Call Girls Walvekar Nagar Call Me 7737669865 Budget Friendly No Advance Booking
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 

Simulating TUM Drone 2.0 by ROS

  • 1. Premaster team Under the supervision of prof: Sherine Rady eng: Mohammed Aly Implemented,documented and edited by : Esraa Tarek Sadek
  • 2.   Robot Operating System (ROS) is a collection of software frameworks for robot software development providing operating system-like functionality.  ROS provides standard operating system services such as hardware abstraction, low-level device control, implementation of commonly used functionality, message-passing between processes, and package management. What is ROS?
  • 4.
  • 5.  Fuerte WHY?  The best tested and working version . VersionUsed
  • 8.   Software in ROS is organized in packages.  A package might contain ROS nodes, a ROS- independent library, a dataset, configuration files, a third-party piece of software, or anything else that logically constitutes a useful module.  The goal of these packages it to provide this useful functionality in an easy-to-consume manner so that software can be easily reused. Packages
  • 9.   joy_node(joy) and ardrone_joystick(ardrone): They are the joystick driver and the command information translator for the Ardrone.  rviz: A 3d visualization environment for the simulated flying robots. Common Packages
  • 10.   Nodes: Nodes are processes that perform computation.  ROS is designed to be modular at a fine-grained scale; a robot control system usually comprises many nodes. For example, one node controls a laser range- finder, one node controls the wheel motors, one node performs localization, one node performs path planning, one Node provides a graphical view of the system, and so on.  A ROS node is written with the use of a ROS client library, such as roscpp or rospy. Nodes
  • 12.   Messages: Nodes communicate with each other by passing messages.  A message is simply a data structure, comprising typed fields. Standard primitive types (integer, floating point, boolean, etc.) are supported, as are arrays of primitive types.  Messages can include arbitrarily nested structures and arrays (much like C structs). Messages
  • 13.
  • 14.  Topics: Messages are routed via a transport system with publish / subscribe semantics.  A node sends out a message by publishing it to a given topic. The topic is a name that is used to identify the content of the message.  A node that is interested in a certain kind of data will subscribe to the appropriate topic.  There may be multiple concurrent publishers and subscribers for a single topic, and a single node may publish and/or subscribe to multiple topics.  In general, publishers and subscribers are not aware of each others' existence.  The idea is to decouple the production of information from its consumption. Logically, one can think of a topic as a strongly typed message bus. Each bus has a name, and anyone can connect to the bus to send or receive messages as long as they are the right type. Topics
  • 15.
  • 16.   TUM  TUM_SIMULATOR: This package contains the implementation of a gazebo simulator for the Ardrone 2.0  TUM_ARDRONE: This package contains the implementations of controlling techinques for drones . Packages Used
  • 17.   gazebo, ground_truth_to_tf, robot_state_publisher: The simulator program.  rviz: A 3d visualization environment for the simulated flying robots.  joy_node, ardrone_joystick: They are the joystick driver and the command information translator for the Ardrone. tum_simulator main nodes
  • 18.   drone_stateestimation: Drone State-estimation, including PTAM & Visualization.  drone_autopilot: Drone Controller, requires drone_stateestimation  drone_gui: GUI for controlling the drone (with a Joystick or KB) and for controlling the autopilot and the stateestimation node tum_ardrone main nodes
  • 19.  Real quadrocopter structure: The AR.Drone2.0 connects with a computer via WIFI, while the user manipulate a joystick which is via USB connecting with the same computer. ROS is running in this computer. Real Scenario
  • 20.   Simulated quadrocopter manipulation: After the simulation is started. The user can use a joystick to manipulate the simulated quadrocopter.  The button functions of the joystick are the same as manipulating the real AR.Drone2.0.
  • 22.   It is required to investigate the robot simulator environment ROS (Robot Operating System) for simulating a mobile robot platform and operating environment.  The selected platform is the drone model by TUM (Technische Universität München), Germany. Task Description
  • 23.   It is required to learn practical skills on how to:  configure the platform on the simulator  control the drone fly  read measurements from different sensors mounted on the platform  add items to the simulation environment  apply a simple scenario: e.g. trajectory following or obstacle avoidance algorithm Objectives
  • 24.   ROS/Installation  Getting familiar with ROS  TUM Package Installation  TUM_SIMULATOR  TUM_ARDRONE  Control the drone  Add items to the simulation environment  Apply a simple scenario Task Flow
  • 25.  In one terminal do the following :  Make sure that you are on your home directory  Type : source fuerte_workspace/setup.bash  Type : roscd  Type : export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ardr one_autonomy  Type : export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ardr one_helpers  Type : export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/tum _simulator  Then You can start the simulator with one of flying scenarios:here How To Run The Scenario ?
  • 28.   In another terminal :  Make sure that you are on your home directory  Type : source fuerte_workspace/setup.bash  Type : roscd  Type : export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ardrone_autono my  Type : export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/ardrone_helper s  Type : export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/tum_simulator  Type : export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:`pwd`/tum_ardrone  Type : roslaunch tum_ardrone tum_ardrone.launch Run the tum_ardrone
  • 30.   Buttons  Manual Keyboard control  Manual Joystick control  Autopilot Now It’s the time of manipulating the drone
  • 31.   Buttons Land, Takeoff, Toggle Cam, Flat trim, Emergency (toggles emergency state). Buttons
  • 32.
  • 33.   KB control requires the GUI window to have focus, but NOT the upper-left text field (press ECS)  q,a: fly up & down.  i,j,k,l: fly horizontally.  u,o: rotate yaw.  F1: toggle emergency  s: takeoff  d: land  Focus the GUI window and press ESC to immediately enable KB control and set focus such that KB control works properly. This can be used for safety (autopilot does wired stuff -> press ESC and immediately take over, disabling the autopilot and enabling manual control). Keyboard
  • 34.   Joystick control requires a connected joystick and running rosrun joy joy_node. We use a PS3 six-axis controller.  left joystick is horizontal position control; right joystick is height and yaw control.  L1 to take off, release L1 to land.  R1 to toggle emergency state.  By moving any of the two joysticks, the Control Source is immediately sent to Joystick. This can be used for safety (autopilot does wired stuff -> immediately take over by hand, disabling the autopilot and enabling manual control). Joystick
  • 35.   Using the text-field on the left side, commands can be sent to the autopilot node, for example a given trajectory of way- points.  write commands in top-left text field (or load an example from one of the files). You can simply add .txt files to flightplans/.  click Send to transmit commands to the autopilot's command queue (automatically sets Control Source to Autopilot).  click Clear to clear autopilot command queue and current target.  click Reset to reset Autopilot, PTAM and EKF. Autopilot
  • 36.   # The output camera  rosrun image_view image_view image:=/ardrone/image_raw  # The front camera  rosrun image_view image_view image:=/ardrone/front/image_raw  # The buttom camera  rosrun image_view image_view image:=/ardrone/bottom/image_raw  # The height sensor  rostopic echo /sonar_height  #The navigation info  rostopic echo /ardrone/navdata Add items to the simulation environment
  • 37.   Nodes :  image_view: Simple image viewer for ROS sensor_msgs/Image topics.  disparity_view: Simple viewer for stereo_msgs/DisparityImage topics. Color-maps the disparity image for visualization.  stereo_view :Viewer for stereo images. Shows the synchronized left/right image pair and the disparity image (color-mapped) computed from them. image_view package
  • 38.
  • 40.   http://wiki.ros.org/ROS/Concepts  http://wiki.ros.org/fuerte/Installation/Ubuntu  http://wiki.ros.org/tum_ardrone  http://wiki.ros.org/tum_ardrone/drone_gui#Keyb oard_Control  wiki.ros.org/tum_simulator  http://wiki.ros.org/ROS/Tutorials Refrences