স্থিতিশীল ইথারনেট থেকে অসামঞ্জস্যপূর্ণ সেলুলার বা স্যাটেলাইট সংযোগ পর্যন্ত বিভিন্ন নেটওয়ার্ক অবস্থার সাথে সব ধরণের জায়গায় রোবট কাজ করে। আরও নির্ভরযোগ্যভাবে যোগাযোগ করার জন্য আপনি কীভাবে রোবট এবং অন্যান্য স্মার্ট মেশিনের জন্য gRPC এবং WebRTC ব্যবহার করতে পারেন তা জানুন।
কেন রোবট নিয়ন্ত্রণের জন্য gRPC এবং WebRTC ব্যবহার করবেন?
আমি সম্প্রতি Viam এ একটি নতুন কাজ শুরু করেছি এবং তাদের সিস্টেম আর্কিটেকচার সম্পর্কে আরও জানতে আগ্রহী ছিলাম। অনেক রোবোটিক্স সিস্টেম কম-পাওয়ার এবং কম ব্যান্ডউইথ ডিভাইসের সমন্বয়ে গঠিত, অথবা দুর্বল নেটওয়ার্ক অবস্থায় কাজ করে। Viam হল একটি ওপেন সোর্স রোবোটিক্স সফ্টওয়্যার প্ল্যাটফর্ম যা বিশেষভাবে রোবট এবং অন্যান্য স্মার্ট মেশিনগুলিকে আরও নির্ভরযোগ্যভাবে যোগাযোগ করতে সহায়তা করার জন্য ডিজাইন করা হয়েছিল।
এটি দ্রুত, কাঠামোগত ক্লায়েন্ট-সার্ভার যোগাযোগের জন্য gRPC এবং মেশিনগুলির মধ্যে সরাসরি, পিয়ার-টু-পিয়ার যোগাযোগের জন্য WebRTC ব্যবহার করে। আসুন আরও বিশদে জিআরপিসি এবং ওয়েবআরটিসি ব্যবহারের সুবিধাগুলি অন্বেষণ করি।
রোবোটিক্সে জিআরপিসি এবং প্রোটোবুফ ব্যবহারের সুবিধা
রোবোটিক্সের জন্য জিআরপিসি ব্যবহার করার অনেক কারণ রয়েছে, যেমন উন্নত বিকাশকারী উত্পাদনশীলতা এবং বিকাশকারীর অভিজ্ঞতার জন্য। যাইহোক, সবচেয়ে আকর্ষক কারণ হল যে এটি গতির জন্য অপ্টিমাইজ করা হয়েছে, সম্ভবত 7-10x পর্যন্ত দ্রুতগতিতে HTTP-এর তুলনায় REST API-এর চেয়ে , হালকা প্রোটোবাফ মেসেজিং সহ।
কর্মক্ষমতা এবং দক্ষতা
- এনকোডিং: Protobuf দক্ষ বাইনারি এনকোডিং অফার করে, JSON-RPC- এর তুলনায় কম শক্তি, মেমরি, গণনা, বা ব্যান্ডউইথের সীমাবদ্ধতা সহ মেশিনগুলির জন্য আদর্শ।
- ট্রান্সপোর্ট: HTTP/2-এর ডিফল্ট ট্রান্সপোর্টের সাথে, gRPC বিকল্প ট্রান্সপোর্ট যেমন HTTP/1.1-এর সাথে gRPC-ওয়েব এবং WebRTC সমর্থন করে। এটি অন্তর্নিহিত পরিবহন প্রযুক্তির নমনীয়তার সাথে একটি সামঞ্জস্যপূর্ণ ইন্টারফেস প্রদান করে, বিশেষ করে স্ট্রিমিংয়ের সাথে।
Viam API- এর উপাদান এবং পরিষেবাগুলি ভাষা-অজ্ঞেয়বাদী প্রোটোকল বাফার (প্রোটোবাফ) পরিষেবা হিসাবে উপস্থাপিত হয় এবং প্রোটোবাফ পদ্ধতিতে কল করার সময় প্রোটোবাফ বার্তাগুলির পরিবহন এবং যোগাযোগের জন্য জিআরপিসি দায়ী।
বিশেষত, Viam মেশিনের যন্ত্রাংশ এবং SDK-ভিত্তিক অ্যাপ্লিকেশনগুলির মধ্যে উচ্চ-স্তরের মিথস্ক্রিয়াগুলির জন্য gRPC ব্যবহার করে, কাঠামোগত, কম-বিলম্বিত ডেটা বিনিময় এবং নিয়ন্ত্রণ কমান্ড সক্ষম করে। এটি করা কাজের সমন্বয় করার একটি কার্যকর উপায়, যেমন ক্যামেরা থেকে পয়েন্ট ক্লাউড পুনরুদ্ধার করা, বস্তুর বিভাজনের জন্য ডেটা বিশ্লেষণ করা এবং গণনা করা ভঙ্গির উপর ভিত্তি করে কাজগুলি সম্পাদন করার জন্য রোবটিক অস্ত্রকে নির্দেশ দেওয়া।
প্রোটোবাফ ট্রান্সমিটেড ডেটার আকার ছোট করে, ট্রান্সমিশনের সময় নেটওয়ার্ক ব্যান্ডউইথ সংরক্ষণ করে।
রোবোটিক্সে WebRTC ব্যবহারের সুবিধা
রোবোটিক্সে WebRTC ব্যবহার করার অনেক কারণ রয়েছে, যেমন নিরাপত্তা এবং ক্রস-প্ল্যাটফর্ম সামঞ্জস্যের জন্য। যাইহোক, সবচেয়ে বাধ্যতামূলক কারণ হল এটি একটি সরাসরি সংযোগ ব্যবহার করে।
পিয়ার-টু-পিয়ার যোগাযোগ
- সরাসরি : WebRTC ডিভাইসগুলির মধ্যে সরাসরি সংযোগের সুবিধা দেয়, কেন্দ্রীয় সার্ভারের উপর নির্ভরতা হ্রাস করে এবং ডেটার ট্রাভার্সাল রুট কমিয়ে দেয়।
- নেটওয়ার্ক অভিযোজনযোগ্যতা : মসৃণ কর্মক্ষমতা, যেমন ভিডিও স্ট্রিমিংয়ের জন্য নেটওয়ার্ক অবস্থার উপর ভিত্তি করে মিডিয়া গুণমান সামঞ্জস্য করে।
Viam পিয়ার-টু-পিয়ার যোগাযোগের জন্য WebRTC-এর উপর নির্ভর করে, যা মেশিনের যন্ত্রাংশ এবং Viam SDK-এর মধ্যে সরাসরি ভিডিও এবং ডেটা স্ট্রিম করার অনুমতি দেয়। এর অর্থ হল একবার প্রাথমিক সংযোগ স্থাপন হয়ে গেলে, আপনার ডেটাকে অন্য মেশিনের সাথে কথা বলার জন্য একটি কেন্দ্রীয় সার্ভারের মাধ্যমে দীর্ঘ পথ নিতে হবে না। এই সেটআপটি রিয়েল-টাইম প্রতিক্রিয়াশীলতা এবং অপারেশনাল দক্ষতা বিশেষ করে জটিল মেশিন কনফিগারেশনের সাথে অপ্টিমাইজ করে।
WebRTC সরাসরি পিয়ার-টু-পিয়ার যোগাযোগ সক্ষম করে, মধ্যবর্তী সার্ভারগুলি এড়িয়ে যা বিলম্ব বা ব্যর্থতার পয়েন্টগুলি প্রবর্তন করতে পারে।
পিয়ার-টু-পিয়ার রোবট যোগাযোগ সক্ষম করতে Viam কীভাবে gRPC এবং WebRTC ব্যবহার করে
দুটি মেশিনের অংশ নিয়ে গঠিত একটি আর্কেড ক্ল গেমের উদাহরণে এটি কীভাবে কাজ করে তা দেখা যাক: একটি ক্যামেরা এবং একটি বাহু।
Viam অ্যাপ (app.viam.com) সংযোগের অনুরোধ শোনে, সংযোগের বিশদ বিবরণ পাঠায় এবং তারপরে দুই সহকর্মীকে সরাসরি যোগাযোগ করতে দেয়। প্রাথমিক সংযোগগুলি gRPC-এর মাধ্যমে সহজতর করা হয়৷
একবার সংযুক্ত হলে, মেশিনের যন্ত্রাংশ WebRTC-এর মাধ্যমে যোগাযোগ করে, SDK এবং মেশিনের মধ্যে সমস্ত মিথস্ক্রিয়া WebRTC-এর মাধ্যমে gRPC পদ্ধতি কল ব্যবহার করে ঘটতে দেয়। অন্য কথায়, জিআরপিসি স্কিমা সিদ্ধান্ত নেয় যে ডেটা দেখতে কেমন এবং এটি কীভাবে প্যাকেজ করা হয়েছে, যখন WebRTC সেই ডেটার প্রকৃত ডেলিভারি এক জায়গা থেকে অন্য জায়গায় পরিচালনা করে।
Viam ব্যবহার করে রোবোটিক্স দিয়ে শুরু করুন
আপনি নিজে থেকে অনুরূপ পরিকাঠামো তৈরি করতে পারলেও, Viam অফ-দ্য-শেল্ফ রোবোটিক্স সফ্টওয়্যার দিয়ে এই ক্ষমতা প্রদান করে। অন-মেশিনের কার্যকারিতা ওপেন-সোর্স এবং অপারেট করার জন্য বিনামূল্যে। আপনি যদি শেষ পর্যন্ত একটি বহর পরিচালনা শুরু করেন, এটি ক্লাউড পরিষেবা এবং ডেটা স্টোরেজের জন্য ব্যবহার-ভিত্তিক বিলিং।
Viam ওয়েব অ্যাপ এবং SDK গুলি আপনাকে আপনার মেশিনের সাথে কাজ করতে সহায়তা করার জন্য ডিজাইন করা হয়েছে৷ যাইহোক, যদি আপনি পর্দার পিছনে কি ঘটছে তা অন্বেষণ করতে চান, অন্তর্নিহিত Viam gRPC API-এর সাথে কাজ করার জন্য ধাপে ধাপে নির্দেশাবলীর জন্য পোস্টম্যানে Viam APIs পাবলিক ওয়ার্কস্পেস দেখুন, যার মধ্যে রয়েছে:
gRPC API কল অনুমোদন করা হচ্ছে
হার্ডওয়্যার উপাদান নিয়ন্ত্রণ করার পদ্ধতি আহ্বান করা
সফ্টওয়্যার পরিষেবাগুলি পরিচালনা করার জন্য পদ্ধতিগুলি আহ্বান করা
আপনার হাতে রোবোটিক হাত নাও থাকতে পারে, তবে আপনি ইয়াহবুম বা SCUTTLE এর মতো রোভারের মতো আরও সাশ্রয়ী মূল্যের মেশিন দিয়ে এটি ব্যবহার করে দেখতে পারেন। লোকেদের রোবোটিক্স সম্পর্কে শিখতে সাহায্য করার জন্য Viam একটি ওপেন সোর্স রোভার ডিজাইন করেছে।
একটি রোভার পরিচালনা করতে gRPC এবং WebRTC ব্যবহার করুন
শুরু করতে, নিচের রান ইন পোস্টম্যান বোতামে ক্লিক করে স্পিন এ ভিয়াম রোভারের নমুনা সংগ্রহকে আপনার নিজস্ব কর্মক্ষেত্রে ফোর্ক করুন।
এবং এই সম্পদগুলির সাথে অনুসরণ করুন:
- ধাপে ধাপে কোডল্যাব: Viam-এর gRPC API-এর জন্য পোস্টম্যান টিউটোরিয়াল
- প্রতিটি অনুরোধ সম্পর্কে আরো বিস্তারিত জানার জন্য সংগ্রহ ডকুমেন্টেশন ব্রাউজ করুন
- ভিডিওটি দেখুন: Viam gRPC API দিয়ে একটি রোভার স্পিন করুন
প্রযুক্তিগত পর্যালোচনা দ্বারা: নিক হেহর