According to a resolution passed by the ROS 2 TSC, we intend to add three elected community representatives as members of the ROS 2 TSC in 2021. These community representatives will be granted the full rights and privileges of a traditional ROS 2 TSC representative, including voting rights on all ROS 2 TSC resolutions. You can get all the details on the election timeline and process in the prior post on this topic:
The nomination deadline for candidates was last Friday. I have reviewed the candidate’s self-nomination forms and constructed short biographies from the information they submitted. Please read the candidate bios before the election. The voting will happen in about two weeks at ROS World (note that voting is open to everyone, not just attendees). We’re going to try and work with the candidates to produce some short videos that we can play during ROS World. I’ll post those just as soon as I can.
Now, without further ado, I want to present you with the candidates for ROS 2 TSC community representatives…
I am currently a PhD Candidate in Electrical Engineering at Vanderbilt University working in the Verification and Validation for Intelligent and Trustworthy Autonomy Laboratory under Dr. Taylor Johnson. My research work centers on problems related to the safety and reliability of systems that make use of Artificial Intelligence and Machine Learning. Drawing on techniques and tools from formal methods, the goal of my research is to develop techniques that provide rigorous guarantees that these systems are trustworthy.
My journey in robotics began in 2017 when at the start of my Electrical Engineering PhD program at Vanderbilt University, I was introduced to the F1Tenth Autonomous Racing Competition. The competitions were designed to be a platform where students, researchers, and engineers could learn the foundations of building autonomous robotic systems and explore research problems within autonomous racing, reinforcement learning, robotics, communication systems, and formal methods. Over the last couple years, I have participated in numerous F1/10 autonomous racing competitions and seen the growth of an enriching and vibrant community of autonomous systems enthusiasts. The software stack within this community is based on ROS, allowing the community to share advancements and collaborate effectively on the problems being tackled in the community. Participating in these competitions led me to develop the central work of the dissertation project and also allowed me to help mentor several undergraduate student robotic teams within the unmanned underwater vehicle space, and drone applications.
My desire to be on the technical steering committee stems from a desire to offer the perspective of a student and early career researcher who has greatly benefited from participating in regular robotics competitions. I know what a powerful force the community support can be for a student, and how exposure to ROS led me to find the subject of my dissertation work and passion for robotics. There is a lot of exciting work going on in student competitions and research and my hope is that I can help channel some of that momentum towards the development of ROS2.
I started using ROS when i did a nano degree on Self driving cars from Udacity. There i learned how powerful ROS is and how it can contribute to self driving cars. Being passionate about self driving cars, i felt it is natural to work and contribute to ROS wherever possible.
We develop Webots and many ROS related tools around Webots:
- GitHub - cyberbotics/webots: Webots Robot Simulator
- GitHub - cyberbotics/webots_ros2: Webots ROS 2 packages
- GitHub - cyberbotics/webots_ros: Webots ROS package
- GitHub - cyberbotics/urdf2webots: Utility to convert URDF files to Webots PROTO nodes
- GitHub - cyberbotics/webots_ros2-release: Webots ROS 2 release repository
- GitHub - cyberbotics/webots_ros-release: Webots ROS package (release)
Vote for me.
I started to develop the Webots simulator in 1996 at EPFL when there was no ROS, not even player/stage. Yes, I am coming from a prehistoric era of robotics simulation. In 1998, I founded Cyberbotics and hired a small development team to continue the development of Webots as a commercial software.
In 2018, Webots became open source and became increasingly popular in the open source community. Yes, it has many stars on GitHub. Meanwhile, we have been developing several generations of ROS and ROS2 interfaces to facilitate the use of Webots with ROS projects.
The nice thing is that we started to have many contributions, including bug fixes, coming from the ROS community to improve our ROS/ROS2 interfaces, improve the URDF2Webots conversion tool, improve Webots itself, suggest clever design ideas, etc. It takes some time to discuss with some contributors, calm down their enthusiasm, review their pull requests and politely ask them to improve the quality of their code, write documentation, but at the end, the benefit is there: high quality contributions are flowing in and the resulting software is mature and meets the requirements of more and more users. As a consequence the user base is growing.
A growing user base means more projects using ROS with Webots. This includes industrial and academic projects. And this translates into more business for Cyberbotics as industries mandate us to help them develop custom simulations and universities partner with us on various research projects, including EU-funded research projects.
Cyberbotics today hires 9 people working on industrial and academic projects related exclusively to robot simulations and ROS. This positions us between industry and academia, where we can understand the specific needs for ROS and robot simulations on both sides. Sometimes, we can even connect both worlds together, which is like magic!
Having a seat at the ROS 2 Technical Steering Committee would help us gaining more visibility and consideration from the ROS community, which would in turn further increase our commitment with ROS 2 and the dissemination of ROS 2 within our projects and users community. It would also allow me to represent the users of Webots/ROS, our academic partners and industrial customers. Our contribution to ROS is pretty modest, but it reflects real use cases from real users through various projects in autonomous cars, logistics, nuclear security, industrial robotics, toy industry, wearable robotics, surgery robotics, deep learning, high performance computing, education, etc.
I believe the experience, feedback and contributions from a small SME like us, can modestly help steering the development of ROS 2 towards a wider community of users.
If elected, I will do my best to pursue this goal.
Thank you for reading and considering myself as a candidate for the ROS 2 TSC!
Most of my interactions in the ROS space have not been public contributions of code, but have involved participating in discussions (particularly around middleware and RMW issues), giving talks and presentations, and helping other groups to properly use/integrate ROS/ROS2 in their projects/companies. That said, our company, Mission Robotics, has developed and recently started selling a devkit/vehicle platform with built-in support for both building and deploying ROS2-based software in marine robotics applications. I am actively working on putting together a public, open-source software reference that can be used both with our hardware platform and also simulated in Gazebo/other standard ROS tools. Part of this work will include regular contributions to Orca3 in the next few months, one of the few ROS2-based autonomous underwater vehicle software packages out there, pioneered by Clyde McQueen.
My story with ROS started in 2014 when I worked at NASA Langley. My role there was to develop a software framework that would allow researchers to rapidly develop and deploy modular capabilities, behaviors, and sensors/devices to autonomous aerial robots. The solution that I developed featured a combination of ROS1 and DDS, where ROS1 served as an easy entry point for extensibility that many of the researchers and interns were familiar with (and had done existing work in), and DDS helped to provide some of the more mission-critical and performance-related features that were required for scalable swarms of vehicles operating over wireless networks. Not long after building the initial versions of this software, early discussions began within the ROS community exploring DDS as an underlying middleware for ROS2.
While there, I was introduced to OpenROV, a small startup from Berkeley that was building an open hardware and software kit for underwater robots. I ‘jumped ship’ to work with them, helping to develop the same type of software framework, now with the goal of supporting marine applications. Shortly thereafter, it was decided that ROS2 would be built on top of DDS. At the same time, we had just begun development on Trident, the world’s first “consumer” underwater drone. I led the software effort to support extensibility via ROS2, aiming to create a modern, marine-focused complement to the Turtlebot. This was achieved internally by implementing our stack using DDS in a manner compatible with ROS2, such that we could switch over to ROS2 once a stable release was ready. I also implemented early prototypes of sensor and actuator modules for Trident that used ROS2 directly. Unfortunately, due to a company merge, all vehicle efforts were discontinued and this work did not reach fruition.
Post-merge, I went to work at Voyage, a self-driving car company in Palo Alto, where I utilized much of my DDS and ROS2-related expertise to help the company transition from ROS1, to ROS1+DDS, to ROS1+DDS+ROS2, to DDS+ROS2 (via ApexOS’s safety-critical implementation). There, I also led the development of real-time teleoperation/assistance for self-driving vehicles. We hosted a ROS-by-the-bay meetup where I shared some of this work and the approach/underlying DDS-related details required to achieve similar results with ROS2.
After achieving my goals at Voyage, I joined with two former colleagues from OpenROV, and co-founded Mission Robotics with the goal of picking up where we left off: building a DDS+ROS2-based vehicle platform to help accelerate innovation in the marine space.
My desire and goals in wanting to join the TSC are simple. I have extensive, boot-on-the-ground experience putting DDS and ROS2 robotics software into production. I regularly provide technical guidance to many companies and groups that run into challenges and limitations related to the increased complexity in ROS2. I would like to be able to serve as a voice for these users and make sure there is a broader representation of developer needs during the technical decision making processes.
Thanks for your consideration.
Together with colleagues: teleop_legged_robots - ROS Wiki
My name is Lyubomyr Demkiv. I am Robotics Expert at SoftServe and am leading the technical direction of the Robotics group. We are working with mobile platforms, arms, drones and are starting working with legged robots.
Together with my colleagues, we have published the repository on legged robot teleoperation.
I have published several case studies and white papers about the usage of ROS in the industry:
- Spot Simulation Tools
- Using AWS RoboMaker
- Industrial Mapping (implementations that requited robots were done using ROS)
Together with my colleagues, we have developed our own robot called Booter. It uses ROS to navigate and presents snacks to visitors of our meetups and conferences:
As a part of the bigger team, I have taken part in MBZIRC 2020 challenge, and we have won first place together with CTU, UPENN, and NYU.
With my teammates, we have delivered a pioneering project that utilized ROS2 for Advanced automation in manufacturing, robots for agriculture, robots for housekeeping, robots for warehouses (ongoing project), and others.
I have spoken at several events that popularized robotics and ROS:
- Keeping Competitive with Robotics, IoT, and ML
- Navigation of Mobile robots, RoboCamp (2017), in Ukrainian
- Hardware-in-the-Loop, PaceMaker (2017), in Ukrainian part 1, part 2
- Math and ROS for Mobile Robots, (2017), in Ukrainian
- Development of Telepresence Robot with ROS (2017), in Ukrainian
- ROS: standard (de facto) in robotics, (2019), in Ukrainian
- Multi-robot Systems in the Real-world, (2020), in Ukrainian
I am a member of the ROS Ukraine community and help organize events that popularize ROS among the community and beyond. For the last couple of years, I have supported the close collaboration of the ROS Ukraine community and SoftServe. We conduct joint events and support robotics initiatives in Ukraine.
Additionally, I am a professor habilitation at the Lviv Polytechnic National University. My research activities are related to intelligent control of dynamic systems, including robots. During my work as a co-director of the NATO MYP SPS project, we have researched the real-time control of the off-road trucks, combining both mechanical and electrical constraints on the machine’s motion control.
I am aware of the major pain points that various industrial verticals have, and at the same time, I understand the challenges that academia faces. I hope that my experience will be a valuable add-on to the ROS2 TSC.
- SMACC (GitHub - reelrbtx/SMACC: An Event-Driven, Asynchronous, Behavioral State Machine Library for real-time ROS (Robotic Operating System) applications written in C++)
- SMACC2 (GitHub - robosoft-ai/SMACC2: An Event-Driven, Asynchronous, Behavioral State Machine Library for ROS2 (Robotic Operating System) applications written in C++)
I think we have a few problems as a community.
We’re behind schedule. Everyone knows it.
And the adoption of ROS2 has lagged behind expectations. I want to fix that.
I want to give application developers some damn good reasons to make the leap to ROS2 and further, I want to provide example state machines (i.e. robot applications) that they can just download and start hacking away on.
With state machine libraries, we can go faster, and I’m going to prove it.
In a way, I think I (and my team) already have. Our demos speak for themselves…
Name: sm_dance_bot (ROS2)
Name: sm_dance_bot (ROS1)
Name: sm_ridgeback_barrel_search_1 & 2
- Video: https://www.youtube.com/watch?v=us890IAfjrU (Both appear in video along with others)
- Code: https://github.com/reelrbtx/SMACC/tree/noetic-devel/smacc_sm_reference_library/sm_ridgeback_barrel_search_1
Look around to find other examples like this, and you won’t find much. And as you can see, all the code is public for every video I make. No tricks.
All these examples were done by just two guys, working half time. Who also were working on a hardware project, and also had to write the state machine libraries (SMACC and SMACC2) as well. The point here is that the claims I make regarding increased coding efficiency with state machine programming is not some theoretical exercise. It’s a tangible thing once you get over the learning curve.
And we’ve got a lot more coming. I’m going to do this again, and a lot more in ROS2. Stay tuned.
One important way state machines help you go faster, is by letting you chop the problem into little bits. That’s what state machine libraries do. They dramatically lower the cost of creating states for your application. This has numerous secondary effects, one of which, that I’ve mentioned here (074 The new generation of State Machines for ROS with Brett Aldrich - YouTube) , is that you have less need for super complicated planners, and that you can use simpler planners to much greater effect.
Another gigantic way that state machines libraries, and SMACC in particular, can help transform ROS programmer productivity is by facilitating event-driven programming paradigms. Also known as scenario-based programming, this is a natural fit for complex robots comprising multiple physical subsystems and it is something that current behavior tree implementations cannot do. See Introducing the SMACC State Machine Library.
And there is more. I just don’t have room in 500 words.
Although I can’t fully flesh out my vision on how I would like to influence the dynamics of the TSC, and by extension ROS2. From a 50,000 ft level, I want to change the dynamic of new code development from a “push” to a “pull” strategy, similar in many ways to how the japanese automakers crushed their U.S. competitors in the 1970s and 1980s by using pull methods such as the Toyota Production System. More on this later.
And I humbly ask for your vote.