Quick Introduction to ROS

Slides:



Advertisements
Similar presentations
RPC Robert Grimm New York University Remote Procedure Calls.
Advertisements

TURTLEBOT ROBOTIC GUIDE. Project Description Teach a robot to guide a person to a predefined destination. General requirements: 1. Use a Turtlebot as.
Software Frameworks for Acquisition and Control European PhD – 2009 Horácio Fernandes.
Computer Science 162 Section 1 CS162 Teaching Staff.
Installing software on personal computer
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
SET UP COMPUTER ** PLEASE BE AWARE SCREENSHOTS MAY NOT MATCH **
INTERNATIONAL SUMMER ACADEMIC COURSE UNIVESITY OF NIS ISAC – Android programming.
Getting Started With Java Downloading and installing software Running your first program Dr. DwyerFall 2012.
11 Games and Content Session 4.1. Session Overview  Show how games are made up of program code and content  Find out about the content management system.
Multi-Robot Systems with ROS Lesson 1
Building a Real Workflow Thursday morning, 9:00 am Lauren Michael Research Computing Facilitator University of Wisconsin - Madison.
ORCA Robot Simulator HY-475 Autonomous Robot Navigation.
CHAPTER TEN AUTHORING.
S Robotic application of Human Hand Gesture Ali El-Gabri, Al-Noor Academy Nathaniel Mahowald, Mass Academy Grad Students: Dimitri Kanoulas and Andreas.
Ling Chen ( From Shanghai University 1.
Building a Real Workflow Thursday morning, 9:00 am Lauren Michael Research Computing Facilitator University of Wisconsin - Madison.
City College of New York 1 Player Stage Gazebo Rex Wong CCNY Robotic Lab A robotic research and development environment.
TODAY Android Studio Installation Getting started Creating your 1 st App Beginning to understanding Intents.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
ROBOTC for VEX Robotics (VEX IQ) On-Line Session 2014 My name is Jason McKenna I will be leading you through these sessions Teacher for 17 years Hopewell.
Review of PARK Reflectometry Group 10/31/2007. Outline Goal Hardware target Software infrastructure PARK organization Use cases Park Components. GUI /
Tinyos Introduction to Programming Pritee Parwekar.
Chapter 1: Introduction to Computers and Programming
CIS 375 Bruce R. Maxim UM-Dearborn
Android Mobile Application Development
Getting & Running EdgeX Docker Containers
Introduction to the ARM mbed Platform– A Hands-on Course
Jacob White and Andrew Keller
Development Environment
Jason Bury Dylan Drake Rush Corey Watt
Lesson Objectives Aims You should be able to:
Learning to Program D is for Digital.
CyVerse Discovery Environment
Data Virtualization Tutorial… CORS and CIS
Spark Presentation.
HOME AUTOMATION SYSTEM
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
What is ROS? ROS is an open-source robot operating system
Developing Artificial Intelligence in Robotics
Week 01 Comp 7780 – Class Overview.
Robotic Guidance.
Programmable Logic Controllers (PLCs) An Overview.
Multi-Robot Systems with ROS Lesson 2
TIGERBOT 2 REJUVENATION
- The Robot Operating System
Language Basics.
Mixed Reality Server under Robot Operating System
Trainings 11/18 Advanced Java Things.
Robotics and Perception
Topics Introduction Hardware and Software How Computers Store Data
GENERAL VIEW OF KRATOS MULTIPHYSICS
Simulink Support for VEX Cortex BEST Robotics Sandeep Hiremath
And I have to create mobile apps too?
NASA/ Johnson Space Center
Agile testing for web API with Postman
Remote Procedure Call Hank Levy 1.
Robotics and Perception
Robotic Perception and Action
An Introduction to Internetworking
Remote Procedure Call Hank Levy 1.
Robotic Perception and Action
HY-475 Autonomous Robot Navigation
Lecture 34: Testing II April 24, 2017 Selenium testing script 7/7/2019
Remote Procedure Call Hank Levy 1.
Message Passing Systems Version 2
Robot Operating System (ROS): An Introduction
DIBBs Brown Dog BDFiddle
Message Passing Systems
Presentation transcript:

Quick Introduction to ROS

Installing Ubuntu 14.04 1 Quick and painless with Virtualbox

Install Virtualbox Download Ubuntu 14.04 Install to a USB drive Open Virtualbox Install Virtualbox Download Ubuntu 14.04 Install to a USB drive

Time for a demo! Let’s install Ubuntu on a USB drive. I’ve uploaded a video of this to Youtube here: https://youtu.be/UGl0x2ZT_cI NOTE: use Ubuntu 14.04 NOT 16.04 as in video!!!!!!!!

What is ROS? 2 Getting started with the concepts

ROS is an open-source, meta-operating system for humanoid robots ROS is huge ROS is an open-source, meta-operating system for humanoid robots

Low-level device control Message passing between nodes What can ROS do? Hardware abstraction Low-level device control Message passing between nodes Sophisticated build environment Libraries Debugging and Visualization Tools Not really an operating system: really a set of tools message passing infrastructure: ROS is used to connect the various nodes that make up your typical robotic system debugging tools: ROS CLI (rosnode, rostopic, rosmsg, etc.), rqt_graph visualization: RVIZ, Gazebo, tf

ROS packages ROS messages ROS nodes ROS services ROS action servers What are the major concepts? ROS packages ROS messages ROS nodes ROS services ROS action servers ROS topics ...and many more!

Fast prototyping easier in a simulated world What can ROS do? Both based on ROS Research development Fast prototyping easier in a simulated world Transferring from simulated robot to real robot takes a bit of effort Not really an operating system: really a set of tools message passing infrastructure: ROS is used to connect the various nodes that make up your typical robotic system debugging tools: ROS CLI (rosnode, rostopic, rosmsg, etc.), rqt_graph visualization: RVIZ, Gazebo, tf

ROS Concepts 3 ROS is like HTTP but with extra steps

The ROS framework is component oriented ROS Nodes The ROS framework is component oriented Each component is called a node A node is a process Nodes communicate through topics, services, and actions

ROS Master sends/receives Several nodes at once ROS as a framework ROS Master sends/receives Several nodes at once Whole network on your computer

Kinect2 → /kinect2/images Publishes image messages What are messages? ROS as a framework cont. Kinect2 → /kinect2/images Publishes image messages What are messages?

So what does this mean? Hardware talks to drivers, which then talk to nodes, which then talks to ROS Nodes can run any software you want as long as it is a language ROS supports

Each node can listen on or publish messages to topics Built in message types (std_msgs) User defined messages Complex.msg float32 real float32 imaginary

All ROS messages are viewable

A node can provide services – synchronous remote procedure calls Request Response Add.srv #Example Service float32 x float32 y --- #Three dashes separate the request and response Float32 result

Can view all ROS services

Actions (asynchronous) are for long-running processes. Actions (actionlib) Actions (asynchronous) are for long-running processes. They have a Goal, Result, and Feedback Navigation.action #Example Action float32 dest_x float32 dest_y --- boolean success # Result uint32 percent_complete # Feedback

Can view all ROS actions

ROS software is organized into packages Each package contains some combination of code, data, and documentation package_name/ package.xml ← describes the package and it’s dependencies CMakeLists.txt ← Finds other required packages and messages/services/actions src/ ← C++, Python code (includes in include/ folder) scripts/ ← Python scripts for your node msg/ ← ROS messages defined for your node (for topics) srv/ ← ROS services defined for your node (for services) launch/ ← folder contains .launch files for this package

Catkin is the official build system of ROS Building/Running Catkin is the official build system of ROS Catkin combines Cmake macros and Python scripts to provide some functionality on top of Cmake’s normal workflow Run ROS code

Launch Files Automate the launching of collections of ROS nodes via XML files and roslaunch

You can also pass parameters via launch files

Command Line Tools

Rviz: Robot Visualization

Node Manager Fkie

Robots + ROS Your ROS Code Here Sensor Data Joint Trajectories

Robots available - Fetch Provides Data From (sensors): Depth camera Laser scanner Head camera Current Joint States ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES http://fetchrobotics.com/wp-content/uploads/2016/02/Fetch_spec_download_2016.pdf

Robots available - PR2 Provides Data From (sensors): Kinect Two Laser Scanners Multiple Cameras (head and hand cameras) Fingertip pressure sensor arrays (gripper) Current Joint States ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

More cost-effective Also has 2 arms Stationary base Sensors: Sonar Robots available - Baxter More cost-effective Also has 2 arms Stationary base Sensors: Sonar Hand and head cameras Hand rangefinders ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

I don’t have a Robot in front of me Robots in the wild - Problems I don’t have a Robot in front of me I want to try something that may break my Robot Setting up the Robot takes too much time, I want to test changes to my code quickly ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

Gazebo Simulator ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

Same interface as real Fetch, PR2 or Baxter Gazebo Simulator Same interface as real Fetch, PR2 or Baxter Add/remove items in environment Physics engine to simulate effects of motor commands and provide updated sensor feedback ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

Simulated Sensor Output Topics Gazebo Demo Add object to world Physics Simulated Sensor Output Topics ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

tf keeps track of all these frames over time. Moving the robot - TF A robotic system typically has many 3D coordinate frames that change over time. tf keeps track of all these frames over time. ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

Desired End Effector Pose Scene Returns: Moveit! Given: Current State of Arm Desired End Effector Pose Scene Returns: Trajectory to Move End Effector to Desired Pose ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

Moveit! Demo ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

Moveit! Provides a common interface to several different planners (mostly OMPL) Probabilistic Planners: will not return the same path every time and may not even find a path reliably. ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

MoveIt! for arm trajectories generation Moving the robot Several Interfaces: Base Motion Commands Gripper Commands Head Commands MoveIt! for arm trajectories generation ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

Lots of robots and objects Graspit! Grasp planner Lots of robots and objects ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

PlannerMug.xml Show virtual contacts Show EGPlanner, Energy functions Graspit! Demo PlannerMug.xml Show virtual contacts Show EGPlanner, Energy functions Simulated annealing Contact quality, Potential quality Semantics? ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

Check RVIZ to see if anything is wrong Debugging Tips Using Launch File output = “screen” Separate the specific node from launch and run it using roslaunch or rosrun Use node_manager Check RVIZ to see if anything is wrong Command line commands like rosnode etc can be very useful ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES

Reference class slides/codes provided Google it If you have a question Look in Tutorials: http://wiki.ros.org/ROS/Tutorials Reference class slides/codes provided Google it http://answers.ros.org/questions/ Ask a TA ONE SLIDE FOR PR2 AND BAXTER. ELIMINATE DUPLICATE SLIDES