an embedded computing platform for robots€¦ · microsoft robotics developer studio • provides...

15
An Embedded Computing Platform for Robots Steven Erdmanczyk

Upload: others

Post on 14-Oct-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

An Embedded Computing Platform for Robots

Steven Erdmanczyk

Page 2: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

Why A Robot Specific Platform?• Abstract tasks specific to robotics• Modularize tasks• Separate device level control from higher level abstract control• Separate device level control from higher level abstract control

2

Page 3: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

Already Existing Platforms• Microsoft Robotics Developer Studio• iRobot Create• ROS• ROS

3

Page 4: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

Microsoft Robotics Developer Studio• Provides Visual Programming Language• Supports C#, Visual Basic .NET, Jscript, and IronPython• 3D Simulating Environment

ComponentsComponents• CCR (Concurrency and Coordination Runtime)• DSS (Decentralized Software Services)• VPL (Visual Programming Language)• VSE (Visual Simulation Environment)

4

Page 5: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

iRobot Create• Specifically for robotics development• Centers around the iRoomba robot• Interfaces through a serial port on the robot• Interfaces through a serial port on the robot• Often an external computing platform is used

5

Page 6: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

6

Page 7: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

• Application Layer• High level layer where logic is written• API and drivers should be well encapsulated to allow• easy to understand flow at this level

• OS Layer• Handles management of data flow• coordinates tasks

• Processor• Processor• Handles processing of tasks• Provides hardware mechanisms for software• e.g. i2c, uart, pwm, procesing

• Device• Sensors, motors, communications interfaces

7

Page 8: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

ROS (R.obot O.perating S.ystem)• Open-Source meta-operating system• Provides

• hardware abstraction• hardware abstraction• low-level device control• implementation of commonly-used functionality • message-passing between processes• package management

• Also provides code libraries for writing code across multiple computers

• Not real-time, but can be integrated into real-time code

8

Page 9: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

Goals of ROS• Thin: Designed so that your main code can easily be

ported to other projects• Agnostic Libraries• Agnostic Libraries• Language Independence • Easy Testing: built-in unit/integration test framework

‘rostest’

9

Page 10: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

Three Levels of Concepts• File-system Level• Computational Graph Level• Community Level• Community Level

• Distributions• Repositories• Wiki

10

Page 11: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

Computational Graph Level• Nodes

• Processes that perform computation• Master

• Provides name registration and lookup• Parameter Server• Parameter Server

• Allows data to be stored at a central location• Messages

• Allows nodes to communicate• Topics

• Messages are sent via a transport system with publish/subscripe semantics

11

Page 12: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

Community Level• Distributions

• Similar to Linux distributions

• Repositories• Repositories• Different institutions can develop their own software components

• Wiki• Community wide documentation

12

Page 13: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

Higher Level Concepts• Coordinate Frames/Transforms• Actions/Tasks

• Topic based interface for preemptive tasks in ROS• Message Ontology• Message Ontology• Plugins

• Dynamically loading libraries in C++ code• Filters

• C++ library for processing data using filters• Robot Model

• Provides an xml format for representing a robot model

13

Page 14: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

Currently Available Stacks• 3d pipeline

• Algorithms and tools for dealing with 3D point cloud data from a variety of sensing devicesvariety of sensing devices

• arm navigation• Contains action/behavior used to execute collision free motion

planning and control for a robot arm manipulator

14

Page 15: An Embedded Computing Platform for Robots€¦ · Microsoft Robotics Developer Studio • Provides Visual Programming Language • Supports C#, Visual Basic .NET, Jscript, and IronPython

Example Libraries• Roscpp

• C++ library

• Rospy• Python Library• Python Library

• Rosoct• Library for Octave, an open source Matlab alternative

• OpenCV2• Open source computer vision library 2

15