ROS2

A collection of 2 posts
ROS2

ROS2 時間相關 API: Time、Rate、Duration 的 C++ 實作

前言 在機器人開發中,時間管理是一個至關重要的概念。無論是控制機器人的運動頻率、記錄感測器數據的時間戳,還是實現複雜的時序邏輯,都需要精確的時間控制。ROS2 提供了完整的時間管理 API,包括 Time、Rate、Duration 等核心類別,讓開發者能夠輕鬆處理各種時間相關的任務。 本文將深入探討這些 API 的使用方式,並提供實際的 C++ 程式碼範例,幫助您在 ROS2 專案中有效運用時間管理功能。 1. Duration(持續時間)- 時間間隔的精確控制 基本概念 Duration 表示一段時間間隔,可以是正值或負值。它在 ROS2 中廣泛用於計時、延遲和時間計算。Duration 的內部表示包含秒數和奈秒數兩個部分,提供了高精度的時間控制。 C++ 實作範例 讓我們看看如何在實際專案中使用 Duration: #include "rclcpp/rclcpp.hpp"
閱讀時間 10 分鐘
ROS2

ROS2 C++ 程式設計風格指南

前言 在 ROS2 開發中,良好的程式設計風格不僅能提高代碼的可讀性和可維護性,還能避免一些常見的錯誤和性能問題。本文將介紹 ROS2 中 C++ 程式設計的風格指南和最佳實踐,特別是關於節點創建的不同方式及其優缺點。 ROS2 節點創建的兩種方式 在 ROS2 中,創建節點有兩種主要的方式:實例化節點對象和繼承節點類。讓我們來看看這兩種方式的具體實現和比較。 1. 實例化節點對象 這是最簡單直接的方式,直接創建一個 rclcpp::Node 的實例: #include "rclcpp/rclcpp.hpp" int main(int argc, char ** argv) { rclcpp::init(argc, argv); auto node = rclcpp::Node::make_shared("
閱讀時間 4 分鐘