সুচিপত্র:

ম্যাটল্যাব ভিত্তিক ROS রোবোটিক কন্ট্রোলার: 9 টি ধাপ
ম্যাটল্যাব ভিত্তিক ROS রোবোটিক কন্ট্রোলার: 9 টি ধাপ

ভিডিও: ম্যাটল্যাব ভিত্তিক ROS রোবোটিক কন্ট্রোলার: 9 টি ধাপ

ভিডিও: ম্যাটল্যাব ভিত্তিক ROS রোবোটিক কন্ট্রোলার: 9 টি ধাপ
ভিডিও: 美国软件不授权制裁中国高校陷困境,专利世界第二不值钱明星越南抢订单 MATLAB does not authorize universities, patent second worthless. 2024, নভেম্বর
Anonim
Image
Image
ম্যাটল্যাব ভিত্তিক ROS রোবোটিক কন্ট্রোলার
ম্যাটল্যাব ভিত্তিক ROS রোবোটিক কন্ট্রোলার

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

ROS একটি উদীয়মান কাঠামো যা জটিল রোবোটিক্স সিস্টেম তৈরিতে ব্যবহৃত হয়। এর অ্যাপ্লিকেশনগুলির মধ্যে রয়েছে: অটোমেটেড অ্যাসেম্বলি সিস্টেম, টেলিওপারেশন, প্রোস্টেটিক আর্মস এবং ইন্ডাস্ট্রিয়াল সেক্টরের ভারী যন্ত্রপাতি।

গবেষকরা এবং প্রকৌশলীরা প্রোটোটাইপগুলি বিকাশের জন্য ROS ব্যবহার করেন, যখন বিভিন্ন বিক্রেতারা তাদের পণ্য তৈরির জন্য এটি ব্যবহার করে। এটি একটি জটিল স্থাপত্য যা এটি একটি খোঁড়া মানুষ দ্বারা পরিচালিত করা কঠিন করে তোলে। ROS এর সাথে ইন্টারফেস লিঙ্ক তৈরির জন্য MATLAB ব্যবহার করা একটি অভিনব পন্থা যা গবেষক, প্রকৌশলী এবং বিক্রেতাদের আরও শক্তিশালী সমাধান তৈরিতে সাহায্য করতে পারে।

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

ভিডিও-এডিটিং ক্রেডিট: আম্মার আখের, [email protected]

সরবরাহ

প্রকল্পের জন্য নিম্নলিখিত উপাদানগুলি প্রয়োজন:

(1) ROS পিসি/রোবট

(2) রাউটার

(3) MATLAB সহ পিসি (সংস্করণ: 2014 বা তার উপরে)

ধাপ 1: সবকিছু সেটআপ করা

সবকিছু সেটআপ করা
সবকিছু সেটআপ করা

এই নির্দেশের জন্য, আমি আমার লিনাক্স পিসি এবং রোজ-কাইনেটিকের জন্য উবুন্টু 16.04 ব্যবহার করছি, তাই বিভ্রান্তি এড়ানোর জন্য আমি রোজ কাইনেটিক এবং উবুন্টু 16.04 ব্যবহার করার পরামর্শ দিচ্ছি কারণ এতে রোজ-কাইনেটিকের জন্য সর্বোত্তম সমর্থন রয়েছে। কিভাবে রোজ কাইনেটিক ইনস্টল করবেন সে সম্পর্কে আরও তথ্যের জন্য https://wiki.ros.org/kinetic/Installation/Ubuntu- এ যান। ম্যাটল্যাবের জন্য আপনি হয় একটি লাইসেন্স ক্রয় করুন অথবা এখান থেকে একটি ট্রেল সংস্করণ ডাউনলোড করুন।

পদক্ষেপ 2: কন্ট্রোলার কীভাবে কাজ করে তা বোঝা

কন্ট্রোলার কীভাবে কাজ করে তা বোঝা
কন্ট্রোলার কীভাবে কাজ করে তা বোঝা

একটি পিসি MATLAB এ রোবটিক নিয়ামক চালায়। কন্ট্রোলার আইপি অ্যাড্রেস এবং রোজ পিসি/রোবটের পোর্ট নেয়।

কন্ট্রোলার এবং রোজ পিসি/রোবটের মধ্যে যোগাযোগের জন্য একটি রোজ-টপিক ব্যবহার করা হয়, যা নিয়ামক দ্বারা ইনপুট হিসেবেও নেওয়া হয়। একটি LAN (লোকাল এরিয়া নেটওয়ার্ক) তৈরির জন্য মডেমের প্রয়োজন হয় এবং এটিই তার নেটওয়ার্কের সাথে সংযুক্ত সকল ডিভাইসে Ip ঠিকানা প্রদান করে। অতএব রোজ পিসি/রোবট এবং পিসি যা নিয়ামক চালাচ্ছে উভয়ই একই নেটওয়ার্কের সাথে সংযুক্ত থাকতে হবে (যেমন মডেমের নেটওয়ার্ক)। সুতরাং এখন যখন আপনি জানেন যে "এটি কীভাবে কাজ করে", আসুন "এটি কীভাবে তৈরি হয়" এ আসি …

ধাপ 3: একটি ROS-MATLAB ইন্টারফেস তৈরি করা

একটি ROS-MATLAB ইন্টারফেস তৈরি করা
একটি ROS-MATLAB ইন্টারফেস তৈরি করা
একটি ROS-MATLAB ইন্টারফেস তৈরি করা
একটি ROS-MATLAB ইন্টারফেস তৈরি করা
একটি ROS-MATLAB ইন্টারফেস তৈরি করা
একটি ROS-MATLAB ইন্টারফেস তৈরি করা

ROS-MATLABI ইন্টারফেস MATLAB এ তাদের রোবট অ্যালগরিদমগুলির প্রোটোটাইপিং এবং ROS- সামঞ্জস্যপূর্ণ রোবটগুলিতে এটি পরীক্ষা করার জন্য গবেষক এবং শিক্ষার্থীদের জন্য একটি দরকারী ইন্টারফেস। একটি ROS- সক্ষম রোবট বা রোবট সিমুলেটর যেমন Gazebo এবং V-REP।

আপনার MATLAB এ রোবটিক্স সিস্টেম টুলবক্স ইনস্টল করার জন্য, কেবল টুলবারে অ্যাড-অন অপশনে যান এবং অ্যাড-অন এক্সপ্লোরারে রোবোটিক টুলবক্স অনুসন্ধান করুন। রোবটিক টুলবক্স ব্যবহার করে আমরা একটি ROS নোডের মতো একটি বিষয় প্রকাশ বা সাবস্ক্রাইব করতে পারি এবং আমরা এটিকে ROS মাস্টার বানাতে পারি। MATLAB-ROS ইন্টারফেসে ROS এর বেশিরভাগ কার্যকারিতা রয়েছে যা আপনার প্রকল্পগুলির জন্য প্রয়োজন হতে পারে।

ধাপ 4: আইপি ঠিকানা পাওয়া

আইপি ঠিকানা পাওয়া
আইপি ঠিকানা পাওয়া
আইপি ঠিকানা পাওয়া
আইপি ঠিকানা পাওয়া

কন্ট্রোলারের কাজ করার জন্য এটি অপরিহার্য যে আপনি আপনার ROS রোবট/পিসির আইপি ঠিকানা এবং MATLAB এ নিয়ামক চালানো পিসি জানেন।

আপনার পিসির আইপি পেতে:

উইন্ডোজ এ:

কমান্ড প্রম্পট খুলুন এবং ipconfig কমান্ড টাইপ করুন এবং IPv4 ঠিকানাটি নোট করুন

লিনাক্সের জন্য:

Ifconfig কমান্ড টাইপ করুন এবং ইনট ঠিকানাটি নোট করুন। এখন যেহেতু আপনার আইপি ঠিকানা আছে, এখন সময় এসেছে GUI তৈরির…

ধাপ 5: কন্ট্রোলারের জন্য একটি GUI তৈরি করুন

কন্ট্রোলারের জন্য একটি GUI তৈরি করুন
কন্ট্রোলারের জন্য একটি GUI তৈরি করুন
কন্ট্রোলারের জন্য একটি GUI তৈরি করুন
কন্ট্রোলারের জন্য একটি GUI তৈরি করুন
কন্ট্রোলারের জন্য একটি GUI তৈরি করুন
কন্ট্রোলারের জন্য একটি GUI তৈরি করুন

GUI তৈরি করতে, MATLAB খুলুন এবং কমান্ড উইন্ডোতে গাইড টাইপ করুন। এটি গাইড অ্যাপ খুলবে যদিও আমরা আমাদের GUI তৈরি করব। আপনি আপনার GUI ডিজাইন করতে MATLAB এ অ্যাপ ডিজাইনার ব্যবহার করতে পারেন।

আমরা মোট 9 টি বোতাম তৈরি করব (যেমন ডুমুরে দেখানো হয়েছে):

6 টি পুশ-বোতাম: ফওয়ার্ড, ব্যাকওয়ার্ড, বাম, ডান, রোবটের সাথে সংযোগ স্থাপন করুন, সংযোগ বিচ্ছিন্ন করুন

3 সম্পাদনযোগ্য-বোতাম: Ros pc ip, port এবং Topic name।

সম্পাদনযোগ্য-বোতামগুলি এমন বোতাম যা ROS পিসির আইপি, এটির পোর্ট এবং বিষয়টির নাম ইনপুট হিসাবে গ্রহণ করবে। ম্যাটল্যাব কন্ট্রোলার এবং ROS রোবট/পিসির মাধ্যমে টপিকের নাম। সম্পাদনযোগ্য বোতামে স্ট্রিং সম্পাদনা করতে, বোতামে ডান ক্লিক করুন >> পরিদর্শক বৈশিষ্ট্যগুলিতে যান >> স্ট্রিং এবং বোতামের পাঠ্য সম্পাদনা করুন।

একবার আপনার GUI সম্পন্ন হলে, আপনি বোতামগুলি প্রোগ্রাম করতে পারেন। এখান থেকেই আসল মজা শুরু হয় …

ধাপ 6: GUI সম্পাদনযোগ্য বোতাম প্রোগ্রামিং

GUI সম্পাদনযোগ্য বোতাম প্রোগ্রামিং
GUI সম্পাদনযোগ্য বোতাম প্রোগ্রামিং
GUI সম্পাদনযোগ্য বোতাম প্রোগ্রামিং
GUI সম্পাদনযোগ্য বোতাম প্রোগ্রামিং
GUI সম্পাদনযোগ্য বোতাম প্রোগ্রামিং
GUI সম্পাদনযোগ্য বোতাম প্রোগ্রামিং
GUI সম্পাদনযোগ্য বোতাম প্রোগ্রামিং
GUI সম্পাদনযোগ্য বোতাম প্রোগ্রামিং

GUI একটি.fig ফাইল হিসাবে সংরক্ষিত হয় কিন্তু কোড/কলব্যাক ফাংশনগুলি.m ফরম্যাটে সংরক্ষিত হয়।.m ফাইলে আপনার সমস্ত বোতামের কোড থাকে। > কলব্যাক দেখুন >> কলব্যাক। এটি আপনার GUI এর জন্য.m ফাইলটি খুলবে যেখানে সেই নির্দিষ্ট বোতামটি সংজ্ঞায়িত করা হয়েছে।

আমরা যে প্রথম কলব্যাকটি কোড করতে যাচ্ছি তা হল ROS IP সম্পাদনাযোগ্য বোতামের জন্য। ফাংশন edit1_Callback এর অধীনে নিম্নলিখিত কোড লিখুন:

ফাংশন edit1_Callback (hObject, eventdata, handles)

গ্লোবাল ros_master_ip

ros_master_ip = পান (hObject, 'স্ট্রিং')

এখানে ফাংশনটি edit1_Callback হিসাবে সংজ্ঞায়িত করা হয়েছে, যা প্রথম সম্পাদনাযোগ্য বোতামের উল্লেখ করছে। যখন আমরা এই সম্পাদনাযোগ্য বোতামে ROS নেটওয়ার্ক থেকে একটি IP ঠিকানা লিখি, তখন এটি IP- ঠিকানাটি একটি বৈশ্বিক পরিবর্তনশীলতে ros_master_ip নামক একটি স্ট্রিং হিসেবে সংরক্ষণ করবে।

তারপর শুধু _OpeningFcn (hObject, eventdata, handles, varargin) এর অধীনে নিম্নলিখিত সংজ্ঞায়িত করুন (ডুমুর দেখুন):

গ্লোবাল ros_master_ip

গ্লোবাল ros_master_port

গ্লোবাল টেলিপ_টপিক_নাম

ros_master_ip = '192.168.1.102';

ros_master_port = '11311';

teleop_topic_name = '/cmd_vel_mux/input/teleop';

আপনি শুধু বিশ্বব্যাপী হার্ড কোডেড ros-pc ip (ros_master_ip), port (ros_master_port) এবং টেলিপ টপিক নাম। এই কাজটি হল যে আপনি যদি সম্পাদনাযোগ্য বোতামগুলি খালি রাখেন, আপনি সংযোগ করার সময় এই পূর্বনির্ধারিত মানগুলি ব্যবহার করা হবে।

পরবর্তী কলব্যাক যা আমরা কোড করতে যাচ্ছি তা হল পোর্ট সম্পাদনাযোগ্য বোতামের জন্য।

ফাংশন edit2_Callback এর অধীনে নিম্নলিখিত কোড লিখুন:

ফাংশন edit2_Callback (hObject, eventdata, handles)

গ্লোবাল ros_master_port

ros_master_port = পান (hObject, 'স্ট্রিং')

এখানে ফাংশনটি edit2_Callback হিসাবে সংজ্ঞায়িত করা হয়েছে, যা দ্বিতীয় সম্পাদনাযোগ্য বোতামের উল্লেখ করছে। যখন আমরা এই সম্পাদনাযোগ্য বোতামে ROS নেটওয়ার্ক থেকে এখানে ros পিসি/রোবট এর পোর্টে প্রবেশ করি, তখন এটি ros_master_port নামক একটি বৈশ্বিক ভেরিয়েবলে স্ট্রিং হিসাবে পোর্টটি সংরক্ষণ করবে।

একইভাবে পরবর্তী কলব্যাক আমরা কোড যাচ্ছি টপিক নাম সম্পাদনাযোগ্য বোতামের জন্য।

ফাংশনের অধীনে edit3_Callback নিম্নলিখিত কোড লিখুন:

ফাংশন edit3_Callback (hObject, eventdata, handles)

গ্লোবাল টেলিপ_টপিক_নাম

teleop_topic_name = get (hObject, 'String')

Ros_master_port এর অনুরূপ, এটিও একটি গ্লোবাল ভেরিয়েবলে স্ট্রিং হিসাবে সংরক্ষণ করা হয়।

পরবর্তী আমরা পুশ বোতামগুলির জন্য কল-ব্যাক ফাংশনগুলি দেখতে যাচ্ছি …

ধাপ 7: GUI পুশ বোতাম প্রোগ্রামিং

GUI পুশ বাটন প্রোগ্রামিং
GUI পুশ বাটন প্রোগ্রামিং
GUI পুশ বাটন প্রোগ্রামিং
GUI পুশ বাটন প্রোগ্রামিং

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

যেমন ফাংশন pushbutton6_Callback (hObject, eventdata, handles)

দ্রষ্টব্য: আপনি যে ক্রমে আপনার পুশ বোতামগুলি তৈরি করেছেন তার উপর নির্ভর করে সেগুলি সে অনুযায়ী সংখ্যাযুক্ত হবে। অতএব আমার.m ফাইলে pushbutton6 ফাংশন ফরওয়ার্ডের জন্য হতে পারে যখন আপনার.m ফাইলে এটি পিছনের দিকে হতে পারে তাই এটি মনে রাখবেন। আপনার পুশ বোতামের জন্য কোনটি সঠিক ফাংশন তা জানতে, কেবল ডান ক্লিক করুন >> কলব্যাকগুলি দেখুন >> কলব্যাকগুলি এবং এটি আপনার পুশবাটনের জন্য ফাংশনটি খুলবে কিন্তু এই নির্দেশের জন্য আমি ধরে নিচ্ছি এটি আমার মতোই।

কানেক্ট টু রোবট বাটনের জন্য:

ফাংশনের অধীনে pushbutton6_Callback (hObject, eventdata, handles):

ফাংশন pushbutton6_Callback (hObject, eventdata, handles) global ros_master_ip

গ্লোবাল ros_master_port

গ্লোবাল টেলিপ_টপিক_নাম

বৈশ্বিক রোবট

বৈশ্বিক velmsg

ros_master_uri = strcat ('https://', ros_master_ip, ':', ros_master_port)

setenv ('ROS_MASTER_URI', ros_master_uri)

rosinit

রোবট = রসপ্রকাশক (টেলিপ_টপিক_নাম, 'জ্যামিতি_এমএসজিএস/টুইস্ট');

velmsg = rosmessage (রোবট);

এই কলব্যাকটি ros_MASTER_URI ভেরিয়েবল সেট করবে ros_master_ip এবং পোর্টকে একত্রিত করে। তারপর rosinit কমান্ড সংযোগটি আরম্ভ করবে। সংযোগ করার পরে, এটি জ্যামিতি_এমএসজিএস/টুইস্টের একটি প্রকাশক তৈরি করবে, যা বেগ কমান্ড পাঠানোর জন্য ব্যবহার করা হবে। টপিকের নাম হল যে নামটি আমরা এডিট বক্সে দেই। একবার সংযোগ সফল হলে, আমরা ফরওয়ার্ড, ব্যাকওয়ার্ড, বাম, ডান ধাক্কা বোতামগুলি পরিচালনা করতে সক্ষম হব।

ফরোয়ার্ড, ব্যাকওয়ার্ড পুশ বাটনগুলিতে কলব্যাক যুক্ত করার আগে, আমাদের রৈখিক এবং কৌণিক বেগের গতি শুরু করতে হবে।

অতএব নীচে _OpeningFcn (hObject, eventdata, handles, varargin) নিম্নলিখিত সংজ্ঞায়িত করুন (ডুমুর দেখুন):

গ্লোবাল লেফটস্পিনভেলোসিটি গ্লোবাল রাইট_স্পিনভেলোসিটি

গ্লোবাল ফরওয়ার্ড বেগ

বৈশ্বিক পশ্চাদপদ গতি

left_spinVelocity = 2;

right_spinVelocity = -2;

এগিয়ে গতি = 3;

পিছনের গতি = -3;

দ্রষ্টব্য: সমস্ত বেগ রাড/সেকেন্ডে রয়েছে

এখন যেহেতু গ্লোবাল ভেরিয়েবলগুলি সংজ্ঞায়িত করা হয়েছে চলুন গতি pushbuttons প্রোগ্রাম করি।

ফরওয়ার্ড pushbutton জন্য:

ফাংশন pushbutton4_Callback (hObject, eventdata, handles) global velmsg

বৈশ্বিক রোবট

গ্লোবাল টেলিপ_টপিক_নাম

গ্লোবাল ফরওয়ার্ড বেগ

velmsg. Angular. Z = 0;

velmsg. Linear. X = forwardVelocity;

পাঠান (রোবট, velmsg);

latchpub = rospublisher (teleop_topic_name, 'IsLatching', true);

একইভাবে ব্যাকওয়ার্ড pushbutton জন্য:

ফাংশন pushbutton5_Callback (hObject, eventdata, handles)

বৈশ্বিক velmsg

বৈশ্বিক রোবট

বৈশ্বিক পশ্চাদপদ গতি

গ্লোবাল টেলিপ_টপিক_নাম

velmsg. Angular. Z = 0;

velmsg. Linear. X = পশ্চাদপদ গতি;

পাঠান (রোবট, velmsg);

latchpub = rospublisher (teleop_topic_name, 'IsLatching', true);

একইভাবে বাম pushbutton জন্য: pushbutton3_Callback ফাংশন (hObject, eventdata, handles)

গ্লোবাল velmsgglobal রোবট গ্লোবাল লেফট_স্পিন বেগ

গ্লোবাল টেলিপ_টপিক_নাম

velmsg. Angular. Z = left_spin বেগ;

velmsg. Linear. X = 0;

পাঠান (রোবট, velmsg);

latchpub = rospublisher (teleop_topic_name, 'IsLatching', true);

একইভাবে ডান pushbutton জন্য:

গ্লোবাল ভেলমসগ্লোবল রোবট

গ্লোবাল রাইট_স্পিন বেগ

গ্লোবাল টেলিপ_টপিক_নাম

velmsg. Angular. Z = right_spinVelocity;

velmsg. Linear. X = 0;

পাঠান (রোবট, velmsg);

latchpub = rospublisher (teleop_topic_name, 'IsLatching', true);

সব কলব্যাক ফাংশন যোগ হয়ে গেলে এবং ফাইল সেভ হয়ে গেলে, আমরা আমাদের নিয়ামক পরীক্ষা করতে পারি।

ধাপ 8: ROS PC (Linux) এ নেটওয়ার্ক কনফিগারেশন সেট আপ করা

ROS PC (Linux) এ নেটওয়ার্ক কনফিগারেশন সেট আপ করা হচ্ছে
ROS PC (Linux) এ নেটওয়ার্ক কনফিগারেশন সেট আপ করা হচ্ছে
ROS PC (Linux) এ নেটওয়ার্ক কনফিগারেশন সেট আপ করা হচ্ছে
ROS PC (Linux) এ নেটওয়ার্ক কনফিগারেশন সেট আপ করা হচ্ছে

আমরা একটি রোস পিসি (লিনাক্স) -এ কন্ট্রোলার পরীক্ষা করবো, যার জন্য নেটওয়ার্ক কনফিগারেশন সেট -আপ করার প্রয়োজন হবে।

নেটওয়ার্ক কনফিগারেশন:

আপনার টার্মিনাল উইন্ডোটি খুলুন এবং gedit.bashrc টাইপ করুন

একবার ফাইলটি খোলা হলে নিম্নলিখিতগুলি যুক্ত করুন:

#রোবট মেশিন কনফিগারেশন

ROS_MASTER_URI = https:// localhost: 11311 রপ্তানি করুন

ROS মাস্টার নোডের #IP ঠিকানা

ROS_HOSTNAME = রপ্তানি করুন

রপ্তানি ROS_IP =

প্রতিধ্বনি "ROS_HOSTNAME:" $ ROS_HOSTNAME

প্রতিধ্বনি "ROS_IP:" $ ROS_IP

প্রতিধ্বনি "ROS_MASTER_URI:" $ ROS_MASTER_URI

ডায়নামিক আইপি অ্যাসাইনমেন্টের কারণে আপনাকে প্রতিবার এই ধাপটি অনুসরণ করতে হবে।

ধাপ 9: কন্ট্রোলার চালান

কন্ট্রোলার চালান
কন্ট্রোলার চালান

আমরা আমাদের নিয়ন্ত্রককে গাজেবোর একটি কচ্ছপ বটে পরীক্ষা করতে যাচ্ছি।

গ্যাজেবো ইনস্টল করতে, অনুগ্রহ করে https://gazebosim.org/tutorials?tut=install_ubuntu&cat=install পড়ুন

কচ্ছপ বট ইনস্টল করতে, দয়া করে https://yainnoware.blogspot.com/2018/09/install-turtlebot-on-ros-kinetic-ubuntu.html পড়ুন

ফোল্ডারটি খুলুন যেখানে আপনি আপনার.fig এবং.m ফাইল MATLAB এ সেভ করেছেন এবং রান চাপুন (ছবিতে দেখানো হয়েছে) এটি পিসিতে কন্ট্রোলার খুলবে। কানেক্ট চাপার আগে নিশ্চিত হয়ে নিন যে আপনার টার্টেল বট সিমুলেটর কাজ করছে।

আপনার TurtleBot সিমুলেশন পরীক্ষা করতে:

Ros পিসিতে টার্মিনাল খুলুন এবং টাইপ করুন: $ roslaunch turtlebot_gazebo turtlebot_world.launch। এটি সেই পিসিতে টার্টলবটের একটি সিমুলেশন খুলবে। TurtleBot এর টপিকের নাম হল/cmd_vel_mux/input/teleop, যা আমরা ইতোমধ্যেই অ্যাপ্লিকেশনে দিয়েছি। রোজ পিসি আইপি এড্রেস, পোর্ট এবং টপিকের নাম সম্পাদনযোগ্য বোতামে টাইপ করুন এবং রোবট বোতামে কানেক্ট করুন। যখন আপনি ফরওয়ার্ড, ব্যাকওয়ার্ড ইত্যাদি চাপবেন তখন আপনার কচ্ছপের বটটি চলাচল শুরু করবে।

রৈখিক এবং কৌণিক বেগ দেখতে:

একটি নতুন টার্মিনাল খুলুন এবং কমান্ডটি টাইপ করুন: $ rostopic echo/cmd_vel_mux/input/teleop

এবং সেখানে আপনার নিজস্ব ম্যাটল্যাব ভিত্তিক ROS রোবোটিক কন্ট্রোলার আছে। যদি আপনি আমার নির্দেশযোগ্য পছন্দ করেন তবে দয়া করে এটি প্রথমবারের লেখক প্রতিযোগিতায় একটি ভোট দিন এবং এটি যতটা সম্ভব মানুষের সাথে ভাগ করুন। ধন্যবাদ.

প্রস্তাবিত: