প্রকল্প সম্পর্কে
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 ফ্ল্যাগের মাধ্যমে অনুমোদিত-তালিকাভুক্ত, টাইপড `call`, `publish` এবং `subscribe`, WebSocket ট্রান্সপোর্ট প্লাস `call`/`publish`-এর জন্য একটি ঐচ্ছিক HTTP লিসেনার এবং `subscribe`-এর জন্য Server-Sent Events, এবং `rclnodejs-web openapi` দ্বারা নির্গত একটি OpenAPI 3.1 স্পেক। `rosocket` হল একটি পাতলা WebSocket গেটওয়ে যার ব্রাউজার নির্ভরতা নেই বিল্ট-ইন WebSocket এবং JSON ছাড়া, `npx rosocket` দিয়ে শুরু হয়।
বার্তা জেনারেশন স্বয়ংক্রিয়: `npm install` চলাকালীন সোর্সড পরিবেশে প্রতিটি `.msg`, `.srv` এবং `.action` ইন্টারফেসের জন্য JavaScript বাইন্ডিং এবং TypeScript ঘোষণা তৈরি হয়, এবং অতিরিক্ত ROS প্যাকেজ ইনস্টল করার পরে `npx generate-ros-messages` জেনারেশন পুনরায় চালায়। জেনারেটেড ফাইলগুলি `node_modules/rclnodejs/generated/`-এ পড়ে।
অতিরিক্ত নথিভুক্ত উপাদানের মধ্যে রয়েছে RxJS Observable সাবস্ক্রিপশন যার অপারেটর যেমন `throttleTime()`, `debounceTime()`, `map()` এবং `combineLatest()`; 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.