SlideShare a Scribd company logo
1 of 50
Robotics Operating
System
Robotics Research tool
Agenda
● Introduction to ROS
● ROS Main Features
● ROS Main Concepts
● ROS Commands
● ROS Modeling Robot 3D
● Real World Applications
Introduction
Problem
● LackRobots
What is ROS?
ROS is an open-source robot operating system
● A set of software libraries and tools that help you
build robot applications that work across a wide
variety of robotic platforms.
● Originally developed in 2007 at the Stanford AI
Laboratory and development.
● Since 2013 managed by OSRF
(Open Source Robotics Foundation) .
ROS Main Features
ROS Main Features
Robots Supported By ROS
ROS Philosophy
● Peer to peer
Individual programs communicate over defined API
(ROS messages, services, etc.).
● Distributed
Programs can be run on multiple computers and communicate over
the network.
● Multi-lingual
ROS modules can be written in any language for which a client library
exists (C++, Python,
● MATLAB, Java, etc.).
● Light-weight
Stand-alone libraries are wrapped around with a thin ROS layer.
● Free and open-source
Most ROS software is open-source and free to use.
ROS Philosophy
● Peer to peer
Individual programs communicate over defined API (ROS messages,
services, etc.).
● Distributed
Programs can be run on multiple computers and communicate
over the network.
● Multi-lingual
ROS modules can be written in any language for which a client library
exists (C++, Python,
● MATLAB, Java, etc.).
● Light-weight
Stand-alone libraries are wrapped around with a thin ROS layer.
● Free and open-source
Most ROS software is open-source and free to use.
ROS Philosophy
● Peer to peer
Individual programs communicate over defined API (ROS messages,
services, etc.).
● Distributed
Programs can be run on multiple computers and communicate over
the network.
● Multi-lingual
ROS modules can be written in any language for which a client library
exists (C++, Python, MATLAB, Java, etc.).
● Light-weight
Stand-alone libraries are wrapped around with a thin ROS layer.
● Free and open-source
Most ROS software is open-source and free to use.
ROS Philosophy
● Peer to peer
Individual programs communicate over defined API (ROS messages,
services, etc.).
● Distributed
Programs can be run on multiple computers and communicate over
the network.
● Multi-lingual
ROS modules can be written in any language for which a client library
exists (C++, Python,MATLAB, Java, etc.).
● Light-weight
Stand-alone libraries are wrapped around with a thin ROS layer.
● Free and open-source
Most ROS software is open-source and free to use.
ROS Philosophy
● Peer to peer
Individual programs communicate over defined API (ROS messages,
services, etc.).
● Distributed
Programs can be run on multiple computers and communicate over
the network.
● Multi-lingual
ROS modules can be written in any language for which a client library
exists (C++, Python,MATLAB, Java, etc.).
● Light-weight
Stand-alone libraries are wrapped around with a thin ROS layer.
● Free and open-source
Most ROS software is open-source and free to use.
ROS Main Concepts
● ROS Master (Main node)
○ Manages the communication between nodes
○ Every node registers at startup with the master
ROS Main Concepts
● ROS Nodes
○ Single-purpose, executable program
○ Individually compiled, executed, and managed
○ Organized in packages
● Nodes are written using a ROS client library
○ roscpp – C++ client library
○ rospy – python client library
● Nodes can publish or subscribe to a Topic
ROS Main Concepts
● ROS TOPICS
○ A topic is a name for a stream of messages
with a defined type e.g., data from a laser
range-finder might be sent on a topic called
scan, with a message type of LaserScan
● Nodes communicate with each other by publishing
messages to topics
● Publish/Subscribe model: 1-to-N broadcasting
ROS Main Features
Working with 3D Robot Modeling in
ROS
what shall we do
we will cover the following topics:
● ROS packages for robot modeling
● Understanding robot modeling using URDF
● Creating the ROS package for the robot
description
what shall we do
we will cover the following topics:
● ROS packages for robot modeling
● Understanding robot modeling using URDF
● Creating the ROS package for the robot
description
ROS packages for robot
modeling
robot_model
● ROS has a meta package called
robot_model, which contains
● important packages that help
build the 3D robot models. We
can see all the
● important packages inside this
meta-package:
ROS packages for robot
modeling
robot_model
urdf
● important packages inside this
meta-package:
○ urdf: One of the important
packages inside the robot_model
meta package is urdf.
○ The URDF package contains a C++
parser for the Unified Robot
Description Format (URDF), which
is an XML file to represent a robot
model.
ROS packages for robot
modeling
robot_model
joint_state_publisher
● This tool is very useful
while designing
● robot models using URDF.
This package contains a
node called
● joint_state_publisher, which
reads the robot model
description,
ROS packages for robot
modeling
robot_model
joint_state_publisher
● finds all joints, and publishes
joint values to all nonfixed
joints using GUI sliders.
● The user can interact with
each robot joint using this tool
● and can visualize using RViz.
While designing URDF,
● the user can verify the rotation
and translation of each joint
using this tool.
ROS packages for robot
modeling
kdl_parser
● kdl_parser: Kinematic and
Dynamics Library (KDL) is an
ROS
● package that contains parser
tools to build a KDL tree from
the URDF representation.
● The kinematic tree can be used
to publish the joint states and
also to forward and inverse
kinematics of the robot.
ROS packages for robot modeling
robot_state_publisher
● robot_state_publisher: This
package reads the current robot
joint states
● and publishes the 3D poses of
each robot link using the
kinematics tree build from the
URDF.
● The 3D pose of the robot is
published as ROS tf
(transform).
● ROS tf publishes the
relationship between
coordinates frames of a robot.
ROS packages for robot modeling
xacro
● xacro: Xacro stands for (XML
Macros) and we can define how
xacro
● is equal to URDF plus add-ons.
It contains some add-ons to
make URDF
● shorter, readable, and can be
used for building complex robot
descriptions.
● We can convert xacro to URDF
at any time using some ROS
tools.
what shall we do
we will cover the following topics:
● ROS packages for robot modeling
● Understanding robot modeling using URDF
● Creating the ROS package for the robot
description
Understanding robot modeling
using
URDF
● The URDF can represent the
kinematic and dynamic
description of the robot,
● visual representation of the
robot, and the collision model of
the robot.
Understanding robot modeling
using
URDF
● The URDF can represent the
kinematic and dynamic
description of the robot,
● visual representation of the
robot, and the collision model of
the robot.
link
<link name="<name of the link>">
<inertial>...........</inertial>
<visual> ............</visual>
<collision>..........</collision>
</link>
● link: The link tag represents a
single link of a robot.
● Using this tag, we can model a
robot link and its properties.
The modeling includes size,
shape, color, and can even
import a 3D mesh to represent
the robot link.
● We can also provide dynamic
properties of the link such as
inertial matrix and collision
properties.
link
<link name="<name of the link>">
<inertial>...........</inertial>
<visual> ............</visual>
<collision>..........</collision>
</link>
● The following is a
representation of a single link.
● The Visual section represents
the real link of the robot, and
the area surrounding the real
link is the Collision section.
● The Collision section
encapsulates the real link to
detect collision before hitting
the real link.
Joint
<joint name="<name of the joint>">
<parent link="link1"/>
<child link="link2"/>
<calibration .... />
<dynamics damping ..../>
<limit effort .... />
</joint>
● joint: The joint tag
represents a robot joint.
● We can specify the
kinematics and dynamics of
the joint and also set the
limits of the joint movement
and its velocity.
● The joint tag supports the
different types of joints such
as revolute, continuous,
prismatic, fixed, floating, and
planar.
Joint
<joint name="<name of the joint>">
<parent link="link1"/>
<child link="link2"/>
<calibration .... />
<dynamics damping ..../>
<limit effort .... />
</joint>
● A URDF joint is formed
between two links; the first is
called the Parent link
● and the second is the Child
link.
● The following is an
illustration of a joint and its
link.
Robot
<robot name="<name of the robot>"
<link> ..... </link>
<link> ...... </link>
<joint> ....... </joint>
<joint> ........</joint>
</robot>
● robot: This tag
encapsulates the entire
robot model that can be
represented using
URDF.
● Inside the robot tag, we
can define the name of
the robot, the links, and
the joints of the robot.
Robot
<robot name="<name of the robot>"
<link> ..... </link>
<link> ...... </link>
<joint> ....... </joint>
<joint> ........</joint>
</robot>
● robot: This tag
encapsulates the entire
robot model that can be
represented using
URDF.
● Inside the robot tag, we
can define the name of
the robot, the links, and
the joints of the robot.
gazebo
● gazebo: This tag is used
when we include the
simulation parameters
of the Gazebo simulator
inside URDF.
gazebo
<gazebo reference="link_1">
<material>Gazebo/Black</material>
</gazebo>
● We can use this tag to
include gazebo plugins,
gazebo material properties,
and so on.
● The following shows an
● example using gazebo tags.
● We can find more URDF
tags at
http://wiki.ros.org/urdf/XM
L.
what shall we do
we will cover the following topics:
● ROS packages for robot modeling
● Understanding robot modeling using URDF
● Creating the ROS package for the robot
description
Create Package
Create Directories urdf launch
meshes
Create pan_tilt.urdf file
1 2
3
Check Urdf Code is right or not ?
Generate Graphically joints and links
View Graphically joints and links PDF
Create Launch Files inside launch
Directory
visual_myrobot.launch
Let’s Play with Rviz
Let’s Play with Rviz
Let’s Play with Rviz
Arm Robot Real World Application
Mobile Robot Real World Application
THANKS

More Related Content

Similar to Robotics Operating System Research Tool

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).pdfAmine Bendahmane
 
Copmuter Languages
Copmuter LanguagesCopmuter Languages
Copmuter Languagesactanimation
 
CodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labCodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labRon Munitz
 
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...Marcin Bielak
 
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabVoxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabRon Munitz
 
New c sharp4_features_part_vi
New c sharp4_features_part_viNew c sharp4_features_part_vi
New c sharp4_features_part_viNico Ludwig
 
Core java kvr - satya
Core  java kvr - satyaCore  java kvr - satya
Core java kvr - satyaSatya Johnny
 
Jab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealedJab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealedOfer Cohen
 
ROS_Course_Syllabus learning path for operating system
ROS_Course_Syllabus learning path for operating systemROS_Course_Syllabus learning path for operating system
ROS_Course_Syllabus learning path for operating systemNandhakumarNANDY1
 
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)Ofer Cohen
 
Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirHideki Takase
 
An introduction to the ruby ecosystem
An introduction to the ruby ecosystemAn introduction to the ruby ecosystem
An introduction to the ruby ecosystemGeison Goes
 
The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30Mahmoud Samir Fayed
 
Desarrollo de robots sociales con RoboComp - Dr. Pablo Bustos García de Castro
Desarrollo de robots sociales con RoboComp - Dr. Pablo Bustos García de CastroDesarrollo de robots sociales con RoboComp - Dr. Pablo Bustos García de Castro
Desarrollo de robots sociales con RoboComp - Dr. Pablo Bustos García de CastroFacultad de Informática UCM
 
The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31Mahmoud Samir Fayed
 
Robotic os (cheatsheet)
Robotic os (cheatsheet)Robotic os (cheatsheet)
Robotic os (cheatsheet)Jérémy Cohen
 

Similar to Robotics Operating System Research Tool (20)

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
 
Copmuter Languages
Copmuter LanguagesCopmuter Languages
Copmuter Languages
 
CodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering labCodeMotion tel aviv 2015 - android reverse engineering lab
CodeMotion tel aviv 2015 - android reverse engineering lab
 
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...
Let's build a robot with ROS - Internet of Things, Hardware & Robotics meetup...
 
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering LabVoxxed days Vilnius 2015 - Android Reverse Engineering Lab
Voxxed days Vilnius 2015 - Android Reverse Engineering Lab
 
New c sharp4_features_part_vi
New c sharp4_features_part_viNew c sharp4_features_part_vi
New c sharp4_features_part_vi
 
Simulating TUM Drone 2.0 by ROS
Simulating TUM Drone 2.0  by ROSSimulating TUM Drone 2.0  by ROS
Simulating TUM Drone 2.0 by ROS
 
Core java kvr - satya
Core  java kvr - satyaCore  java kvr - satya
Core java kvr - satya
 
Jab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealedJab12 - Joomla! architecture revealed
Jab12 - Joomla! architecture revealed
 
CORBA & RMI in java
CORBA & RMI in javaCORBA & RMI in java
CORBA & RMI in java
 
ROS_Course_Syllabus learning path for operating system
ROS_Course_Syllabus learning path for operating systemROS_Course_Syllabus learning path for operating system
ROS_Course_Syllabus learning path for operating system
 
Ros platform overview
Ros platform overviewRos platform overview
Ros platform overview
 
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)Joomla!Day Poland 2013 - Joomla Architecture  (Ofer Cohen)
Joomla!Day Poland 2013 - Joomla Architecture (Ofer Cohen)
 
Rclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet ElixirRclex: A Library for Robotics meet Elixir
Rclex: A Library for Robotics meet Elixir
 
An introduction to the ruby ecosystem
An introduction to the ruby ecosystemAn introduction to the ruby ecosystem
An introduction to the ruby ecosystem
 
ROS ROS
ROS ROSROS ROS
ROS ROS
 
The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30The Ring programming language version 1.4 book - Part 2 of 30
The Ring programming language version 1.4 book - Part 2 of 30
 
Desarrollo de robots sociales con RoboComp - Dr. Pablo Bustos García de Castro
Desarrollo de robots sociales con RoboComp - Dr. Pablo Bustos García de CastroDesarrollo de robots sociales con RoboComp - Dr. Pablo Bustos García de Castro
Desarrollo de robots sociales con RoboComp - Dr. Pablo Bustos García de Castro
 
The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31The Ring programming language version 1.4.1 book - Part 2 of 31
The Ring programming language version 1.4.1 book - Part 2 of 31
 
Robotic os (cheatsheet)
Robotic os (cheatsheet)Robotic os (cheatsheet)
Robotic os (cheatsheet)
 

Recently uploaded

Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxRamakrishna Reddy Bijjam
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfciinovamais
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdfQucHHunhnh
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSCeline George
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxAmanpreet Kaur
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...Poonam Aher Patil
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxDr. Sarita Anand
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsMebane Rash
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxEsquimalt MFRC
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the ClassroomPooky Knightsmith
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin ClassesCeline George
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxVishalSingh1417
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and ModificationsMJDuyan
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Association for Project Management
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxDenish Jangid
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfSherif Taha
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024Elizabeth Walsh
 

Recently uploaded (20)

Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Activity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdfActivity 01 - Artificial Culture (1).pdf
Activity 01 - Artificial Culture (1).pdf
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptxSKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
SKILL OF INTRODUCING THE LESSON MICRO SKILLS.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...Making communications land - Are they received and understood as intended? we...
Making communications land - Are they received and understood as intended? we...
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptxBasic Civil Engineering first year Notes- Chapter 4 Building.pptx
Basic Civil Engineering first year Notes- Chapter 4 Building.pptx
 
Food safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdfFood safety_Challenges food safety laboratories_.pdf
Food safety_Challenges food safety laboratories_.pdf
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 

Robotics Operating System Research Tool

  • 2. Agenda ● Introduction to ROS ● ROS Main Features ● ROS Main Concepts ● ROS Commands ● ROS Modeling Robot 3D ● Real World Applications
  • 4. What is ROS? ROS is an open-source robot operating system ● A set of software libraries and tools that help you build robot applications that work across a wide variety of robotic platforms. ● Originally developed in 2007 at the Stanford AI Laboratory and development. ● Since 2013 managed by OSRF (Open Source Robotics Foundation) .
  • 6. ROS Main Features Robots Supported By ROS
  • 7. ROS Philosophy ● Peer to peer Individual programs communicate over defined API (ROS messages, services, etc.). ● Distributed Programs can be run on multiple computers and communicate over the network. ● Multi-lingual ROS modules can be written in any language for which a client library exists (C++, Python, ● MATLAB, Java, etc.). ● Light-weight Stand-alone libraries are wrapped around with a thin ROS layer. ● Free and open-source Most ROS software is open-source and free to use.
  • 8. ROS Philosophy ● Peer to peer Individual programs communicate over defined API (ROS messages, services, etc.). ● Distributed Programs can be run on multiple computers and communicate over the network. ● Multi-lingual ROS modules can be written in any language for which a client library exists (C++, Python, ● MATLAB, Java, etc.). ● Light-weight Stand-alone libraries are wrapped around with a thin ROS layer. ● Free and open-source Most ROS software is open-source and free to use.
  • 9. ROS Philosophy ● Peer to peer Individual programs communicate over defined API (ROS messages, services, etc.). ● Distributed Programs can be run on multiple computers and communicate over the network. ● Multi-lingual ROS modules can be written in any language for which a client library exists (C++, Python, MATLAB, Java, etc.). ● Light-weight Stand-alone libraries are wrapped around with a thin ROS layer. ● Free and open-source Most ROS software is open-source and free to use.
  • 10. ROS Philosophy ● Peer to peer Individual programs communicate over defined API (ROS messages, services, etc.). ● Distributed Programs can be run on multiple computers and communicate over the network. ● Multi-lingual ROS modules can be written in any language for which a client library exists (C++, Python,MATLAB, Java, etc.). ● Light-weight Stand-alone libraries are wrapped around with a thin ROS layer. ● Free and open-source Most ROS software is open-source and free to use.
  • 11. ROS Philosophy ● Peer to peer Individual programs communicate over defined API (ROS messages, services, etc.). ● Distributed Programs can be run on multiple computers and communicate over the network. ● Multi-lingual ROS modules can be written in any language for which a client library exists (C++, Python,MATLAB, Java, etc.). ● Light-weight Stand-alone libraries are wrapped around with a thin ROS layer. ● Free and open-source Most ROS software is open-source and free to use.
  • 12. ROS Main Concepts ● ROS Master (Main node) ○ Manages the communication between nodes ○ Every node registers at startup with the master
  • 13. ROS Main Concepts ● ROS Nodes ○ Single-purpose, executable program ○ Individually compiled, executed, and managed ○ Organized in packages ● Nodes are written using a ROS client library ○ roscpp – C++ client library ○ rospy – python client library ● Nodes can publish or subscribe to a Topic
  • 14. ROS Main Concepts ● ROS TOPICS ○ A topic is a name for a stream of messages with a defined type e.g., data from a laser range-finder might be sent on a topic called scan, with a message type of LaserScan ● Nodes communicate with each other by publishing messages to topics ● Publish/Subscribe model: 1-to-N broadcasting
  • 16. Working with 3D Robot Modeling in ROS
  • 17. what shall we do we will cover the following topics: ● ROS packages for robot modeling ● Understanding robot modeling using URDF ● Creating the ROS package for the robot description
  • 18. what shall we do we will cover the following topics: ● ROS packages for robot modeling ● Understanding robot modeling using URDF ● Creating the ROS package for the robot description
  • 19. ROS packages for robot modeling robot_model ● ROS has a meta package called robot_model, which contains ● important packages that help build the 3D robot models. We can see all the ● important packages inside this meta-package:
  • 20. ROS packages for robot modeling robot_model urdf ● important packages inside this meta-package: ○ urdf: One of the important packages inside the robot_model meta package is urdf. ○ The URDF package contains a C++ parser for the Unified Robot Description Format (URDF), which is an XML file to represent a robot model.
  • 21. ROS packages for robot modeling robot_model joint_state_publisher ● This tool is very useful while designing ● robot models using URDF. This package contains a node called ● joint_state_publisher, which reads the robot model description,
  • 22. ROS packages for robot modeling robot_model joint_state_publisher ● finds all joints, and publishes joint values to all nonfixed joints using GUI sliders. ● The user can interact with each robot joint using this tool ● and can visualize using RViz. While designing URDF, ● the user can verify the rotation and translation of each joint using this tool.
  • 23. ROS packages for robot modeling kdl_parser ● kdl_parser: Kinematic and Dynamics Library (KDL) is an ROS ● package that contains parser tools to build a KDL tree from the URDF representation. ● The kinematic tree can be used to publish the joint states and also to forward and inverse kinematics of the robot.
  • 24. ROS packages for robot modeling robot_state_publisher ● robot_state_publisher: This package reads the current robot joint states ● and publishes the 3D poses of each robot link using the kinematics tree build from the URDF. ● The 3D pose of the robot is published as ROS tf (transform). ● ROS tf publishes the relationship between coordinates frames of a robot.
  • 25. ROS packages for robot modeling xacro ● xacro: Xacro stands for (XML Macros) and we can define how xacro ● is equal to URDF plus add-ons. It contains some add-ons to make URDF ● shorter, readable, and can be used for building complex robot descriptions. ● We can convert xacro to URDF at any time using some ROS tools.
  • 26. what shall we do we will cover the following topics: ● ROS packages for robot modeling ● Understanding robot modeling using URDF ● Creating the ROS package for the robot description
  • 27. Understanding robot modeling using URDF ● The URDF can represent the kinematic and dynamic description of the robot, ● visual representation of the robot, and the collision model of the robot.
  • 28. Understanding robot modeling using URDF ● The URDF can represent the kinematic and dynamic description of the robot, ● visual representation of the robot, and the collision model of the robot.
  • 29. link <link name="<name of the link>"> <inertial>...........</inertial> <visual> ............</visual> <collision>..........</collision> </link> ● link: The link tag represents a single link of a robot. ● Using this tag, we can model a robot link and its properties. The modeling includes size, shape, color, and can even import a 3D mesh to represent the robot link. ● We can also provide dynamic properties of the link such as inertial matrix and collision properties.
  • 30. link <link name="<name of the link>"> <inertial>...........</inertial> <visual> ............</visual> <collision>..........</collision> </link> ● The following is a representation of a single link. ● The Visual section represents the real link of the robot, and the area surrounding the real link is the Collision section. ● The Collision section encapsulates the real link to detect collision before hitting the real link.
  • 31. Joint <joint name="<name of the joint>"> <parent link="link1"/> <child link="link2"/> <calibration .... /> <dynamics damping ..../> <limit effort .... /> </joint> ● joint: The joint tag represents a robot joint. ● We can specify the kinematics and dynamics of the joint and also set the limits of the joint movement and its velocity. ● The joint tag supports the different types of joints such as revolute, continuous, prismatic, fixed, floating, and planar.
  • 32. Joint <joint name="<name of the joint>"> <parent link="link1"/> <child link="link2"/> <calibration .... /> <dynamics damping ..../> <limit effort .... /> </joint> ● A URDF joint is formed between two links; the first is called the Parent link ● and the second is the Child link. ● The following is an illustration of a joint and its link.
  • 33. Robot <robot name="<name of the robot>" <link> ..... </link> <link> ...... </link> <joint> ....... </joint> <joint> ........</joint> </robot> ● robot: This tag encapsulates the entire robot model that can be represented using URDF. ● Inside the robot tag, we can define the name of the robot, the links, and the joints of the robot.
  • 34. Robot <robot name="<name of the robot>" <link> ..... </link> <link> ...... </link> <joint> ....... </joint> <joint> ........</joint> </robot> ● robot: This tag encapsulates the entire robot model that can be represented using URDF. ● Inside the robot tag, we can define the name of the robot, the links, and the joints of the robot.
  • 35. gazebo ● gazebo: This tag is used when we include the simulation parameters of the Gazebo simulator inside URDF.
  • 36. gazebo <gazebo reference="link_1"> <material>Gazebo/Black</material> </gazebo> ● We can use this tag to include gazebo plugins, gazebo material properties, and so on. ● The following shows an ● example using gazebo tags. ● We can find more URDF tags at http://wiki.ros.org/urdf/XM L.
  • 37. what shall we do we will cover the following topics: ● ROS packages for robot modeling ● Understanding robot modeling using URDF ● Creating the ROS package for the robot description
  • 39. Create Directories urdf launch meshes
  • 41. Check Urdf Code is right or not ?
  • 43. View Graphically joints and links PDF
  • 44. Create Launch Files inside launch Directory visual_myrobot.launch
  • 48. Arm Robot Real World Application
  • 49. Mobile Robot Real World Application