इस प्रोजेक्ट के बारे में
rclnodejs ROS 2 के लिए एक Node.js क्लाइंट लाइब्रेरी है, जो ROS 2 एप्लिकेशन बनाने के लिए JavaScript और TypeScript API उपलब्ध कराती है। README के अनुसार, इसमें टॉपिक, सेवाएं, ऐक्शन, पैरामीटर, लाइफ़साइकल नोड, TypeScript समर्थन, RxJS Observable सब्सक्रिप्शन, Electron एकीकरण और ROS 2 तक ब्राउज़र एक्सेस शामिल हैं।
इंस्टॉलेशन के लिए Node.js 20.20.2 या नया संस्करण और ROS 2 SDK आवश्यक है; इंस्टॉल, बिल्ड या रन करने से पहले ROS 2 पर्यावरण को सोर्स करना होता है। पैकेज को npm i rclnodejs से इंस्टॉल किया जाता है। Ubuntu 22.04 (Humble), 24.04 (Jazzy, Kilted) और 26.04 (Lyrical) के लिए x64 तथा arm64 पर प्रीबिल्ट बाइनरी का दस्तावेज़ीकरण है; अन्य पर्यावरणों में सोर्स से बिल्ड होता है, और RCLNODEJS_FORCE_BUILD=1 सोर्स बिल्ड को बाध्य करता है। कंटेनरीकृत विकास के लिए एक Dockerfile दिया गया है।
ब्राउज़र के लिए प्रोजेक्ट दो विकल्पों का दस्तावेज़ीकरण करता है। rclnodejs/web ROS 2 ग्राफ़ के ऊपर एक टाइप की गई परत है, जिसमें क्षमताओं को web.json या CLI फ़्लैग के माध्यम से allow-list किया जाता है। इसमें टाइप किए गए call, publish और subscribe, WebSocket ट्रांसपोर्ट के साथ call/publish के लिए वैकल्पिक HTTP लिसनर और subscribe के लिए Server-Sent Events, तथा rclnodejs-web openapi द्वारा जारी OpenAPI 3.1 स्पेक शामिल हैं। rosocket एक पतला WebSocket गेटवे है, जिसमें बिल्ट-इन WebSocket और JSON के अलावा कोई ब्राउज़र निर्भरता नहीं है; इसे npx rosocket से शुरू किया जाता है।
संदेश जनरेशन स्वचालित है: सोर्स किए गए पर्यावरण में हर .msg, .srv और .action इंटरफ़ेस के लिए npm install के दौरान JavaScript बाइंडिंग और TypeScript घोषणाएं जनरेट होती हैं, और अतिरिक्त ROS पैकेज इंस्टॉल करने के बाद npx generate-ros-messages जनरेशन दोबारा चलाता है। जनरेट की गई फ़ाइलें node_modules/rclnodejs/generated/ में आती हैं।
अतिरिक्त दस्तावेज़ में throttleTime(), debounceTime(), map() और combineLatest() जैसे ऑपरेटरों के साथ RxJS Observable सब्सक्रिप्शन; Electron Forge और Three.js से बने Electron डेमो, जिनमें दो-जॉइंट मैनिपुलेटर डेमो शामिल है; TypeScript कॉन्फ़िगरेशन मार्गदर्शन; स्कैफोल्डिंग और लॉन्च-फ़ाइल ऑर्केस्ट्रेशन के लिए सहयोगी rclnodejs-cli; और बेंचमार्क दस्तावेज़ शामिल हैं। प्रोजेक्ट Apache License 2.0 के अंतर्गत लाइसेंसीकृत है।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.