Leveraging a Functional Approach for More Testable and Maintainable ROS 2 CodeOutline ● Introduction ● Overview of ROS 2 ● ROS 2 Conventional Approach ● Introduction to Functional Programming Principles ● Refactoring using Functional Programming Principles ● ConclusionIntroductionAbout System (ROS) is the de facto middleware of choice across robotics academia and industry Why use Robot Operating System? Clip taken from: https://robots.ros.org/● Robot Operating System (ROS) is the ● According to the ROS 2022 Metrics Report, more than 740 companies use ROS! Why use Robot Operating System? Clip taken from: https://robots.ros.org/● Robot Operating System (ROS) is the de facto middleware0 码力 | 200 页 | 1.77 MB | 6 月前3
Building bridges: Leveraging C++ and ROS for simulators, sensor data and algorithmsApex.Alan, Apex.Ray are trademarks of Apex.AI. CppCon 2023 Building bridges: Leveraging C++ and ROS for simulators, sensor data and algorithms Divya Aggarwal October 5, 2023© 2023 Apex.AI, Inc. | 1. ROS and simulators 2. What is missing? 3. Our proposal© 2023 Apex.AI, Inc. | All rights reserved. Apex.AI, Apex.OS, Apex.Grace, Apex.Ida, Apex.Alan, Apex.Ray are trademarks of Apex.AI. ROS and simulators© Apex.Grace, Apex.Ida, Apex.Alan, Apex.Ray are trademarks of Apex.AI. Back to basics — ROS ROS & simulators 5 ROS is an open-source Robot Operating System 1. A set of software libraries and tools that0 码力 | 38 页 | 2.17 MB | 6 月前3
Plug-in Based Software Architecture for Roboticssystem ● Cross-platform ● Memory Management 35Library used to implement plugin architecture in ROS projects• Robot Operating System • Set of libraries and tools to help build robotic applications communicate between nodes using topics What is ROS? Image from https://docs.ros.org/en/rolling/Tutorials/Beginner-CLI-Tools/Understanding-ROS2-Nodes/Understanding- ROS2-Nodes.html 37• Network layer communication • Need plugins for performance • In a perfect world, ROS would not require plugins Why use plugins over nodes? 38• Defacto Plugin Manager for ROS projects • Built on top of class_loader, rcpputils and0 码力 | 75 页 | 2.40 MB | 6 月前3
Conan 2.10 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 6.12 ROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 ROS Warning: This feature is experimental and subject to breaking changes. See the Conan stability section for more information. Conan provides integration for your Robot Operating System (ROS) C/C++ C/C++ based projects. This will allow you to consume Conan packages inside your ROS package projects. The Conan packages can be installed and used in CMake with the help of the ROSEnv generator created0 码力 | 803 页 | 5.02 MB | 10 月前3
Conan 2.9 Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184 6.11 ROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 ROS Warning: This feature is experimental and subject to breaking changes. See the Conan stability section for more information. Conan provides integration for your Robot Operating System (ROS) C/C++ C/C++ based projects. This will allow you to consume Conan packages inside your ROS package projects. The Conan packages can be installed and used in CMake with the help of the ROSEnv generator created0 码力 | 795 页 | 4.99 MB | 10 月前3
Robotics at Compile-Time: Optimizing Robotics Algorithms with C++'s Compile-Time Featuresformat • Requires lots of run-time decisions • Generally maintained by a corporate entity • ROS and ROS 2 ecosystem (Open Robotics/ Intrinsic) • Drake (TRI) • Ignition and Gazebo (Open Robotics/Intrinsic) Locking primitives that block • Optimize for CPU and memory budgets, missed deadlines https://design.ros2.org/articles/realtime_background.htmlWhy C++ is Great for Real-Time Robotics • isocpp and --Wpedantic0 码力 | 45 页 | 20.73 MB | 6 月前3
共 6 条
- 1













