গতি#
ভূমিকা#
VEX AIM কোডিং রোবটটি একটি হলোনমিক ড্রাইভট্রেন ব্যবহার করে সামনে, পিছনে, বামে, ডানে বা কোণাকুণিভাবে চলতে পারে এবং একই সাথে স্বাধীনভাবে ঘুরতেও সক্ষম। এর গতি পদ্ধতিগুলো নিয়ন্ত্রণ করে রোবটটি কীভাবে চলে ও ঘোরে, এটি কত দ্রুত চলে এবং এর x ও y অবস্থান কীভাবে ট্র্যাক করা হয়।

উপলব্ধ পদ্ধতিগুলোর একটি তালিকা নিচে দেওয়া হলো:
ক্রিয়াকলাপ — রোবটটিকে চালনা ও ঘোরানো।
move_at— রোবটটিকে একটি নির্দিষ্ট কোণে অনির্দিষ্টকালের জন্য চালিত করে।move_for— রোবটটিকে একটি নির্দিষ্ট কোণে একটি নির্দিষ্ট দূরত্বে সরায়।move_with_vectors— ভেক্টর-ভিত্তিক x, y, এবং ঘূর্ণন মান ব্যবহার করে রোবটকে চালিত করে।turn— রোবটটিকে অনির্দিষ্টকালের জন্য বামে বা ডানে ঘোরায়।turn_for— রোবটটিকে নির্দিষ্ট সংখ্যক ডিগ্রিতে বামে বা ডানে ঘোরায়।turn_to— রোবটকে একটি নির্দিষ্ট দিকে মুখ করে ঘোরায়।stop_all_movement— রোবটের সমস্ত চলাচল বন্ধ করে দেয়।
মিউটেটর — রোবটের চলাচলের মান নির্ধারণ করে।
set_move_velocity— রোবটকে বলে দেয় কত দ্রুত চলতে হবে।set_turn_velocity— রোবটকে বলে দেয় কত দ্রুত ঘুরতে হবে।set_xy_position— রোবটের বর্তমান x এবং y অবস্থানকে নতুন মানে পরিবর্তন করে।
গেটার — রোবটের অবস্থা এবং অবস্থান ফেরত দেয়।
get_x_position— রোবটের বর্তমান x-স্থানাঙ্ক ফেরত দেয়।get_y_position— রোবটের বর্তমান y-স্থানাঙ্ক ফেরত দেয়।is_move_active— রোবটটি চলছে কিনা তা ফেরত দেয়।is_turn_active— রোবটটি ঘুরছে কিনা তা ফেরত দেয়।is_stopped— রোবটটি চলন্ত বা ঘূর্ণায়মান নয় কিনা তা ফেরত দেয়।
কর্ম#
move_at#
move_at রোবটটিকে একটি নির্দিষ্ট কোণে অনির্দিষ্টকালের জন্য সরাতে থাকে। এই কোণটি রোবটের বর্তমান অবস্থানের সাপেক্ষে নির্ধারিত হয়। রোবটটি ততক্ষণ চলতে থাকবে যতক্ষণ না এটিকে অন্য কোনো কাজ দেওয়া হয়, যেমন—ভিন্ন কোণে চলা, মোড় নেওয়া বা থেমে যাওয়া।
ব্যবহারবিধি:
robot.move_at(angle, velocity, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যে কোণে (ডিগ্রিতে) সরে যায়। এটি -৩৬০ থেকে ৩৬০ পর্যন্ত একটি পূর্ণসংখ্যা বা দশমিক সংখ্যা হতে পারে। |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। বেগের একক: |
# Move right, then move forward and stop.
robot.move_at(90)
wait(1,SECONDS)
robot.move_at(0)
wait(1,SECONDS)
robot.stop_all_movement()
# Move right slowly, move in reverse quickly and stop.
robot.move_at(90, 25)
wait(2, SECONDS)
robot.move_at(180, 100, PERCENT)
wait(1, SECONDS)
robot.stop_all_movement()
# Move diagonally to the right and stop.
robot.move_at(45.33)
wait(1,SECONDS)
robot.stop_all_movement()
move_for#
move_for রোবটটিকে একটি নির্দিষ্ট কোণে একটি নির্দিষ্ট দূরত্বে চালিত করে। এই কোণটি রোবটের বর্তমান অবস্থানের সাপেক্ষে নির্ধারিত হয়। রোবটের চালনা শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে এবং তারপরেই কোডের পরবর্তী লাইনটি রান করবে।
ব্যবহারবিধি:
robot.move_for(distance, angle, velocity, units, wait)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটের অতিক্রান্ত দূরত্ব, মিলিমিটারে (মিমি)। এটি একটি পূর্ণসংখ্যা বা দশমিক (ফ্লোট) সংখ্যা হতে পারে। |
|
রোবটটি যে কোণে (ডিগ্রিতে) সরে যায়। এটি -৩৬০ থেকে ৩৬০ পর্যন্ত একটি পূর্ণসংখ্যা বা দশমিক সংখ্যা হতে পারে। |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। বেগের একক: |
|
ঐচ্ছিক। |
# Move right, then move forward.
robot.move_for(50, 90)
robot.move_for(100, 0)
# Move in reverse slowly, then move forward quickly.
robot.move_for(100, 180, 25)
robot.move_for(100, 0, 100, PERCENT)
# Drive forward and blink all LEDs red.
robot.move_for(100, 0, wait=False)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
move_with_vectors#
ভেক্টর হলো কোনো কিছুর গতি এবং চলার দিক বর্ণনা করার একটি উপায়। move_with_vectors রোবটটিকে ভেক্টর-ভিত্তিক গতি ব্যবহার করে চালনা করে। রোবটটি একটি মসৃণ গতি তৈরি করার জন্য সম্মুখ, ডান এবং ঘূর্ণন বেগের মানগুলোকে একত্রিত করে। রোবটটি এই ভেক্টর ব্যবহার করে চলতে থাকবে যতক্ষণ না এটিকে অন্য কোনো কাজ দেওয়া হয়, যেমন ভিন্ন কোণে চলা, মোড় নেওয়া বা থামানো।
দ্রষ্টব্য: এই পদ্ধতিটি সরাসরি গতি এবং বাঁকের বেগের মান নির্ধারণ করে, তাই এটি set_move_velocity অথবা set_turn_velocity ব্যবহার করে না।
ব্যবহারবিধি:
robot.move_with_vectors(forward, rightward, rotation)
প্যারামিটার |
বর্ণনা |
|---|---|
|
y-অক্ষ বরাবর রোবটটির বেগ -১০০% থেকে ১০০% পর্যন্ত। ঋণাত্মক মান রোবটটিকে পেছনের দিকে এবং ধনাত্মক মান এটিকে সামনের দিকে চালিত করে। |
|
এক্স-অক্ষ বরাবর রোবটটির বেগ -১০০% থেকে ১০০% পর্যন্ত। ঋণাত্মক মান রোবটটিকে বাম দিকে এবং ধনাত্মক মান এটিকে ডান দিকে চালিত করে। |
|
রোবটের ঘোরার বেগ, -১০০% থেকে ১০০% পর্যন্ত। ঋণাত্মক মান রোবটটিকে ঘড়ির কাঁটার বিপরীত দিকে এবং ধনাত্মক মান এটিকে ঘড়ির কাঁটার দিকে ঘোরায়। |
# Move at 15°
robot.move_with_vectors(48.3, 12.95, 0)
wait(2, SECONDS)
robot.stop_all_movement()
# Move at 45° while turning counterclockwise.
robot.move_with_vectors(50, 50, -30)
wait(2, SECONDS)
robot.stop_all_movement()
# Scaling movement using the controller joystick
while True:
# Move forward (and backwards) slower than axis1 input
forward = controller.axis1.position() * 0.7
# Move right (and left) faster than axis2 input
rightward = controller.axis2.position() * 1.5
robot.move_with_vectors(forward, rightward, 0)
wait(5, MSEC)
turn#
turn রোবটটিকে অনির্দিষ্টকালের জন্য বামে বা ডানে ঘোরায়। রোবটটি ততক্ষণ ঘুরতে থাকবে যতক্ষণ না এটিকে চলা বা থামার মতো অন্য কোনো কাজ দেওয়া হয়।
ব্যবহারবিধি:
robot.turn(direction, velocity, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেদিকে ঘোরে: |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। বেগের একক: |
# Turn left, then stop.
robot.turn(LEFT)
wait(1, SECONDS)
robot.stop_all_movement()
# Turn left quickly, turn right slowly, then stop.
robot.turn(LEFT, 80)
wait(2, SECONDS)
robot.turn(RIGHT, 20, PERCENT)
wait(3, SECONDS)
robot.stop_all_movement()
turn_for#
turn_for রোবটটিকে একটি নির্দিষ্ট সংখ্যক ডিগ্রিতে বামে বা ডানে ঘোরায়। এই মোড়টি রোবটের বর্তমান অভিমুখের সাপেক্ষে হয়। রোবটের মোড় নেওয়া শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে এবং তারপরেই কোডের পরবর্তী লাইনটি রান করবে।
ব্যবহারবিধি:
robot.turn_for(direction, angle, velocity, units, wait)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটি যেদিকে ঘোরে: |
|
রোবটটি যত ডিগ্রি ঘুরবে, তার সীমা -৩৬০ থেকে ৩৬০ ডিগ্রি পর্যন্ত। এটি একটি পূর্ণসংখ্যা বা দশমিক (ফ্লোট) সংখ্যা হতে পারে। |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। বেগের একক: |
|
ঐচ্ছিক। |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
# Turn left quickly, then turn right slowly.
robot.turn_for(LEFT, 90, 100)
robot.turn_for(RIGHT, 180, 15, PERCENT)
# Turn right and blink all LEDs blue.
robot.turn_for(RIGHT, 180, wait=False)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
turn_to#
হেডিং হলো রোবটের অভিমুখ, যা ডিগ্রিতে পরিমাপ করা হয়। turn_to রোবটকে একটি নির্দিষ্ট হেডিং-এর দিকে ঘোরায়। রোবটটি লক্ষ্য হেডিং-এ পৌঁছানোর জন্য সবচেয়ে ছোট পথটি বেছে নেবে।
রোবটটির প্রারম্ভিক অভিমুখ ০ ডিগ্রি।
রোবটটির ঘোরা শেষ না হওয়া পর্যন্ত প্রজেক্টটি অপেক্ষা করবে এবং তারপরেই কোডের পরবর্তী লাইনটি রান করবে।
ব্যবহারবিধি:
robot.turn_to(heading, velocity, units, wait)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটটির অভিমুখ হবে -৩৬০ থেকে ৩৬০ ডিগ্রির মধ্যে। |
|
ঐচ্ছিক। |
|
ঐচ্ছিক। বেগের একক: |
|
ঐচ্ছিক। |
# Turn to face each cardinal directions.
robot.turn_to(90)
wait(2, SECONDS)
robot.turn_to(180)
wait(2, SECONDS)
robot.turn_to(270)
wait(2, SECONDS)
robot.turn_to(0)
# Turn to face backward slowly, then face forward quickly.
robot.turn_to(180, 25)
wait(1, SECONDS)
robot.turn_to(0, 90, PERCENT)
# Turn around quickly and blink all LEDs green.
robot.turn_to(180, 100, wait=False)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
stop_all_movement#
stop_all_movement রোবটের সমস্ত চলাচল বন্ধ করে দেয়।
ব্যবহারবিধি:
robot.stop_all_movement()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
# Turn right, then stop moving
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop_all_movement()
মিউটেটর#
set_move_velocity#
set_move_velocity set_move_velocity রোবটকে বলে দেয় সে কত দ্রুত চলবে। উচ্চতর শতাংশ রোবটকে দ্রুত এবং নিম্নতর শতাংশ রোবটকে ধীরে চলতে সাহায্য করে।
প্রতিটি প্রকল্প ডিফল্টরূপে রোবটের ৫০% গতিতে চলার মাধ্যমে শুরু হয়।
১০০% গতিবেগ প্রতি সেকেন্ডে ২০০ মিলিমিটারের সমতুল্য।
ব্যবহারবিধি:
robot.set_move_velocity(velocity, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
|
|
ঐচ্ছিক। বেগের একক: |
# Move forward at the default velocity,
robot.set_move_velocity(50)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move slower than the default velocity
robot.set_move_velocity(20)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move faster than the default velocity
robot.set_move_velocity(100)
robot.move_for(100, 0)
set_turn_velocity#
set_turn_velocity set_turn_velocity রোবটকে বলে দেয় সে কত দ্রুত ঘুরবে। উচ্চতর শতাংশ রোবটকে দ্রুত ঘোরায় এবং নিম্নতর শতাংশ রোবটকে ধীরে ঘোরায়।
প্রতিটি প্রজেক্ট ডিফল্টরূপে রোবটের ৫০% গতিতে (প্রতি সেকেন্ডে ৭৫ ডিগ্রি) ঘোরার মাধ্যমে শুরু হয়।
ব্যবহারবিধি:
robot.set_turn_velocity(velocity, units)
প্যারামিটার |
বর্ণনা |
|---|---|
|
|
|
ঐচ্ছিক। বেগের একক: |
# Turn around at default velocity
robot.set_turn_velocity(50)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around slower than the default velocity
robot.set_turn_velocity(20)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around faster than the default velocity
robot.set_turn_velocity(100)
robot.turn_for(RIGHT, 180)
set_xy_position#
set_xy_position রোবটের বর্তমান x এবং y অবস্থানকে নতুন মানে পরিবর্তন করে।
উদাহরণস্বরূপ, যদি রোবটটি তার শুরুর বিন্দু থেকে সরে যায়, তাহলে x-এর মান ০ এবং y-এর মান ০ সেট করলে রোবটটির বর্তমান অবস্থানটি নতুন ০, ০ অবস্থানে পরিণত হয়। এরপর রোবটটি সেই নতুন মানের উপর ভিত্তি করে ভবিষ্যতের অবস্থানগুলো ট্র্যাক করতে পারে।
ব্যবহারবিধি:
robot.set_xy_position(x, y)
প্যারামিটার |
বর্ণনা |
|---|---|
|
রোবটের জন্য নির্ধারিত এক্স-পজিশনের মান, মিলিমিটারে। এটি একটি পূর্ণসংখ্যা বা দশমিক (ফ্লোট) সংখ্যা হতে পারে। |
|
রোবটের জন্য y-অবস্থানের মান মিলিমিটারে নির্ধারণ করতে হবে। এটি একটি পূর্ণসংখ্যা বা দশমিক (ফ্লোট) সংখ্যা হতে পারে। |
# Set the robot's current position
# Move forward and print the new coordinate
robot.set_xy_position(100, 50)
robot.move_for(150, 0)
robot.screen.print("X:", robot.get_x_position())
robot.screen.next_row()
robot.screen.print("Y:", robot.get_y_position())
গেটার্স#
get_x_position#
get_x_position রোবটের বর্তমান x-স্থানাঙ্ক মিলিমিটারে ফেরত দেয়।
প্রকল্পের শুরুতে, রোবটের x-অবস্থান 0 তে সেট করা হয়। রোবট বাম বা ডানে যাওয়ার সাথে সাথে x-অবস্থান পরিবর্তিত হয় এবং set_xy_position পদ্ধতি ব্যবহার করে সেট করা যেতে পারে।
ব্যবহারবিধি:
robot.get_x_position()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
# Print the start and end x-value
# of the robot's position after moving
robot.screen.print("Start X:", robot.get_x_position())
robot.move_for(200, 90)
robot.screen.next_row()
robot.screen.print("End X:", robot.get_x_position())
get_y_position#
get_y_position রোবটের বর্তমান y-স্থানাঙ্ক মিলিমিটারে ফেরত দেয়।
প্রকল্পের শুরুতে, রোবটের y-অবস্থান 0 তে সেট করা হয়। রোবট সামনে বা পিছনে চলার সাথে সাথে y-অবস্থান পরিবর্তিত হয় এবং set_xy_position পদ্ধতি ব্যবহার করে সেট করা যেতে পারে।
ব্যবহারবিধি:
robot.get_y_position()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
# Print the start and end y-value
# of the robot's position after moving
robot.screen.print("Start Y:", robot.get_y_position())
robot.move_for(200, 0)
robot.screen.next_row()
robot.screen.print("End Y:", robot.get_y_position())
is_move_active#
is_move_active রোবটটি চলছে কিনা তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়। রোবটের চলাচলের উপর ভিত্তি করে অন্যান্য আচরণের সময় নিয়ন্ত্রণ করতে এটি ব্যবহার করা যেতে পারে।
True— রোবটটি চলছে।False— রোবটটি নড়ছে না।
এই পদ্ধতিটি wait প্যারামিটারযুক্ত মোশন পদ্ধতিগুলির সাথে একত্রে কাজ করে, যেমন move_for।
ব্যবহারবিধি:
robot.is_move_active()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
# Blink all the LEDs when the robot is moving.
robot.move_for(200, 0, wait=False)
while robot.is_move_active():
robot.led.on(ALL_LEDS, ORANGE)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, CYAN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
is_turn_active#
is_turn_active রোবটটি ঘুরছে কিনা তা একটি বুলিয়ান মান হিসাবে ফেরত দেয়। রোবটের নড়াচড়ার উপর ভিত্তি করে অন্যান্য আচরণের সময় নিয়ন্ত্রণ করতে এটি ব্যবহার করা যেতে পারে।
True— রোবটটি ঘুরছে।False— রোবটটি ঘুরছে না।
এই পদ্ধতিটি সেইসব মোশন পদ্ধতিগুলির সাথে একত্রে কাজ করে যাদের wait প্যারামিটার রয়েছে, যেমন turn_for এবং turn_to।
ব্যবহারবিধি:
robot.is_turn_active()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
# Blink all the LEDs while the robot is turning
robot.turn_for(RIGHT, 180, wait=False)
while robot.is_turn_active():
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, CYAN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
is_stopped#
is_stopped একটি বুলিয়ান মান হিসাবে ফেরত দেয় যে রোবটটি নড়ছেও না বা ঘুরছেও না। রোবটের চলাচলের উপর ভিত্তি করে অন্যান্য আচরণের সময় নিয়ন্ত্রণ করতে এটি ব্যবহার করা যেতে পারে।
True— রোবটটি নড়ছে না বা ঘুরছে না।False— রোবটটি নড়ছে বা ঘুরছে।
ব্যবহারবিধি:
robot.is_stopped()
প্যারামিটার |
বর্ণনা |
|---|---|
এই পদ্ধতিতে কোনো প্যারামিটার নেই। |
# Blink all the LEDs while the robot is moving or turning
def light_show():
# Flash LEDs while the robot is moving or turning
while not robot.is_stopped():
robot.led.on(ALL_LEDS, GREEN)
wait(.5, SECONDS)
robot.led.on(ALL_LEDS, PURPLE)
wait(.5, SECONDS)
robot.led.off(ALL_LEDS)
robot.move_for(200, 0, wait=False)
light_show()
robot.turn_for(RIGHT, 180, wait=False)
light_show()