Robot Operating System (ROS): An Introduction

Slides:



Advertisements
Similar presentations
Introduction to C++ An object-oriented language Unit - 01.
Advertisements

Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
LAMAD Symbian Qt install and deploy Installing Qt SDK and deploying Qt applications.
Teaching Assistant: Roi Yehoshua
Robot Operating System Tutorial ROS Basic
Teaching Assistant: Roi Yehoshua
Multi-Robot Systems with ROS Lesson 1
What is ROS? Robot Operating System
Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
GNU gcov (1/4) [from Wikipedia] gcov is a source code coverage analysis and statement- by-statement profiling tool. gcov generates exact counts of the.
Teaching Assistant: Roi Yehoshua
Teaching Assistant: Roi Yehoshua
CS 590 Programming Environments with UNIX. Computer Lab Account Course Homepage
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.
Teaching Assistant: Roi Yehoshua
City College of New York 1 Player Stage Gazebo Rex Wong CCNY Robotic Lab A robotic research and development environment.
Teaching Assistant: Roi Yehoshua
OCR GCSE Computing © Hodder Education 2013 Slide 1 OCR GCSE Computing Python programming 1: Introduction.
Wiimote/Kinect Lab Midterm Update Senior Design December 2011, Group 16 Adviser: Dr. Tom Daniels Brenton Hankins Rick Hanton Harsh Goel Jeff Kramer.
Underwater Network Localization Patrick Lazar, Tausif Shaikh, Johanna Thomas, Kaleel Mahmood University of Connecticut Department of Electrical Engineering.
1 MSTE Visual SourceSafe For more information, see:
Nir Mendel, Yuval Pick & Ilya Roginsky Advisor: Prof. Ronen Brafman
Ryan Rasmussen Maggie Krause Jiajun Yang. Hardware Progress Mechanical assembly complete Received APM case and power module last week Connected wi-fi.
Teaching Assistant: Roi Yehoshua
VTK Graphs Cmake & Git. Today’s Class Highlights from HW #1 This Week’s Readings Next Week’s Readings VTK Graphs Intro to Cmake Intro to Git.
Lecturer: Roi Yehoshua
SPiiPlus Training Class
Lecturer: Roi Yehoshua
Lecturer: Roi Yehoshua
Lecturer: Roi Yehoshua
Lecturer: Roi Yehoshua
Lecturer: Roi Yehoshua
Lecturer: Roi Yehoshua
L – Modeling and Simulating Social Systems with MATLAB
ROSLab: a High Level Programming Language for Robotic Applications
Introduction to .NET Core
MATLAB Basics Nafees Ahmed Asstt. Professor, EE Deptt DIT, DehraDun.
MPI Message Passing Interface
Concurrent Version Control
What is ROS? ROS is an open-source robot operating system
Developing Artificial Intelligence in Robotics
PostgreSQL Database and C++ Interface (and Midterm Topics)
Mobile Application Development with MeeGo™ - Programming with SDK
ROSLab: A High-level Programming Environment for Robotic Co-design
Multi-Robot Systems with ROS Lesson 2
TIGERBOT 2 REJUVENATION
- The Robot Operating System
An Introduction to Java – Part I, language basics
Mixed Reality Server under Robot Operating System
The Designer.
Robotics and Perception
CS791v Homework and Submission
Quick Introduction to ROS
Robotics and Perception
Robotic Perception and Action
Robotic Perception and Action
Robotic Perception and Action
C call R Using .R file in C T. B. Chen in NCTU 2019/5/29.
VERSION CONTROL SVN (SubVersioN)
MPI Message Passing Interface
Presentation transcript:

Robot Operating System (ROS): An Introduction Paul Nyholm David Wheeler BYU MAGICC Lab Brigham Young University

Exploration Path Planner Motivation Robot 1: Mission Statement Using an altimeter, Xbox Kinect, and IMU, safely drive through a room creating a map of the environment. Kinect Map Exploration Path Planner Altimeter Estimator IMU Robot Control

Motivation Robot 2: Mission Statement Using an laser range finder, GPS, and IMU, safely fly to specific user defined waypoints and search for moving vehicles. Vehicle Detection Laser Global Map Waypoint GUI GPS Estimator IMU Robot Control

Motivation ROS: High Modularity Follows Intuitive Information Flow

Exploration Path Planner Concept ROS Node ROS Message Independent Python or C++ programs. Node crash protection. Inter-program communication. Subscriber Publisher Kinect Map Exploration Path Planner Altimeter Estimator IMU /topic_name Robot Control

Concept Subscriber Example: #include "ros/ros.h" #include "std_msgs/String.h“ void chatterCallback(const std_msgs::String::ConstPtr& msg) { ROS_INFO("I heard: [%s]", msg->data.c_str()); } int main(int argc, char **argv) ros::init(argc, argv, "listener"); ros::NodeHandle n; ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback); ros::spin(); return 0;

Concept Publisher Example: #include "ros/ros.h" #include "std_msgs/String.h" #include <sstream> int main(int argc, char **argv) { ros::init(argc, argv, "talker"); ros::NodeHandle n;. ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000); ros::Rate loop_rate(10); int count = 0; while (ros::ok()) std_msgs::String msg; std::stringstream ss; ss << "hello world " << count; msg.data = ss.str(); ROS_INFO("%s", msg.data.c_str()); chatter_pub.publish(msg); ros::spinOnce(); loop_rate.sleep(); ++count; } return 0;

Concept roscore my_talker rosrun talker my_talker chatter:=new_chatter_topic altimeter roslaunch rosrun altimeter my_altimeter range:=range_topic Estimator rosrun estimator my_estimator alt_topic:=range_topic estimate:=current_estimate

Exploration Path Planner Concept Define one node at a time using message interface Blackbox everything else Subscriber Publisher Kinect Map Exploration Path Planner Altimeter Estimator IMU /topic_name Robot Control

Tools ROS offers many built in tools that are helpful for collecting, visualizing, and processing data rqt suite rosbag tf rviz wstool

Tools rqt_graph Gives a graphical representation of the active nodes and topics

Tools rqt_plot Plots incoming messages on specified topics

Tools rqt_bag & rosbag rosbag records (subscribes to) specified topics and makes them available for playback (publishing) useful for analysis and simulation chatter IMU commands states goal chatter IMU commands states goal rosbag record topic_name rosbag play bagfile.bag

Tools rqt_bag GUI access to rosbag Selectively publish topics

Tools TF Keeps track of coordinate frames and transformations Lookup transformations between different frames at specified times (including the past) Does the math for you!!!

Tools rviz Visualize coordinate frames, point clouds, paths, goals, models, and much more

Useful wstool commands Free Version Control Sources Tools wstool ROS tool to manage various version control sources supports git, mercurial, subversion, bazaar Useful wstool commands wstool update wstool status wstool diff wstool info Free Version Control Sources github.com bitbucket.com google it

Setup Ubuntu 12.04 LTS (www.ubuntu.com) ROS Hydro (www.ros.org)

Setup catkin workspace high level build manager where your source code (packages) lives cmake lower level build manager creates your .make file catkin_ws/ build/ devel/ src/ CMakeLists.txt (never touch this) package_one/ CMakeLists.txt (must be modified) package.xml msg/ msg1.msg msg2.msg source1.cpp source2.cpp include/ header.h package_two/ …

Setup Qt Creator Qt is a power, easy to use IDE for C++ projects Can be used for programming catkin packages Installation on Ubuntu: $ sudo apt-get install qtcreator Opening Catkin Workspace with Qt Creator: $ cd ~/catkin_ws/src $ qtcreator CMakeLists.txt It is easiest to run this from the command line so that Qt Creator has access to your required environment variables