Successfully reported this slideshow.
Your SlideShare is downloading. ×

An Introduction to ROS-Industrial

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Ros platform overview
Ros platform overview
Loading in …3
×

Check these out next

1 of 41 Ad

More Related Content

Similar to An Introduction to ROS-Industrial (20)

Advertisement

Recently uploaded (20)

Advertisement

An Introduction to ROS-Industrial

  1. 1. ROS-Industrial Introduction Webinar Shaun Edwards January 11, 2013
  2. 2. Biography • Shaun Edwards • Senior Research Engineer in Manufacturing System Department at Southwest Research Institute (SwRI) (8 years) • Specialize in advanced industrial robotics and automation programs • Graduated with a MS-ME from Case Western Reserve University, Cleveland, Ohio.
  3. 3. Agenda • Overview of ROS • Overview of ROS – Industrial • ROS – Industrial Consortiums
  4. 4. ROS Overview
  5. 5. ROS Motivation Research Robotics • Reinvention of the Wheel • Little Commonality • Short Lifespan • Inability to Compare Results ROS Solves These
  6. 6. ROS: Robot Operating System ● Open source (BSD) ● Created by Willow Garage ● Maintained by Open Source Robotics Foundation (OSRF)
  7. 7. What Can ROS Do? http://www.youtube.com/watch?v=PGaXiLZD2KQ&list=UULlLhzlcustont9B3S0pjdg&index=2
  8. 8. = + + + Plumbing Tools Capabilities Ecosystem
  9. 9. Publish / Subscribe messaging Master (DNS-like) Publisher Subscriber /topic Publisher Subscriber • Powerful dynamic architecture that promotes reuse • Simplifies complex programming • More flexible than industrial robot controllers
  10. 10. = + + + Plumbing Tools Capabilities Ecosystem
  11. 11. Standard Dev. Tools • Standard Linux tools – Compilers, Debuggers, Loggers, IDEs • Multiple language support – C/C++, Java, Python, Lisp • Standard libraries • Boost, MySQL, XML (whatever you can imagine) • Modern GUI tools • Many tools missing from industrial development packages
  12. 12. ROS Tools plotting graph visualization diagnostics Simulation/visualiz ation
  13. 13. = + + + Plumbing Tools Capabilities Ecosystem
  14. 14. Capabilities • State of the art algorithms Mobility and Navigation • Rapid development from research community Perception • Broader Manipulation capabilities than current industrial MoveIt! solutions
  15. 15. = + + + Plumbing Tools Capabilities Ecosystem
  16. 16. User Community *ros.org visitor statistics (one month)
  17. 17. Statistics • ROS Core statistics by: 200+ Repositories https://www.ohloh.net/p/ROSorg • 11,146 commits • 43 contributors • 148,163 lines of code • Long source history 28 Officially Supported maintained by a large development Robots team with stable year-over-year commits • Estimated cost $2,063,327
  18. 18. Documentation/Support
  19. 19. Community • Openness encourages participation and collaboration • Many small, yet organized efforts result in more capable and reliable software • In industrial space, development communities are few and far between
  20. 20. ROS - Industrial
  21. 21. ROS-Industrial Motivation • Motivated by desire to solve industrial robotics and automations hard problems • Driven by actual application needs (i.e. real life problems without commercial solutions) – Fixtureless automation – Dynamic pick and place – Flexible automation (many small & diverse part runs) – Sensor driven automation • Reduction in integration cost by standardizing interfaces and enabling reuse
  22. 22. App: Automated Painting • Automated spray paint processes – Reduce emissions (regulation) – Reduce exposure (personnel) – Reduce cost (materials) – Increase quality (consistency) • Challenges – Unconstrained location – “Random” part order – Real time processing – Moving parts
  23. 23. Solution: Automated Painting • 3D Sensing (ROS/OpenNI) • 3D Processing (ROS/PCL) • Process-based path planning (SwRI) • Robot kinematic solvers (ROS/MoveIt!) • Robot workcell visualization (ROS/Rviz) • Distributed system (ROS/Core) • Data acquisition/playback (ROS/bag)
  24. 24. Motivation Summary Industrial Robotics • Limited development tools • Limited capabilities • No portability, flexibility • Slow technology adoption ROS-Industrial Solves These • Barriers to transition basic research • Barriers to independent developers
  25. 25. What is ROS-Industrial • Open-Source (BSD) Extension of ROS • Software Distribution • Providing Industrial Solutions – Interoperability w/ COTS Hardware – Industrial Applications – Extended Capabilities
  26. 26. Hardware Drivers • Robots – Motoman – Adept – Universal (new) – Fanuc (new) – ABB (new) – Kuka (Coming soon) – More to come…
  27. 27. Other Devices • Peripherals – Robotiq adaptive grippers • Networks – EtherCAT (Beckhoff Modules) – Serial – USB – Ethernet
  28. 28. More Capabilities
  29. 29. Leveraging ROS http://www.youtube.com/watch?feature=player_embedded&v=_WG-45cZSUQ
  30. 30. More Videos • http://ros.org/wiki/Industrial/video
  31. 31. Future of ROS-Industrial • Stability, Reliability, Usability – Code analysis, testing, and statistics – Long term/Certified releases – More tutorials and documentation • Installed systems • Technology – More hardware support – Improved path planners – Physics based simulation – GUI based programming
  32. 32. Ways to Participate • Independently Contribute/Participate: – Define interface standards – Develop software – Documentation • OEMs – develop interfaces to your equipment • Integrators - Use it for projects and customers • Join the ROS-Industrial Consortium • There are a number of other ways as well…
  33. 33. Funders/Contributors
  34. 34. ROS-Industrial Consortiums
  35. 35. ROS-Industrial Consortiums • ROS-Industrial (Americas) lead by Southwest Research Institute • ROS-Industrial (Europe) lead by Fraunhofer IPA
  36. 36. ROS-Industrial Consortium (Americas)
  37. 37. Consortium Motivation • Provide a Voice for Industrial End Users • Accelerate Code Development – Advanced Capabilities – Code Quality Standards/Enforcement – Testing, Reliability, Robustness – Training – Maintenance • Build Community – Attract User-Generated Content – Maintain Open-Source Repository, Wiki, Roadmap – Ensure Code Reusability
  38. 38. How Will it Work? • Membership organization (commercial, government, academic) • Fees cover software maintenance, meetings, outreach • Collaborative research projects will be formed and funded by member sub-groups • Open source software: – All software developed under general funds – Project software at the discretion of the funding group • More info: http://consortium.rosindustrial.org
  39. 39. Conclusions • ROS has proven to be disruptive to robotics research • ROS offers capabilities, tools, and a community beyond current commercial options • ROS-Industrial is focused on addressing the needs of the industrial robotics and automation market • The ROS-Industrial community is growing • The ROS-Industrial Consortium will provide a voice to its members to identify needs and set priorities for the project
  40. 40. Come See Us at Automate! • ROS-INDUSTRIAL LIVE! • MCCORMICK PLACE, CHICAGO, ILLINOIS USA JANUARY 21-24, 2013 • AUTOMATE 2013 • SOUTHWEST RESEARCH INSTITUTE • Booth #314 • Product / Service Categories – R&D and Engineering Services – System Integration – Vision and Perception Systems – Custom Solutions
  41. 41. Questions? Clay Flannigan Shaun Edwards 210-522-6805 210-522-3277 clay.flannigan@swri.org shaun.edwards@swri.org Main site: rosindustrial.org Software site: code.rosindustrial.org Docs site: wiki.rosindustrial.org Consortium site: consortium.rosindustrial.org

Editor's Notes

  • ROS is a publish/subscribe architecture. In the simplest terms it is an architecture that gives specialized programs the ability to communicate. This communication is called messaging. There are many benefits to such an approach for creating a complex intelligent system, but perhaps the greatest benefit is that it enforces interface standardization via message definitions. This inherently results in programs that can be easily reused. So even if your goal is not code reuse, which often it’s not. The goal is just to get a system working, you ultimately develop reusable code. Even though the architecture might seem complex, it can simplify the program task because it breaks it up into manageable chunks. In the industrial robotics worlds, this is a new. I’m not aware of a robot controller that has this type of architecture. Typically, robot programs are monolithic, single threaded programs, that lack the benefits of the ROS architecture.
  • Before I talk about the ROS specific tools, I’d like to take a minute to talk about standard development tools. These are tools that exist natively within a Linux environment. They include compilers, debugger, loggers, IDEs, etc… There isn’t one specific programming language. Developers are free to use a number of languages. Linux also has a rich set of libraries that can be used to build ever more complex applications. The range from fundamental development libraries like boost, to databases, and standard markup languages. The number of libraries is almost endless. Finally, Linux GUI development tools enable us to develop rich, user friendly interfaces with a modern feel.While software developers take these for granted, industrial robot programmers don’t have this luxury. I can think of several platforms that lack offline compilers, debugger, logging tools, and IDEs. Most robots have there own programming language, a common language doesn’t exist. Most robots come with their own library as the only option. Finally, the GUI tools available on industrial robots are pretty antiquated. My wife saw me working on a pendant GUI recently and wondered what I was doing. I told her that I was working on the GUI for a brand new robot installation. She seemed perplexed, and when I asked why, she wondered why I was making it look like a Windows 95 GUI. Yes, she thought my state of the art GUI looked like a GUI from and OS that was 15 years old.
  • In addition to standard linux development tools, ROS also provides it’s own tools which can be invaluable for robotics application development. Plotting tools that give a time history of any message variable within the ROS system. ROS introspection tools that allow the developer to visualize a running system with all it’s programs and the connections between them. A diagnostics infrastructure which can be used to debug and diagnose hardware layer problems. Finally, a powerful visualization system allows the developer to see the all system data in a 3D environment. This includes models of the robot and it’s environment, sensor data streams, and just about any kind of data that has a 3D component. I show a video later that really illustrates the power of this visualization.
  • Everything up to this point was foundational. It’s what you would expect from any Operating System. ROS goes a step further. It contains libraries for common robotics capabilities and functionality. These libraries span navigation, perception, and manipulation. The algorithms in these libraries are based on the latest state of the art and is ever increasing due to contributions from the research community. Because of this, the capabilities in these libraries are or in some case have outpaced the capacities of off the shelf software. This is particularly true in the 3-D perception and advanced arm path planning areas.
  • Finally, the user community is something that is often overlooked when people talk about ROS. However, it is one of the major keys to it’s success. This map which shows the visitor statistics illustrates the global use of ROS. These are active users of ROS.
  • Community means more than open source, it means participation. The two graphs on the right illustrate some metrics that show the level of participation in ROS. There are over 200 independent repositories that are managed by developers around the world. All of that software is available to anybody using ROS. There are 28 officially supported robot platforms, and many, many more unofficial robots. There is tremendous value here. If we look at the ROS core, which is a relatively small component we can see the value. These statistics are based upon the commit logs, but perhaps the most telling are the last two. The value is somewhere between 38 years of effort and. The real value is probably somewhere in between but even so, the ROS core is leveraged by many of those repositories.
  • Moving on, a key critique of open source software is that there is a lack of documentation and support. Again, this is where community comes in. All documentation is maintained in a public wiki. Developers create the initial documents, but it’s the community who checks it and updates it. It seems like a model that’s destined for abuse, but it actually works. Technical support is also provided by the community via a public forum. Many of the answers are provided by developers, but you would be amazed at how many users contribute.
  • This is the final slide about community. I’ve dedicated a good amount of time to it because I believe it’s benefits cannot be understated. I’ve personally experience how openness encourages participation and collaboration among independent developers. I’ve had developers from around the world contact me about helping develop ROS-Industrial. This distributed development, if organized as the ROS community does, can result in more capable and reliable software. Community within the industrial robotics space is something that is lacking. It’s one area where ROS-Industrial can have a great impact and ultimately drive advanced capabilities and development.
  • I’ve talked quite a bit about ROS and now I’m going to talk about ROS-Industrial which is built upon ROS and aimed at industrial robotics and automation problems.
  • First, I’m going to take a step back. In order to understand where we want to go with ROS-Industrial, I think it helps to understand what motivated us to start it in the first place. We pride ourselves on solving the “hard” problems in industrial automation. This all too often results in us pushing the limits of commercially available tools. Of course, you could say we invent these “hard” problems, but we don’t. We are driven by actual applications. We do research for clients who have real problems to solve. If they are coming to us, it’s very likely that they know there isn’t a commercial solution to their problem. Fixtureless automation, Dynamic pick and place, Flexible automation, Sensor driven automation, and drop in human replacements are all potential application areas. While this application space may seem diverse, the technology to solve them is pretty similar. We need technology that enabled robots to perceive their environment and move about intelligently. Finally, there is a need within industrial robotics automation in particular to reduce integration costs. Integration costs can be several times the investment in robotic equipment. These costs can be reduced by standardizing hardware interfaces and enabling software reuse.
  • Now on to specific applications that we encountered that could not be achieved with off the shelf commercial solutions. The first is an automated painting application. The reasons for automating painting operations are pretty standard. It will reduce emissions, exposure, and cost, while increasing quality. However, this wasn’t your typical painting application. Our problem was to replace workers who paint parts hanging from a conveyor line. This presented several challenges. The part location is not constrained, i.e. there wasn’t any fixturing, the parts could hang in multiple ways from the conveyor. The part order or identification was not known. Even if it was, the sheer number of parts made it impossible to preplan paths, so parts needed to be sensed and processed in real time. Finally, the conveyor is in continuously in motion which can complicate sensing and the painting process it self.
  • The solution, and this should be no surprise, involved ROS and ROS-Industrial. We leverage ROS for 3D sensing. We utilized the openNI library for the kinect sensor. Incidently, the kinect sensor is pictured in that top image in a nice industrial enclosure. We utilized the pointcloud library within ROS for 3D data processing. From that data, we created some home grown path planners for the painting process. We used the MoveIT in ROS to determine the robotic joint positions for the planned path. The whole system was visualized within Rviz. After all that we learned that we need some additional computing power to achieve realtime performance. We didn’t go this far, but because it’s a distributed architecture we could simply divide up the processing chain across multiple platforms. Finally, I’d like to mention that we leverage ROS ability to collect and replay data streams to test and debug the system without requiring access to the plant floor for extended periods.
  • I’ve already touched on some of these, but I’d like to summarize them here. What are the reasons we started ROS-Industrial. Limited development tools in commercial options. I talked about this when I gave the overview of ROS. The toolset within ROS-Industrial is far better than any commercial system. Limited capabilities. My application examples needed one if not many ROS components in order to be commercially viable. There’s no portability or flexibility with commercial systems. This stuff is ingrained in the ROS architecture. Technology adoption within industry is slow. ROS-Industrial is a bridge to cutting edge research. While there is risk in using something that may have been developed in a lab, ROS enables the user to make that decision. Without ROS-Industrial there are signficant barriers to transition research. Beside the obvious slow technology adoption, this also results in researchers moving away from industrial research. Who would have though service robotics would be a popular research topic. Where are the jobs in service robotics. Finally, there current commerical options prevent independent developers. You can think of these guys as the app developers for industrial robotics, except that they don’t exist. How great would your phone be without all the apps. ROS-Industrial addresses each and every one of these.
  • I’ve told you why we started ROS-Industrial and now your probably curious. What is it? ROS-Industrial is an open source extension to ROS. You can kind of think of it as a software distribution, Ununtu for linux. In other words we take the important parts of ROS and package it up. We also add value to the distribution by providing Industrial aspects. This include interoperability with commercial hardware, i.e. hardware drivers. We develop software the is focused on industrial applications and where it makes sense, we extend ROS capabilities. The path planner for the painting application is a good example of where an industrial capability was added to they system.
  • So the question inevitably leads to “will ROS work with my hardware” Currently we support the motoman, adept, and unversal robots. We are simultaneously improving support for the existing platforms and implement drivers for Fanuc, Kuka, and ABB. The Fanuc driver is being supported in part by NIST. I’m talking to DLR about the Kuka driver. The ABB driver is leveraging work performed at Case Western. As you can see it’s a community approach. In addition we support “peripherals”. Robotiq has added their own drivers to ROS-Industrial. We use EtherCAT as our fieldbus, and we can use serial and ethernet for networking IO as well.
  • Now for some videos
  • This first video shows you something that I hope I have already conveyed. That is with ROS-Industrial you can leverage everything in ROS with industrial equipment. This video shows the PR2 robot running ROS for a pick and place operation.
  • I’ve shown you where we are. Now for where we want to go, the future of ROS Industrial. First and foremost we will be installing systems. We have one that we are hopeful will go in soon. As I’ve also indicated we are adding to the code base. We plan to add process based path planners (like the paint planner I mentioned) and more drivers for robotics. We are also looking into integrating a physics based simulation call Gazebo. The initial benefit of this integration would be the ability to simulate 3D sensing system in simulation, where as today you pretty much need the actual hardware. We are looking into incorporating more external libraries for GUIs and path planners. A lot of people have a belief that open source software is not as reliable or robust as commercial options. That’s not nessasarily true. ROS-Industrial is developed by professionals. In order to aleviate some fears we are going to go one step further than commercial software companies. We are going to share code statistics and metrics with the community. We are also going to add tutorials and documentation for all the stuff we are currently developing. As I mentioned earlier, this documentation and tutorials are as important as the code it self. Finally, we want to certified releases of ROS-Industrial or a distribution. The release will meet some bare minimum requirements for all the software component contained within in it. It will give potential users confidence in the software as something for their applications.
  • I’ve shown you where we are. Now for where we want to go, the future of ROS Industrial. First and foremost we will be installing systems. We have one that we are hopeful will go in soon. As I’ve also indicated we are adding to the code base. We plan to add process based path planners (like the paint planner I mentioned) and more drivers for robotics. We are also looking into integrating a physics based simulation call Gazebo. The initial benefit of this integration would be the ability to simulate 3D sensing system in simulation, where as today you pretty much need the actual hardware. We are looking into incorporating more external libraries for GUIs and path planners. A lot of people have a belief that open source software is not as reliable or robust as commercial options. That’s not nessasarily true. ROS-Industrial is developed by professionals. In order to aleviate some fears we are going to go one step further than commercial software companies. We are going to share code statistics and metrics with the community. We are also going to add tutorials and documentation for all the stuff we are currently developing. As I mentioned earlier, this documentation and tutorials are as important as the code it self. Finally, we want to certified releases of ROS-Industrial or a distribution. The release will meet some bare minimum requirements for all the software component contained within in it. It will give potential users confidence in the software as something for their applications.
  • While users are great, it’s even better when you find people that are either funding work or contributing to it. It’s this list that shows there is definite interest in ROS-Industrial as a solution to commercial needs.
  • Alright. By now I hope you are convinced that ROS-Industrial is exciting and valuable because of the new applications it enables. The next question is how do we continue the work. The first phases have been supported by Southwest Research and others, but we need broad industry participation in order to be successful. So we are creating the ROS-Industrial Consortium. I know this may be old news to some, but I encourage you to listen as we have changed things up a bit recently.
  • First off, what will the conosritum do. First and foremost it will accelerate development. Some of the items I mentioned for the future ROS-Industrial will supported by the consortium, specifically advanced capabilities, code standards/metrics, and testing. We also envision the Consortium as a source for training to bring the members and the general industry up to speed on ROS-Industrial. The Consortium will also act as the maintainer for ROS-Industrial. The big job there is long term bug fixes and release management. The Consortium will aslo have a role in managing the ROS-Industrial community. I’ve already mentioned that we have some external developers helping us with robot drivers. This is the perfect job for the Consortium. The Consortium can give direction and focus to the community so that what is developed is integrated and useful to the broader community.
  • So how does the consortium work. The basic operation and administration of the consortium is directly supported by membership fees. Any funds above and beyond what is required for administration is spend on general research goals. These goals are determined by the full members. I’ll talk later about the different levels of membership. In addition, full members have the option to create sub-groups within the consortium to fund focused technical projects. This is very important option to members who want to directly control what their research funds go to. It also allows them to take advantage of the consortium model by sharing development costs within the sub-group. The Consortium will immediately open source and software developed under general funds. Software developed under focused technical programs will be released at the descretion of the sub-group.
  • One last slide…here are the take aways:ROS has been disruptive to robotics research. It solved the problem of reinventing the wheel, but more importantly it gave a common framework and a community in which to work.ROS, by itself rivals or exceeds commercial robotics software, in architecture, capabilities, tools, and open source approach.ROS-Industrial brings the power of ROS to the industrial market, while adding capabilities and the reliability that is demanded for industrial applications.The support for ROS-Industrial is growing. This workshop is just one example of that.The ROS-Industrial Consortium will foster the continued development of ROS-Industrial. It’s main focus will be on industrial needs. While we expect industry to come with their list of desires/needs, we do hope that others in the community will the joint the process and help guide the longer term research needs as well.
  • Thank you for your time. Any questions.

×