ros-industrial community forum 12-5-13
DESCRIPTION
Virtual community meeting for the ROS-Industrial open source project: http://rosindustrial.orgTRANSCRIPT
ROS-Industrial Forum
December 5th, 2013
Attendee Sound(Chat) Off
• Send a chat message to everyone with:– Your Name / Company / Developer or User or
Watcher– E.g.: Clay Flannigan / SwRI / Developer
Managed by: Southwest Research Institute
3
Clay FlanniganManager, Robotics & Automation Engineering
Southwest Research Institute6220 Culebra Rd.San Antonio, TX 78251US
Phone: 210-522-6805Email: [email protected]
http://swri.org
http://robotics.swri.org
Contact Information
6 March 2013
Logistics
• Your microphone or telephone is muted• During Q&A, you can unmute (click on
microphone) or use the chat window• Majority of meeting will be presentations with
time for open discussion at end• Send us a chat message if you can’t hear or see
the content• Meeting is RECORDED• Slides will be shared after the meeting
Agenda
• 10:00 – 10:10 – Introduction (Shaun Edwards – SwRI)
• 10:10 – 10:35 – BRIDE Presentation (Alexander Bubeck – Fraunhofer IPA)
• 10:35 – 11:10 – Contributions/Wishlist (Community, 4 min/presenter)
• 11:10 – 11:30 – General discussion and Q&A (Shaun Edwards – SwRI)
Motivation
• Gather the community• Open the lines of communications• Promote others contributions• Discuss technology needs• Disseminate information• Answer questions
ROS-Industrial
ROS-Industrial is an open-source project that extends the advanced
capabilities of the Robot Operating System (ROS) software
to new industrial applications.
ROS-Industrial Program:• Is supported by a community of industrial
robotics researchers and professionals.• Provides a one-stop location for industry-
related ROS software.• Possesses software robustness and reliability
that meets the needs of industrial applications.
• Does not replace any one technology entirely, rather it combines the relative strengths of ROS and existing technology
• Stimulates the development of hardware-agnostic software by standardizing interfaces.
• Provides an "easy" path to apply cutting-edge research to industrial applications by using a common ROS architecture.
• Provides simple, easy-to-use, well-documented application programming interfaces.
DATA FOR 1993 FROM IFR STATISTICS. DATA FOR 2003 AND 2013 FROM RIA STATISTICS
For more information:• “What Can ROS do?” - http://www.youtube.com/watch?v=5zO46F1xEzk• “1 Year Montage” - http://www.youtube.com/watch?v=Ek8GKqmJ7n0
Managed by: Southwest Research Institute
8
ROS-Industrial Stats (10/13)
23 October 2013
ROSindustrial.org Traffic(Since July move to new site)
ROS-Industrial Repository Stats(source: https://www.ohloh.net/p/ros-industrial )
• 32 total contributors• 94,870 lines of code• 27% comments
Other Media Stats• 50,030 YouTube views• 213 Twitter followers• 164 user group members• 29 related press articles
1,000
500
0
Why BRIDE?Current ROS-I Required Skills1. Bash scripts/Linux
command line2. ROS command line3. C++/Python4. Launch files5. Configuration files:
rviz, SRDF, URDF, YAML
6. Doxygen7. Moin markup for the
Wiki8. Version Control/Git9. IDE (e.g. Eclipse)10. CAD
Future ROS-I Required Skills
1. GUI Interaction2. Python Scripting
(for the hard stuff)
BRIDE
Alexander Bubeck – Fraunhofer IPA
© Fraunhofer IPA
ROS-Industrial Quarterly Community Meeting December 5, 2013
Alexander Bubeck
Improve your ROS code with Model-Driven-Engineering and save development time while doing it
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA12
Current challenges in the ROS communitySoftware quality and reuse
Reuse … Understandable code … Standards / Best practices … Learning curves … Fast releases … Distributed development …
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA13
Model driven engineeringIn a nutshell
M3 Meta-Meta-Model• Mechanisms to describe
component frameworks
M2 Meta-Model• Model of a component framework
M1 Model• Models of components or systems
M0 Implementation• Implementation of specific
components
Development and use of domain models to represent abstract knowledge to
Encapsulate complexity Differentiate user roles Enforce architectures Support reuse
Object management group defines multi-layer architecture
MOF
UML
Model ofclass
Code
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA14
Software engineering in roboticsTransfer of MDE to ROS
UML
Ecore
SysML model
ROS Component
OROCOS Conponent
SysML
M3
M2
M1
M0
ROS model OROCOS model
OROCOSDSL
ROS DSL
M2T M2T
M2M M2M
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA15
Software engineering in roboticsSeparation of concerns
Behavior of components correspond to specific concerns of a developer
Concerns for software components:
Reuse of software means exchange or modification of specific concerns
Separation of concerns improves reuse
Computation
Communication
Coordination
ConfigurationCom
posi
tio
n
Computation
Communication
Coordination
ConfigurationCom
posi
tio
n
Sick laser scanner
Leuze laser scanner
reuse
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA16
Software engineering in roboticsDifferent types of ROS users
Domain expert
System integrator
Application engineer
End user (WIP)
Architect (SysML)
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA17
BRIDE – An Eclipse based MDE-toolchain for ROSOverview
The BRICS IDE (BRIDE) is an Eclipse distribution including: Graphical model editors for different developer roles in a ROS
development
Automatic generation of C++ or Python ROS nodes Launch files configuring ROS topics, services and parameters
Separation of ROS independent user code and ROS skeletons Integration with Eclipse development environments for C++ and
python (CDT and pydev)
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA18
BRIDE – An Eclipse based MDE-toolchain for ROSImplementation of MDE in BRIDE
Ecore
ROS components
(C++, python)
M3
M2
M1
M0
ROS capability model
ROS DSLROSMSG
DSLSMACH
DSL
ROS system model
ROS coordinator
model
ROS capability editor
ROS system editor
ROS coordinator
editor
ROS launch files
ROS yaml configuration
files
SMACH python state machines
M2T M2T M2T
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA19
BRIDE – An Eclipse based MDE-toolchain for ROSWork flow in practice
Capability building System deployment Coordination building
Model driven engineering work flow in practice
Computation
Communication
Coordination
ConfigurationCom
posi
tion
Computation
Communication
Coordination
ConfigurationCom
posi
tion
Computation
Communication
Coordination
ConfigurationCom
posi
tion
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA20
BRIDE – An Eclipse based MDE-toolchain for ROSExamples
Capability editing System editing Coordinator editing
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA21
Further featuresTextual workflow + graphical configuration
• What about textual workflows?• Standalone M2T compilers• Xtext based DSL’s• Integration into the rosbuild system
(catkin wip)
• Teaching of application configuration• Graphical configuration of application
during modeling of coordinator• Example: “touch-up” of MoveIt! targets
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA22
Further workRoundtripping + more
Roundtripping WIP (working for rospy): Generating AST based on python-ast and clang Parsing of AST for roslib calls Generation of DSL based on AST
Web-based editors
Automated test generation
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA23
Current challenges in the ROS communitySoftware quality and reuse -- Recap
Reuse components by adapting Understandable code is created because crosscutting concerns
are separated and the component models document the structure of a ROS node
Standards / Best practices can be enforced by reuse of models Learning curves change because beginners don’t fight with
boost pointers etc. Fast releases can be handled by updating the code templates Distributed development is endorsed by communicating with
models
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA24
SummaryBRIDE for ROS development
Separation of concerns, user roles and code can improve reusability and quality of software components
BRIDE, a model driven engineering tool chain, disseminates these Software Engineering techniques in the ROS community
Current released version 0.2: Capability Development and
System Deployment Coordinator Development Standalone compiler
BRIDE for ROS: http://wiki.ros.org/bride sudo apt-get install ros-groovy-bride
Contact:Alexander [email protected]: +49 711 970 1314
Acknowledgement to the project FP7-ICT-231940-BRICS (Best Practice in Robotics) www.best-of-robotics.org
ROS-Industrial Quarterly Community Meeting, December 5, 2013
© Fraunhofer IPA25
BRIDE for ROS development
Q & A
Example video of developing a component: http://vimeo.com/63575691
Contributions & Wish List
Logistics
• Purpose is to promote a contribution and/or engage the community to meet a need
• Each person has 4 min. to present (I will be strict) – The Gettysburg address wasn’t much longer
• Contact slide will be presented last• No Q&A, interested parties are encouraged to
follow up outside of the meeting.
Presenter Order
• Yaskawa Motoman- Eric Marcil• Caterpillar - Joe Spanier • Canada NRC- Jason Michel Lambert• Delft Robotics Institute - Gijs vd Hoorn (Presented by Shaun
Edwards) • Fraunhofer IPA – Florian Weisshardt • Los Alamos National Laboratory – Brian O’Neil• Alten Mechatronics – Simon Jansen• Georgia Tech - Kelsey Hawkins
YASKAWA MOTOMAN- ERIC MARCIL
30
Contact Info.
4 June 2013
Eric MarcilSenior Project Engineer
Yaskawa America Inc.Motoman Robotic Division
Phone: 514-693-6788
Email: [email protected]
www.motoman.com
CATERPILLAR - JOE SPANIER
Need
• Point Creation in MoveIt!• Ability to create goal points in
space based on coordinates or clicking on geometry in Move it
• Currently able to create joint positions in MoveIt! Setup wizard, but is clunky and not useful for any hard points where fine positioning is needed. – Staple function in traditional OLP
• Simple point to point programming for controlled processes
Need
• Keyence LJ-V Laser scanner Driver• Driver to take data input from
Keyence sensor and compile it into surface data that can be used to make decisions on the process
• No Driver implementations available atm.
• Current data processing done in Keyence’s box but raw data output available
• Would like enable:– On the fly decision about weld
processing– Automated quality checks – Elimination of touch sensing for
welding
34
Contact Info.
4 June 2013
Joe SpanierAutomation Engineer
Caterpillar Inc
Phone: 309-494-0494
Email: [email protected]
CANADA NRC- JASON MICHEL LAMBERT
Contribution – Canada NRC
• Hardware-In-The Loop environment for haptic teleoperation
• SW/HW environment for prototyping collaborative manufacturing tasks– Contact-related tasks– Tasks requiring empirical knowledge– E.g. Deburring/polishing, assembly
• Bridges the gap between manual and fully automated robotic cells– Keeps experts in the loop– Broadens the range of applicability– Programming and execution
Contribution – Canada NRC
• Provides and environment that combines virtual and hardware elements– HIL– Flexibility, fast prototyping
• Medium/long term (2-5 yrs)• Availability
– Low-level modules part of ROS-I– Application-specific through
licensing– Components of robot
manufacturing cells
Need – Canada NRC
• Real-time interface• Integrated package for
real-time communication with ROS-I and associated components (MoveIt, Gazebo)
• Compatibility with graphical simulation software e.g. Simulink
• Most of the building blocks already exists (need HW interfaces)
Need – Canada NRC
• Would enable– Development of real-time components
• Dynamics• Control
– Interaction with industrial manipulators at the ms-level (KUKA, Comau…)
– Use of high-level tools for control/algorithm development
– Brings ROS-I closer to the shop floor
40
Contact Info.
4 June 2013
Jason Michel LambertResearch Officer, Robotics and Automation
Canada’s National Research Council
Phone: 514.283.9175Email: [email protected]
www.nrcaerospace.com
DELFT ROBOTICS INSTITUTE - GIJS VD HOORN (PRESENTED BY SHAUN EDWARDS)
Contributions
Current:• Fanuc & experimental stack
– Support packages (urdf, meshes, config)
– MoveIt configurations– Kinematics plugins
• Wireshark dissector simple_message protocol
• Fixing bugs, contributing to other ROS-I projects
Future:• Improve fanuc_driver (ongoing)• REP: Standardizing repository
layout and artefact naming• REP: Generic IO (and reference /
Fanuc implementation)• Expand set of ROS-I supported
manufacturers• Fixing bugs, contributing to
other ROS-I projects
Need
• Joint torque / tool force feedback– Make it possible to measure / report forces on the TCP /
tool– Currently no support in simple_message protocol– Also needs manufacturer controller support– Allows:
• Non-vision based collision handling / teach in / by example• Applications where tool needs controlled contact with a surface
(or other tool), ie: glueing, scratching, multi-arm manipulation of objects (holding a box)
Need
• Tool velocity control– Make it possible to control Cartesian tool velocity– Currently no standardized support– Allows: visual servoing types of tasks with any ROS-I
compatible manipulator
45
Contact Info
4 June 2013
Gijs vd HoornResearcher
Delft Robotics Institute
Technical University Delft
The Netherlands
GitHub: gavanderhoornEmail : [email protected]
robotics.tudelft.nl
FRAUNHOFER IPA – FLORIAN WEISSHARDT
Factory-in-a-Day
• Project goal: “Develop technologies and business models to reduce the installation time (and the related cost) from months to one single day.”
• 18 partners ranging from research institutions and universities to small and medium-sized companies and industrial partners
• Project funded by European Union (EU-FP7), around 8M€ Budget• More details and list of partners at http://www.factory-in-a-day.eu
Needs
• Integrated tool chain for developing, testing, installing and deploying SW components
Continuous integration and automated testing
SW components, tools
SW components, tools, quality metrics
Model-Driven Engineering
Contribution
• Unified Model-Driven-Engineering Toolchain for– component development– System integration– Automated testing– deployment
• Release date: – Working prototype:
June 2014– First Released Prototype: October 2014– Final: October 2015
• Will be open sourced within ROS Industrial under BSD license
51
Contact Info
4 June 2013
Florian WeisshardtFraunhofer IPAStuttgart, Germany
Phone: +49 711 970 1046
Email: [email protected]
http://www.ipa.fraunhofer.de
<Your pic here>
LOS ALAMOS NATIONAL LABORATORY – BRIAN O’NEIL
53
Contact Info.
4 June 2013
Brian O’NeilPostdoctoral Research Associate
Los Alamos National Laboratory
Phone: 505-667-9322Email: [email protected]
ALTEN MECHATRONICS – SIMON JANSEN
Contribution
• RQT plugin for industrial operators:
Integrated RVIZ window
Select Robot Model
Tool for graphical debugging
Select launch files and edit parameters
Contribution
• Combines & expands existing plugins to make ROS usable for industrial operators (rather than ROS developers)
• Edit and save parameters in launch files• Easy (graphical) selection of robot model
• Release date: Beginning 2014• Seperate RQT plugin• Further ambitions: use ROS for assembly tasks and
imitation learning
Needs
• Support for dual-arm robots Planning Execution
• Expand/create simple message protocol to include standardized interface for I/O devices on robot motion controllerGripperConveyorProximity sensor
• Quantitative measure of code quality (demand of industry)
Contact Info.4 June 2013
58
Berend KüpersSimon JansenSonja Peters
Alten Mechatronics
Phone: +31 (0)40 256 30 80Email: [email protected]
GEORGIA TECH - KELSEY HAWKINS
Universal Robot C API Drivers
• Alternative to existing python drivers– Faster control loop (125 Hz)– More functionality exposed
• Exposed control modes– Velocity control– Position/Velocity/Acceleration– Torque control (TBA)
• Useful for sensor-based control– Fast and direct closed loop– Force control
• First alpha release today– Support release over next few months– Add new functionality/controllers as needed
• Same repo, hydro-devel-c-api branch– https://
github.com/ros-industrial/universal_robot/tree/hydro-devel-c-api
• Tutorial code: http://wiki.ros.org/ur_c_api_bringup
C API System Design
C API System Design
• Control loop wrapper running on control box– Sockets communication w/
simple_message• UR ROS master controller manager
– Off-robot, ROS-enabled machine– Mediates communication b/w ROS and
robot• ros_control framework
– Interfaces for joint actuation modes (velocity, torque, etc.)
– Controllers are plugins, read/command interfaces
• Controller plugins– Communicate w/ ROS through action
servers, topics, services– Loaded into real-time loop using
controller_manager
C API System Design
• Controller manager lets you load, start, stop, unload controllers– ROS services, cmd line utility
• Several default controllers already written– Joint trajectory controller– Velocity forward– Position/Velocity/Acceleration forward– Various ROS communication controllers
• rqt plugins for starting robot/joint control– *Can’t use tablet interface to control robot*
(can use run stop)– UR Dashboard – buttons for powering on
robot, resetting safety stop, viewing robot state
– UR Joint Control GUI – moving joints, reading positions, viewing state
– Very useful for calibration process
C API Needs
• Initial testing and bug finding• Need new controllers written
– Position/Velocity/Acceleration joint trajectory controller
– Torque controllers– Better velocity controllers
• Tutorials for writing controllers• Code cleanup, better
documentation• Joint limits for controller interfaces• Backend controller needs some
development– Not all functionality exposed yet
(low-level debug info)
• Expand python helper functionality
• Integrate some controllers into official ros_controllers repo
65
Contact Info.
4 June 2013
Kelsey HawkinsRobotics PhD Student
Georgia Tech
Phone: 919-280-5739Email: [email protected]
kelseyhawkins.com
<Your pic here>
General Discussion
ROS-I Survey Results
What do you like about ROS-I? What could be improved?
You can still respond! http://www.surveymonkey.com/s/XRKNVMK
ROS-I Update
• Training material - http://aeswiki.datasys.swri.edu/rositraining/Exercises
• Code review policy - http://wiki.ros.org/Industrial/Tutorials/IndustrialPullRequestReview
• ROS-I Hydro Release in late ‘13 or early ‘14
ROS-I Community Forum
• Next meeting: topic focused• At least 1 in person meeting per year
coinciding with some other conference• Next meeting: TBD• Feedback is welcome
Thanks to Supporters
I could overload this slide with logos from all around the world…but I don’t have
permission to use them.
So instead, thanks to all of you. You know who you are.
GO OPEN SOURCE!!!
General Q&A
Managed by: Southwest Research Institute
72
Shaun EdwardsSenior Research Engineer
Southwest Research Institute6220 Culebra Rd.San Antonio, TX 78251US
Phone: 210-522-3277Email: [email protected]
www.rosindustrial.org
www.ros.org/wiki/Industrial
Contact Information
6 March 2013
Backups
SOUTHWEST RESEARCH INSTITUTE - CHRIS LEWIS
Contribution• Extrinsic Camera Calibration GUI• Performing and Scripting Extrinsic Calibration
– multi-camera resection – camera to robot, igps, or other frame– User Selects
• Cameras• Targets• Triggers• Sequences• Parameters• ROIs• Control -vs- Tie point• Structure only or Resection Only
– Built in locators• AR-Tags• Checkerboards• Grid of Circles• Circles
– Google Ceres BA implementation• YAML Scripts saved for repeating calibration• Documents Procedure for Consistent re-cal• ROS-I Repo: industrial_calibration in
February 2014
x
y
z
Need• Robot kinematic calibration• Calibrate robot kinematic
parameters (URDF) using an accurate external reference system (possibly a camera?)
• No open source implementations (that I am aware of)
• Commercial solutions are cost prohibitive (partially due to equipment costs)
• Better kinematics enable:– CAD to path– Sensor to path
• Non-precision robot manufacturing
http://medesign.seas.upenn.edu/index.php/Courses/MEAM420-09C-P1
77
Contact Info.
4 June 2013
Chris LewisPrincipal Research Engineer
Southwest Research Institute
Phone: 210 522 6662Email: [email protected]
<Your pic here>