সুচিপত্র:

আপনার নিজের টার্টলবট রোবট তৈরি করুন!: 7 টি ধাপ
আপনার নিজের টার্টলবট রোবট তৈরি করুন!: 7 টি ধাপ

ভিডিও: আপনার নিজের টার্টলবট রোবট তৈরি করুন!: 7 টি ধাপ

ভিডিও: আপনার নিজের টার্টলবট রোবট তৈরি করুন!: 7 টি ধাপ
ভিডিও: ভাইভা বোর্ডে আপনার নিজের সম্পর্কে জানতে চায় কোন উদ্দেশ্যে? | @SushantaPaulCareerAdda 2024, জুলাই
Anonim
আপনার নিজের টার্টলবট রোবট তৈরি করুন!
আপনার নিজের টার্টলবট রোবট তৈরি করুন!
আপনার নিজের টার্টলবট রোবট তৈরি করুন!
আপনার নিজের টার্টলবট রোবট তৈরি করুন!
আপনার নিজের টার্টলবট রোবট তৈরি করুন!
আপনার নিজের টার্টলবট রোবট তৈরি করুন!

সম্পাদনা করুন:

সফ্টওয়্যার এবং নিয়ন্ত্রণ সম্পর্কিত আরও তথ্য এই লিঙ্কে পাওয়া যায়:

hackaday.io/project/167074-build-your-own-turtlebot-3-backbone

কোডের সরাসরি লিঙ্ক হল:

github.com/MattMgn/foxbot_core

কেন এই প্রকল্প?

Turtlebot 3 ইলেকট্রনিক্স, রোবোটিক্স এবং এমনকি এআই এর গভীরে প্রবেশের জন্য নিখুঁত প্ল্যাটফর্ম! আমি আপনাকে প্রস্তাব দিচ্ছি বৈশিষ্ট্য এবং কর্মক্ষমতা ত্যাগ না করে সাশ্রয়ী মূল্যের উপাদান দিয়ে ধাপে ধাপে আপনার নিজের টার্টলবট তৈরির। একটি বিষয় মনে রাখবেন: প্রাথমিক রোবট থেকে সেরা রাখা, এর মডুলারিটি, সরলতা এবং স্বায়ত্তশাসিত নেভিগেশনের জন্য বিপুল সংখ্যক প্যাকেজ এবং ওপেন সোর্স সম্প্রদায় থেকে AI।

এই প্রকল্পটি নতুনদের জন্য ইলেকট্রনিক্স, মেকানিক্স এবং কম্পিউটার সায়েন্সের ধারণা অর্জনের এবং আরও অভিজ্ঞদের জন্য কৃত্রিম বুদ্ধিমত্তা অ্যালগরিদম পরীক্ষা এবং বিকাশের জন্য একটি শক্তিশালী প্ল্যাটফর্ম পাওয়ার সুযোগ।

আপনি এই প্রকল্পে কি আবিষ্কার করবেন?

আপনি আবিস্কার করতে চলেছেন যে কোন অপরিহার্য যান্ত্রিক এবং ইলেকট্রনিক অংশগুলিকে মূল বট থেকে রাখতে হবে সম্পূর্ণ সামঞ্জস্যের নিশ্চয়তা দিতে।

পুরো নির্মাণ প্রক্রিয়াটি বিস্তারিত হবে: 3D পার্টস প্রিন্টিং, অ্যাসেম্বলিং এবং বিভিন্ন উপাদান, সোল্ডারিং এবং ইলেকট্রনিক্সকে একীভূত করে শেষ পর্যন্ত আরডুইনোতে কোড কম্পাইল করা। এই নির্দেশনাটি একটি 'হ্যালো ওয়ার্ল্ড' উদাহরণে শেষ হবে যা আপনাকে ROS এর সাথে পরিচিত করবে। যদি কিছু অস্পষ্ট মনে হয়, নির্দ্বিধায় প্রশ্ন জিজ্ঞাসা করুন!

সরবরাহ

ইলেকট্রনিক্স:

ROS চালানোর জন্য 1 x একক বোর্ড কম্পিউটার, উদাহরণস্বরূপ রাস্পবেরি পাই বা জেটসন ন্যানো হতে পারে

1 x Arduino DUE, আপনি একটি UNO বা একটি মেগা ব্যবহার করতে পারেন

1 x প্রোটো-বোর্ড যা Arduino DUE পিন-আউট ফিট করে এখানে পাওয়া যায়

এনকোডার সহ 2 x 12V ডিসি মোটর (100 RPM বিকল্প)

1 x L298N মোটর ড্রাইভার

2 x 5V নিয়ন্ত্রক

1 x ব্যাটারি (উদাহরণস্বরূপ 3S/4S LiPo ব্যাটারি)

2 x চালু/বন্ধ সুইচ

2 x LED

2 x 470kOhm প্রতিরোধক

3 x 4 পিন জেএসটি সংযোগকারী

1 x USB তারের (SBC এবং Arduino এর মধ্যে অন্তত একটি)

সেন্সর:

1 এক্স বর্তমান সেন্সর (alচ্ছিক)

1 x 9 স্বাধীনতা আইএমইউ ডিগ্রি (alচ্ছিক)

1 x LIDAR (alচ্ছিক)

চ্যাসি:

16 x Turtlebot মডুলার প্লেট (যা 3D মুদ্রিত হতে পারে)

2 x চাকা 65 মিমি ব্যাস (6 মিমি প্রস্থ বিকল্প)

4 x নাইলন স্পেসার 30 মিমি (alচ্ছিক)

20 x M3 সন্নিবেশ (alচ্ছিক)

অন্যান্য:

তারের

M2.5 এবং M3 স্ক্রু এবং সন্নিবেশ

3 ডি প্রিন্টার বা কেউ আপনার জন্য যন্ত্রাংশ মুদ্রণ করতে পারে

একটি সেট সঙ্গে একটি ড্রিল একটি ড্রিল এই মত একটি বিট

ধাপ 1: বর্ণনা

বর্ণনা
বর্ণনা
বর্ণনা
বর্ণনা

এই রোবটটি একটি সহজ ডিফারেনশিয়াল ড্রাইভ যা তাদের মোটরের উপর সরাসরি বসানো 2 টি চাকা এবং একটি বেলন কাস্টার ব্যবহার করে যা রোবটকে উপর থেকে পড়ে যাওয়া রোধ করতে পিছনে রাখা হয়। রোবট দুটি স্তরে বিভক্ত:

নিচের স্তর: প্রপালশন গ্রুপ (ব্যাটারি, মোটর কন্ট্রোলার এবং মোটর), এবং 'নিম্ন স্তরের' ইলেকট্রনিক্সের সাথে: আরডুইনো মাইক্রোকন্ট্রোলার, ভোল্টেজ রেগুলেটর, সুইচ …

উচ্চ স্তর: 'উচ্চ স্তরের' ইলেকট্রনিক যথা একক বোর্ড কম্পিউটার এবং LIDAR

কাঠামোর দৃust়তা নিশ্চিত করার জন্য সেই স্তরগুলি মুদ্রিত অংশ এবং স্ক্রুগুলির সাথে সংযুক্ত।

ইলেকট্রনিক পরিকল্পিত

পরিকল্পিত কিছুটা অগোছালো হতে পারে। এটি একটি পরিকল্পিত অঙ্কন এবং এটি সমস্ত তার, সংযোগকারী এবং প্রোটো-বোর্ডের প্রতিনিধিত্ব করে না কিন্তু এটি নিম্নলিখিত হিসাবে পড়া যেতে পারে:

3000mAh ধারণক্ষমতার একটি 3S লিটিহুম আয়ন পলিমার ব্যাটারি প্রথম সার্কিটকে শক্তি দেয়, এটি মোটর কন্ট্রোলার বোর্ড (L298N) এবং মোটর এনকোডার এবং Arduino এর জন্য প্রথম 5V নিয়ন্ত্রক উভয়কেই ক্ষমতা দেয়। এই সার্কিটটি একটি LED এর সাথে একটি সুইচের মাধ্যমে সক্ষম করা হয় যা তার চালু/বন্ধ অবস্থা নির্দেশ করে।

একই ব্যাটারি একটি দ্বিতীয় সার্কিটকে ক্ষমতা দেয়, ইনপুট ভোল্টেজটি 5V তে রূপান্তরিত করে সিঙ্গেল বোর্ড কম্পিউটারকে। এখানেও, একটি সুইচ এবং একটি LED এর মাধ্যমে সার্কিট সক্ষম করা হয়।

LIDAR বা ক্যামেরার মতো অতিরিক্ত সেন্সরগুলি সরাসরি ইউএসবি বা সিএসআই পোর্টের মাধ্যমে রাস্পবেরি পাইতে সরাসরি যুক্ত করা যেতে পারে।

যান্ত্রিক নকশা

রোবট ফ্রেমটি 16 টি অভিন্ন অংশ নিয়ে গঠিত যা 2 টি বর্গ স্তর (28cm প্রস্থ) গঠন করে। অনেকগুলি গর্ত আপনাকে যেখানে প্রয়োজন সেখানে অতিরিক্ত অংশ মাউন্ট করার অনুমতি দেয় এবং একটি সম্পূর্ণ মডুলার ডিজাইন দেয়। এই প্রকল্পের জন্য, আমি মূল TurtleBot3 প্লেটগুলি পাওয়ার সিদ্ধান্ত নিয়েছি কিন্তু আপনি তাদের 3D মুদ্রণ করতে পারেন কারণ তাদের নকশা ওপেন সোর্স।

ধাপ 2: মোটর ব্লক সমাবেশ

মোটর ব্লক সমাবেশ
মোটর ব্লক সমাবেশ
মোটর ব্লক সমাবেশ
মোটর ব্লক সমাবেশ
মোটর ব্লক সমাবেশ
মোটর ব্লক সমাবেশ

মোটর প্রস্তুতি

প্রথম ধাপ হল প্রতিটি মোটরের চারপাশে 1 মিমি পুরু ফেনা টেপ যুক্ত করা যাতে কম্পন এবং শব্দ প্রতিরোধ করা যায় যখন মোটর ঘুরবে।

মুদ্রিত যন্ত্রাংশ

মোটর হোল্ডারের ফলে দুটি অংশ হয় যা মোটরকে ভাইস এর মত ধরে রাখে। হোল্ডারে মোটর টাইট করার জন্য 4 টি স্ক্রু অর্জন করা হয়েছে।

প্রতিটি ধারক বেশ কয়েকটি গর্ত দ্বারা গঠিত যা M3 সন্নিবেশ হোস্ট করে কাঠামোর উপর মাউন্ট করা হয়। প্রকৃতপক্ষে প্রয়োজনের চেয়ে অনেক বেশি ছিদ্র রয়েছে, অতিরিক্ত গর্তগুলি শেষ পর্যন্ত অতিরিক্ত অংশ মাউন্ট করার জন্য ব্যবহার করা যেতে পারে।

3 ডি প্রিন্টার সেটিংস: সমস্ত অংশ নিম্নলিখিত প্যারামিটার দিয়ে মুদ্রিত হয়

  • 0.4 মিমি ব্যাসের অগ্রভাগ
  • 15% উপাদান infill
  • 0.2 মিমি উচ্চতার স্তর

চাকা

নির্বাচিত চাকাগুলি রাবার দিয়ে আচ্ছাদিত হয় যাতে সর্বাধিক আনুগত্য হয় এবং স্লিপ মুক্ত ঘূর্ণায়মান অবস্থা নিশ্চিত হয়। একটি ক্ল্যাম্পিং স্ক্রু মোটর খাদে লাগানো চাকা বজায় রাখে। চাকাটির ব্যাস ছোট বড় ধাপ এবং স্থল অনিয়ম অতিক্রম করার জন্য যথেষ্ট বড় হওয়া উচিত (সেই চাকাগুলি 65 মিমি ব্যাস)।

স্থিরকরণ

যখন আপনি একটি মোটর ব্লক দিয়ে সম্পন্ন করেন, পূর্ববর্তী ক্রিয়াকলাপগুলি পুনরাবৃত্তি করুন এবং তারপর কেবল M3 স্ক্রু দিয়ে স্তরে তাদের ঠিক করুন।

ধাপ 3: সুইচ এবং কেবল প্রস্তুতি

সুইচ এবং কেবল প্রস্তুতি
সুইচ এবং কেবল প্রস্তুতি
সুইচ এবং কেবল প্রস্তুতি
সুইচ এবং কেবল প্রস্তুতি
সুইচ এবং কেবল প্রস্তুতি
সুইচ এবং কেবল প্রস্তুতি

মোটর তারের প্রস্তুতি

সাধারণত মোটর-এনকোডারটি একটি তারের সাথে আসে যার মধ্যে একটি 6pin সংযোগকারী যা এনকোডার PCB এর পিছনে সংযোগ করে এবং অন্য দিকে নগ্ন তারগুলি।

আপনার প্রোটো-বোর্ড বা এমনকি আপনার Arduino এ সরাসরি তাদের সোল্ডার করার সম্ভাবনা আছে, কিন্তু আমি আপনাকে এর পরিবর্তে মহিলা পিন হেডার এবং JST-XH সংযোগকারী ব্যবহার করার পরামর্শ দিচ্ছি। এইভাবে আপনি তাদের প্রোটো-বোর্ডে প্লাগ/আনপ্লাগ করতে পারেন এবং আপনার সমাবেশকে সহজ করে তুলতে পারেন।

টিপস: আপনি আপনার তারের চারপাশে সম্প্রসারণযোগ্য স্লিভিং বিনুনি এবং সংযোজকের কাছে সঙ্কুচিত নলের টুকরো যোগ করতে পারেন, এতে করে আপনি একটি 'ক্লিন' ক্যাবল পাবেন।

সুইচ এবং LED

দুটি পাওয়ার সার্কিট সক্ষম করার জন্য, 2 টি LED এবং সুইচ তারগুলি প্রস্তুত করুন: প্রথমে LED পিনের একটিতে 470kOhm রোধক, তারপর একটি সুইচ পিনে LED সোল্ডার করুন। এখানেও, আপনি সঙ্কুচিত টিউব একটি টুকরা ব্যবহার করতে পারেন ভিতরে প্রতিরোধক লুকানোর জন্য। সঠিক দিকের LED টি ঝালাই করতে সাবধান! দুটি সুইচ/নেতৃত্বাধীন তার পেতে এই অপারেশনটি পুনরাবৃত্তি করুন।

সমাবেশ

সংশ্লিষ্ট 3D মুদ্রিত অংশে পূর্বে তৈরি তারগুলি একত্রিত করুন। সুইচ বজায় রাখার জন্য একটি বাদাম ব্যবহার করুন, LEDs আঠালো প্রয়োজন হয় না, শুধু গর্ত মধ্যে এটি মাপসই যথেষ্ট জোর।

ধাপ 4: ইলেকট্রনিক বোর্ড তারের

ইলেকট্রনিক বোর্ড ওয়্যারিং
ইলেকট্রনিক বোর্ড ওয়্যারিং
ইলেকট্রনিক বোর্ড ওয়্যারিং
ইলেকট্রনিক বোর্ড ওয়্যারিং
ইলেকট্রনিক বোর্ড ওয়্যারিং
ইলেকট্রনিক বোর্ড ওয়্যারিং

বোর্ড লেআউট

Arduino বোর্ড লেআউট ফিটিং একটি প্রোটো-বোর্ড তারের সংখ্যা কমাতে ব্যবহৃত হয়। প্রোটো-বোর্ডের শীর্ষে, L298N ডুপন্ট মহিলা হেডার দিয়ে স্তুপীকৃত (ডুপন্ট 'Arduino মত' হেডার)।

L298N প্রস্তুতি

মূলত, L298N বোর্ড সংশ্লিষ্ট পুরুষ ডুপন্ট হেডারের সাথে আসে না, আপনাকে বোর্ডের নিচে 9 পিনের সারি যুক্ত করতে হবে। আপনি ছবিতে দেখতে পাচ্ছেন বিদ্যমান গর্তগুলির সমান্তরালে 1 মিমি ব্যাসের ড্রিল বিট সহ 9 টি গর্ত উপলব্ধি করতে হবে। তারপর 2 সারির সংশ্লিষ্ট পিনগুলি সোল্ডারিং উপকরণ এবং ছোট তারের সাথে সংযুক্ত করুন।

L298N পিন-আউট

L298N 2 টি চ্যানেল নিয়ে গঠিত যা গতি এবং দিকনির্দেশনা নিয়ন্ত্রণ করে:

2 টি ডিজিটাল আউটপুটের মাধ্যমে নির্দেশনা, যাকে বলা হয় IN1, IN2, প্রথম চ্যানেলের জন্য এবং দ্বিতীয়টির জন্য IN3 এবং IN4

1 টি ডিজিটাল আউটপুটের মাধ্যমে গতি, যাকে প্রথম চ্যানেলের জন্য ENA এবং দ্বিতীয়টির জন্য ENB বলা হয়

আমি Arduino এর সাথে নিম্নলিখিত পিন-আউটটি বেছে নিয়েছি:

বাম মোটর: পিন 3 এ IN1, পিন 4 এ IN2, পিন 2 এ ENA

ডান মোটর: পিন 5 এ IN3, পিন 6 এ IN4, পিন 7 এ ENB

5V নিয়ন্ত্রক

এমনকি যদি l298N সাধারণত 5V প্রদান করতে সক্ষম হয়, তবুও আমি একটি ছোট নিয়ন্ত্রক যোগ করি। এটি VIN পোর্টের মাধ্যমে Arduino এবং মোটরগুলিতে 2 এনকোডারগুলিকে ক্ষমতা দেয়। আপনি বিল্ট-ইন L298N 5V রেগুলেটর ব্যবহার করে এই ধাপটি এড়িয়ে যেতে পারেন।

জেএসটি সংযোগকারী এবং এনকোডার পিন-আউট

4 টি পিন মহিলা জেএসটি-এক্সএইচ সংযোগকারী অ্যাডাপ্টার ব্যবহার করুন, প্রতিটি সংযোগকারীকে এর সাথে সংযুক্ত করা হয়:

  • নিয়ন্ত্রক থেকে 5V
  • একটি গ্রাউন্ড
  • দুটি ডিজিটাল ইনপুট পোর্ট (উদাহরণস্বরূপ: ডান এনকোডারের জন্য 34 এবং 38 এবং বামটির জন্য 26 এবং 30)

অতিরিক্ত I2C

আপনি হয়তো লক্ষ্য করেছেন, প্রোটো-বোর্ডে একটি অতিরিক্ত 4pin JST সংযোগকারী রয়েছে। এটি একটি IMU এর মত I2C ডিভাইস সংযোগের জন্য ব্যবহৃত হয়, আপনি একই কাজ করতে পারেন এবং এমনকি আপনার নিজের পোর্ট যোগ করতে পারেন।

ধাপ 5: নিচের স্তরে মোটর গ্রুপ এবং আরডুইনো

মোটর গ্রুপ এবং আরডুইনো নিচের স্তরে
মোটর গ্রুপ এবং আরডুইনো নিচের স্তরে
মোটর গ্রুপ এবং আরডুইনো নিচের স্তরে
মোটর গ্রুপ এবং আরডুইনো নিচের স্তরে
মোটর গ্রুপ এবং আরডুইনো নিচের স্তরে
মোটর গ্রুপ এবং আরডুইনো নিচের স্তরে

মোটর ব্লক স্থিরকরণ

একবার নিচের স্তরটি 8 টি টার্টলবটের প্লেটের সাথে একত্রিত হয়ে গেলে, মোটর ব্লকগুলি বজায় রাখার জন্য সরাসরি সন্নিবেশে 4 এম 3 স্ক্রু ব্যবহার করুন। তারপর আপনি L298N আউটপুট এবং প্রোটো-বোর্ড JST সংযোগকারীদের পূর্বে তৈরি তারগুলি মোটর পাওয়ার তারগুলি প্লাগ করতে পারেন।

বিদ্যুৎ বিতরণ

বিদ্যুৎ বিতরণ সহজভাবে একটি বাধা টার্মিনাল ব্লক দ্বারা উপলব্ধ করা হয়। বাধাটির একপাশে, একটি XT60 মহিলা প্লাগ সহ একটি তারের লিপো ব্যাটারির সাথে সংযোগ করার জন্য স্ক্রু করা হয়। অন্য দিকে, আমাদের দুটি LED/সুইচ তারগুলি পূর্বে বিক্রি করা হয়েছে। এইভাবে প্রতিটি সার্কিট (মোটর এবং Arduino) তার নিজস্ব সুইচ এবং সংশ্লিষ্ট সবুজ LED দিয়ে সক্ষম করা যেতে পারে।

তারের ব্যবস্থাপনা

দ্রুত আপনি অনেক তারের সঙ্গে মোকাবিলা করতে হবে! অগোছালো দিক কমাতে, আপনি 'টেবিল' পূর্বে 3D মুদ্রিত ব্যবহার করতে পারেন। টেবিলে, আপনার ইলেকট্রনিক বোর্ডগুলিকে ডবল পার্শ্বযুক্ত টেপ দিয়ে বজায় রাখুন এবং টেবিলের নীচে তারগুলি অবাধে প্রবাহিত হতে দিন।

ব্যাটারি রক্ষণাবেক্ষণ

আপনার রোবট চালানোর সময় ব্যাটারির নিjectionসরণ এড়াতে, আপনি কেবল একটি চুলের ইলাস্টিক ব্যান্ড ব্যবহার করতে পারেন।

রোলার কাস্টার

সত্যিই একটি বেলন কাস্টার নয় কিন্তু একটি সহজ অর্ধ গোলক নিচের স্তরে 4 টি স্ক্রু দিয়ে স্থির। রোবটের স্থায়িত্ব নিশ্চিত করার জন্য এটি যথেষ্ট।

ধাপ 6: উপরের স্তরে একক বোর্ড কম্পিউটার এবং সেন্সর

উপরের স্তরে একক বোর্ড কম্পিউটার এবং সেন্সর
উপরের স্তরে একক বোর্ড কম্পিউটার এবং সেন্সর
উপরের স্তরে একক বোর্ড কম্পিউটার এবং সেন্সর
উপরের স্তরে একক বোর্ড কম্পিউটার এবং সেন্সর
উপরের স্তরে একক বোর্ড কম্পিউটার এবং সেন্সর
উপরের স্তরে একক বোর্ড কম্পিউটার এবং সেন্সর

কোন একক বোর্ড কম্পিউটার নির্বাচন করতে হবে?

আমি আপনাকে বিখ্যাত রাস্পবেরি পাই উপস্থাপন করার প্রয়োজন নেই, এর ব্যবহারের ক্ষেত্রে সংখ্যা রোবটিক্স ক্ষেত্রকে ছাড়িয়ে গেছে। কিন্তু রাস্পবেরি পাইয়ের জন্য অনেক বেশি শক্তিশালী চ্যালেঞ্জার রয়েছে যা আপনি উপেক্ষা করতে পারেন। প্রকৃতপক্ষে এনভিডিয়া থেকে জেটসন ন্যানো তার প্রসেসর ছাড়াও একটি শক্তিশালী 128-কোর গ্রাফিকাল কার্ড যুক্ত করে। এই বিশেষ গ্রাফিক্যাল কার্ডটি কম্পিউটেশনাল ব্যয়বহুল কাজ যেমন ইমেজ প্রসেসিং বা নিউরাল নেটওয়ার্ক ইনফারেন্সকে ত্বরান্বিত করার জন্য তৈরি করা হয়েছে।

এই প্রকল্পের জন্য আমি জেটসন ন্যানো বেছে নিয়েছি এবং আপনি সংযুক্ত ফাইলগুলির মধ্যে সংশ্লিষ্ট 3D অংশটি খুঁজে পেতে পারেন, কিন্তু আপনি যদি রাস্পবেরি পাই এর সাথে যেতে চান তবে এখানে অনেক মুদ্রণযোগ্য কেস রয়েছে।

5V রেগুলেটর

আপনি আপনার রোবট নিয়ে আসার জন্য যে বোর্ডই নিয়েছেন না কেন, আপনার একটি 5V রেগুলেটর দরকার। সর্বশেষ রাস্পবেরি পাই 4 এর জন্য 1.25A সর্বোচ্চ প্রয়োজন কিন্তু জেটসন ন্যানো চাপের জন্য 3A পর্যন্ত প্রয়োজন তাই ভবিষ্যতে উপাদানগুলির (সেন্সর, লাইট, স্টেপার …) জন্য পাওয়ার রিজার্ভ রাখার জন্য আমি Pololu 5V 6A বেছে নিলাম, কিন্তু যেকোন সস্তা 5V 2A করা উচিত চাকরীটি. জেটসন একটি 5.5 মিমি ডিসি ব্যারেল এবং পাই একটি মাইক্রো ইউএসবি ব্যবহার করে, সংশ্লিষ্ট ক্যাবলটি ধরুন এবং এটি নিয়ন্ত্রক আউটপুটে বিক্রি করুন।

LIDAR লেআউট

এখানে ব্যবহৃত LIDAR হল LDS-01, অন্যান্য 2D LIDAR রয়েছে যা RPLidar A1/A2/A3, YDLidar X4/G4 বা এমনকি Hokuyo LIDARs এর মত ব্যবহার করা যেতে পারে। একমাত্র প্রয়োজনীয়তা হল এটি USB এর মাধ্যমে প্লাগ করা এবং কাঠামোর উপরে কেন্দ্রীভূত করা প্রয়োজন। প্রকৃতপক্ষে যদি LIDAR ভালভাবে কেন্দ্রীভূত না হয়, তাহলে SLAM অ্যালগরিদম দ্বারা তৈরি মানচিত্র দেয়ালের আনুমানিক অবস্থান এবং তাদের বাস্তব অবস্থান থেকে বাধা স্থানান্তর করতে পারে। এছাড়াও যদি রোবট থেকে কোন বাধা লেজার রশ্মি অতিক্রম করে, তাহলে এটি পরিসীমা এবং দৃশ্যের ক্ষেত্র হ্রাস করতে চলেছে।

LIDAR মাউন্ট করা

LIDAR একটি 3D মুদ্রিত অংশে মাউন্ট করা হয় যা তার আকৃতি অনুসরণ করে, অংশটি নিজেই একটি আয়তক্ষেত্রাকার প্লেটে ধরে থাকে (আসলে ছবির পাতলা পাতলা কাঠের মধ্যে কিন্তু 3D মুদ্রিতও হতে পারে)। তারপরে একটি অ্যাডাপ্টারের অংশটি নাইলন স্পেসারগুলির সাথে উপরের টার্টলবট প্লেটে সংযুক্ত করতে দেয়।

অতিরিক্ত সেন্সর বা LIDAR প্রতিস্থাপন হিসাবে ক্যামেরা

আপনি যদি LIDAR (যার দাম প্রায় 100 $) হয়, খুব বেশি টাকা খরচ করতে না চান, তাহলে একটি ক্যামেরার জন্য যান: সেখানেও রয়েছে SLAM অ্যালগরিদম যা শুধুমাত্র একটি একক RGB ক্যামেরা দিয়ে চলে। এসবিসি উভয়ই ইউএসবি বা সিএসআই ক্যামেরা গ্রহণ করে।

তাছাড়া ক্যামেরা আপনাকে কম্পিউটার ভিশন এবং অবজেক্ট ডিটেকশন স্ক্রিপ্ট চালাতে দেবে!

সমাবেশ

রোবট বন্ধ করার আগে, উপরের প্লেটের বড় গর্তের মধ্য দিয়ে কেবলগুলি পাস করুন:

  • 5V রেগুলেটর থেকে আপনার এসবিসিতে সংশ্লিষ্ট ক্যাবল
  • Arduino DUE এর প্রোগ্রামিং পোর্ট (ডিসি ব্যারেলের নিকটতম) থেকে আপনার SBC- এর একটি USB পোর্টে USB কেবল

তারপরে উপরের প্লেটটিকে এক ডজন স্ক্রু দিয়ে অবস্থানে ধরে রাখুন। আপনার রোবট এখন প্রোগ্রাম করার জন্য প্রস্তুত, ভাল হয়েছে!

ধাপ 7: এটি সরান

Arduino কম্পাইল করুন

আপনার প্রিয় Arduino IDE খুলুন, এবং own_turtlebot_core নামক প্রকল্প ফোল্ডারটি আমদানি করুন, তারপর আপনার বোর্ড এবং সংশ্লিষ্ট পোর্ট নির্বাচন করুন, আপনি এই চমৎকার টিউটোরিয়ালটি দেখতে পারেন।

কোর সেটিংস সামঞ্জস্য করুন

প্রকল্পটি দুটি ফাইলের সমন্বয়ে গঠিত এবং একটিকে আপনার রোবটের সাথে মানিয়ে নিতে হবে। তাই আসুন নিজের

#ARDUINO_DUE সংজ্ঞায়িত করুন // ** এই লাইনটি মন্তব্য করুন যদি আপনি একটি বকেয়া ব্যবহার না করেন **

লাইনটি মন্তব্য না করলে শুধুমাত্র Arduino DUE এর সাথে ব্যবহার করা উচিত।

#নির্ধারণ করুন RATE_CONTROLLER_KP 130.0 // ** এই মান টিউন করুন **

RATE_CONTROLLER_KD 5000000000000.0.0 নির্ধারণ করুন ** ** এই মান টিউন করুন

সেই parameters টি প্যারামিটার কাঙ্ক্ষিত গতি বজায় রাখার জন্য PID দ্বারা ব্যবহৃত রেট কন্ট্রোলার লাভের সাথে মিলে যায়। ব্যাটারির ভোল্টেজ, রোবটের ভর, চাকার ব্যাস এবং আপনার মোটরের যান্ত্রিক গিয়ারের উপর নির্ভর করে আপনাকে তাদের মান মানিয়ে নিতে হবে। পিআইডি একটি ক্লাসিক কন্ট্রোলার এবং আপনি এখানে বিস্তারিত বলবেন না কিন্তু এই লিঙ্কটি আপনাকে আপনার নিজের সুর করার জন্য যথেষ্ট ইনপুট দেবে।

/ * পিন সংজ্ঞায়িত করুন */

// মোটর A (ডান) const বাইট motorRightEncoderPinA = 38; // ** আপনার পিন NB এর সাথে সংশোধন করুন ** কনস্ট বাইট motorRightEncoderPinB = 34; // ** আপনার পিন এনবি দিয়ে সংশোধন করুন ** কনস্ট বাইট enMotorRight = 2; // ** আপনার পিন NB এর সাথে সংশোধন করুন ** const byte in1MotorRight = 4; // ** আপনার পিন NB দিয়ে সংশোধন করুন ** const byte in2MotorRight = 3; // ** আপনার পিন এনবি দিয়ে সংশোধন করুন ** // মোটর বি (বাম) কনস্ট বাইট মোটর লেফট এনকোডারপিনা = 26; // ** আপনার পিন এনবি দিয়ে সংশোধন করুন ** কনস্ট বাইট মোটর লেফট এনকোডারপিনবি = 30; // ** আপনার পিন এনবি দিয়ে সংশোধন করুন ** কনস্ট বাইট enMotorLeft = 7; // ** আপনার পিন NB এর সাথে সংশোধন করুন ** const byte in1MotorLeft = 6; // ** আপনার পিন NB দিয়ে সংশোধন করুন ** const byte in2MotorLeft = 5; // ** আপনার পিন এনবি দিয়ে সংশোধন করুন **

এই ব্লকটি L298N এবং Arduino এর মধ্যে পিনআউট সংজ্ঞায়িত করে, কেবল আপনার সাথে মেলাতে পিন নম্বরটি সংশোধন করুন। যখন আপনি কনফিগ ফাইলটি সম্পন্ন করেন, কোডটি কম্পাইল করুন এবং আপলোড করুন!

ROS ইনস্টল এবং কনফিগার করুন

একবার আপনি এই ধাপে পৌঁছে গেলে, নির্দেশাবলী চমৎকার TurtleBot3 এর ম্যানুয়ালের বিস্তারিত নির্দেশাবলীর মতোই, আপনাকে সাবধানে অনুসরণ করতে হবে

ভালভাবে সম্পন্ন TurtleBot 3 এখন আপনার এবং আপনি ROS দিয়ে সমস্ত বিদ্যমান প্যাকেজ এবং টিউটোরিয়াল চালাতে পারেন।

ঠিক আছে কিন্তু ROS কি?

ROS মানে রোবট অপারেটিং সিস্টেম, এটি প্রথমে বেশ জটিল মনে হতে পারে কিন্তু এটি নয়, শুধু হার্ডওয়্যার (সেন্সর এবং অ্যাকচুয়েটর) এবং সফটওয়্যারের মধ্যে যোগাযোগের একটি উপায় কল্পনা করুন (নেভিগেশন, কন্ট্রোল, কম্পিউটার ভিশন এর অ্যালগরিদম …)। উদাহরণস্বরূপ, আপনি সহজেই আপনার বর্তমান LIDAR কে অন্য কোনো মডেলের সাথে অদলবদল করতে পারেন আপনার সেটআপ না ভেঙ্গে, কারণ প্রতিটি LIDAR একই লেজারস্ক্যান বার্তা প্রকাশ করে। ROS ব্যাপকভাবে ব্যবহৃত হয় রোবোটিক্স, আপনার প্রথম উদাহরণ চালান

ROS এর জন্য 'হ্যালো ওয়ার্ল্ড' সমতুল্য দূরবর্তী কম্পিউটারের মাধ্যমে আপনার রোবটকে টেলিওপারেট করে। আপনি যা করতে চান তা হল মোটরগুলিকে স্পিন করার জন্য বেগ কমান্ড পাঠানো, কমান্ডগুলি এই পাইপটি অনুসরণ করে:

  • একটি turtlebot_teleop নোড, দূরবর্তী কম্পিউটারে চলমান, একটি "/cmd_vel" বিষয় প্রকাশ করুন একটি টুইস্ট বার্তা সহ
  • এই বার্তাটি ROS বার্তা নেটওয়ার্কের মাধ্যমে SBC- এ পাঠানো হয়
  • একটি সিরিয়াল নোড Arduino- এ "/cmd_vel" পাওয়ার অনুমতি দেয়
  • আরডুইনো বার্তাটি পড়ে এবং রোবটের কাঙ্ক্ষিত রৈখিক এবং কৌণিক বেগের সাথে মেলাতে প্রতিটি মোটরের কৌণিক হার নির্ধারণ করে

এই অপারেশনটি সহজ এবং উপরে তালিকাভুক্ত কমান্ড লাইনগুলি চালানোর মাধ্যমে অর্জন করা যায়! আপনি যদি আরও বিস্তারিত তথ্য চান তবে ভিডিওটি দেখুন।

[এসবিসি]

roscore

[এসবিসি]

rosrun rosserial_python serial_node.py _port: =/dev/ttyACM0 _baud: = 115200

[দূরবর্তী কম্পিউটার]

TURTLEBOT3_MODEL = $ {TB3_MODEL} রপ্তানি করুন

roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

আরো যেতে

সমস্ত সরকারী উদাহরণ চেষ্টা করার আগে আপনাকে একটি শেষ জিনিস জানতে হবে, ম্যানুয়াল প্রতিবার যখন আপনি এই কমান্ডের মুখোমুখি হন:

roslaunch turtlebot3_bringup turtlebot3_robot.launch

আপনার পরিবর্তে আপনার SBC এ এই কমান্ডটি চালাতে হবে:

rosrun rosserial_python serial_node.py _port: =/dev/ttyACM0 _baud: = 115200

এবং যদি আপনার LIDAR থাকে তবে আপনার SBC- এ সংশ্লিষ্ট কমান্ডটি চালান, আমার ক্ষেত্রে আমি নীচের লাইন সহ LDS01 চালাই:

roslaunch hls_lfcd_lds_driver hlds_laser.launch

এবং এটুকুই, আপনি নিশ্চিতভাবেই আপনার নিজের টার্টলবট তৈরি করেছেন:) আপনি ROS- এর অসাধারণ ক্ষমতা এবং কোড ভিশন এবং মেশিন লার্নিং অ্যালগরিদম আবিষ্কার করতে প্রস্তুত।

প্রস্তাবিত: