the robot operating system ecosystem and python

Post on 21-Jun-2015

3.265 Views

Category:

Technology

8 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

The Robot Operating System ecosystem andPython

Esteve FernandezOpen Source Robotics Foundation

esteve@apache.org

esteve@osrfoundation.org

PyBCN, Barcelona, January 16th, 2014

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

Introduction

ROS

Gazebo

DARPA Urban Challenge

DARPA Robotics Challenge

CloudSim

Questions

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

Introduction

How it all started

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

Willow Garage

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

PR2

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

PR2: features

• Two arms with 7 degrees of freedom

• 5 megapixel camera

• Laser range finder

• Inertial measurement unit

• Two 8-cores processors

• 48 Gb of RAM

• Free software

• Pricetag: $400,000

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

ROS: robots

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

ROS: features

• ROS (Robot Operating System)

• BSD license

• Service-oriented components middleware

• Multiple language support: Python, C++, Java, Ruby andmany others

• Support for a wide range of drivers and robots

• Originally developed by Willow Garage

• Open Source Robotics Foundation now leads the developmentof ROS

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

ROS: example (I)

1 import roslib; roslib.load_manifest(’rospy_tutorials’)

2

3 import rospy

4 from std_msgs.msg import String

5

6 def talker():

7 pub = rospy.Publisher(’chatter’, String)

8 rospy.init_node(’talker’, anonymous=True)

9 r = rospy.Rate(10) # 10hz

10 while not rospy.is_shutdown():

11 str = "hello world %s"%rospy.get_time()

12 rospy.loginfo(str)

13 pub.publish(str)

14 r.sleep()

15

16 if __name__ == ’__main__’:

17 try:

18 talker()

19 except rospy.ROSInterruptException: pass

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

ROS: example (II)

1 import roslib; roslib.load_manifest(’rospy_tutorials’)

2

3 import rospy

4 from std_msgs.msg import String

5

6 def callback(data):

7 rospy.loginfo(rospy.get_caller_id()+"I heard %s",data.data)

8

9 def listener():

10 rospy.init_node(’listener’, anonymous=True)

11

12 rospy.Subscriber("chatter", String, callback)

13

14 rospy.spin()

15

16 if __name__ == ’__main__’:

17 listener()

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

ROS: example (III)

1 #!/usr/bin/env python

2

3 from beginner_tutorials.srv import *

4 import rospy

5

6 def handle_add_two_ints(req):

7 print "Returning [%s + %s = %s]"%(req.a, req.b, (req.a + req.b))

8 return AddTwoIntsResponse(req.a + req.b)

9

10 def add_two_ints_server():

11 rospy.init_node(’add_two_ints_server’)

12 s = rospy.Service(’add_two_ints’, AddTwoInts, handle_add_two_ints)

13 print "Ready to add two ints."

14 rospy.spin()

15

16 if __name__ == "__main__":

17 add_two_ints_server()

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

ROS: example (and IV)1 #!/usr/bin/env python

2 import roslib; roslib.load_manifest(’beginner_tutorials’)

3 import sys

4 import rospy

5 from beginner_tutorials.srv import *

6

7 def add_two_ints_client(x, y):

8 rospy.wait_for_service(’add_two_ints’)

9 try:

10 add_two_ints = rospy.ServiceProxy(’add_two_ints’, AddTwoInts)

11 resp1 = add_two_ints(x, y)

12 return resp1.sum

13 except rospy.ServiceException, e:

14 print "Service call failed: %s"%e

15

16 if __name__ == "__main__":

17 x = int(sys.argv[1])

18 y = int(sys.argv[2])

19 print "Requesting %s+%s"%(x, y)

20 print "%s + %s = %s"%(x, y, add_two_ints_client(x, y))

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

ROS: future

• ROS 2.0 will support more use cases

• Easier multi-robot architecture

• Learn from previous decisions

• Unification of the ROS master and nodes protocols

• Reduce code maintenance

• Better integration with other robotics frameworks

• Improve support for embedded devices

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

Gazebo: features

• Apache 2.0 license

• Multi-robot simulator

• Included models: PR2, Turtlebot, iRobot Create, etc.

• Support for several types of sensors

• Pluggable and extendable to add more components and robotmodels: REEM, Robonaut, etc.

• Client-server model

• Originally developed by USC and Willow Garage

• Open Source Robotics Foundation now leads the developmentof Gazebo

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

Gazebo: current state

• Gazebo 2.0 just released (current version 2.1)

• Better integration with ROS

• Included improvements made for the DRC

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

DARPA Urban Challenge

• Competitions in 2004, 2005 and 2007

• Goal: build a self-driving car

• Teams built their own car and the software

• Winner received $2M

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

DARPA Robotics Challenge

• Goal: advance in the development of rescue robots (fires,earthquakes, floods, etc.)

• Teams from all over the world can use a model provided byDARPA (Atlas) or build their own

• First phase (Virtual Robotics Challenge, June 2013)completely simulated, 26 qualified for the VRC

• The 7 best VRC competitors received a real Atlas robot andadditional funding from DARPA

• Second phase in Miami (December 2013), with real robots

• Winner will receive $2M (December 2014)

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

DARPA Robotics Challenge: tasks

• Drive a utility vehicle at the site

• Travel dismounted across rubble

• Remove debris blocking an entryway

• Open a door and enter a building

• Climb an industrial ladder and traverse an industrial walkway

• Use a tool to break through a concrete panel

• Locate and close a valve near a leaking pipe

• Connect a fire hose to a standpipe and turn on a valve

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

CloudSim: features

• Web application to manage robot simulations in the cloud

• Written in Python and Javascript

• Apache 2.0 license

• Support for several clouds: Amazon Web Services, Softlayerand Openstack

• Integrated with ROS and Gazebo

• Supports deploying several constellations (simulator +monitor, simulator, etc.)

• Developed by Open Source Robotics Foundation

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

CloudSim: use cases

• Educational robotics

• Simulator in the browser

• Robotics competitions

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

More information

• ROS http://ros.org

• Gazebo http://gazebosim.org

• CloudSim http://gazebosim.org/wiki/CloudSim

• DARPA Robotics Challengehttp://theroboticschallenge.org

• Boston Dynamics http://bostondynamics.com

• Open Source Robotics Foundationhttp://osrfoundation.org

• Willow Garage http://willowgarage.com

Introduction ROS Gazebo DARPA Urban Challenge DARPA Robotics Challenge CloudSim Questions

Questions

Thanks for your attention

esteve@osrfoundation.org

esteve@apache.org

Twitter: @esteve

top related