パワートレイン#

導入#

VEX IQ(第2世代)ロボットは、駆動系を使って走行および旋回します。駆動系は、モーターと車輪が連携してロボットを動かす仕組みです。

構成済みのドライブトレインは、接続されたジャイロセンサー、Brainに内蔵された慣性センサー、またはセンサーなしのいずれかを使用できます。センサーを使用する場合、ドライブトレインはそれを使用してロボットの正確な移動と旋回を支援します。各プロジェクトの開始時に、ドライブトレインはセンサーを自動的にキャリブレーションします。キャリブレーション中はロボットを約2秒間静止させて、ロボットが正しく移動および旋回できるようにしてください。

このページでは、例として drivetrain というドライブトレイン名を使用しています。必要に応じて、ご自身で設定した名前に置き換えてください。

ドライブトレインをコーディングする方法は数多くあります。以下に、ドライブトレインのすべてのメソッドの一覧を示します。

動作 — ロボットを移動および旋回させる。

  • drive — ロボットを永久に前進または後退させます。

  • drive_for — ロボットを特定の距離だけ前進または後退させます。

  • turn — ロボットを永久に左または右に回転させます。

  • turn_for — ロボットを特定の角度だけ左または右に回転させます。

  • turn_to_heading — ロボットを-359度から359度までの特定の方向に向けて旋回させます。ロボットは目標の方向に到達するために最短の方向に旋回します。

  • turn_to_rotation — ロボットを特定の回転方向に回転させます。

  • stop — ロボットの動きを停止します。

  • calibrate_drivetrain — ドライブトレインに設定されているセンサーをキャリブレーションします。

ミューテーター — ドライブトレインの設定を調整します。

  • set_drive_velocity — ロボットに走行速度を指示します。

  • set_turn_velocity — ロボットに旋回速度を指示します。

  • set_stopping — ロボットがどのように停止するかを指定します: ブレーキ、惰性走行、または保持。

  • set_timeout — ロボットが動作を完了しようとする時間を設定します。

  • set_heading — ロボットの現在の進行方向を新しい進行方向に変更します。

  • set_rotation — ロボットの現在の回転を新しい回転に変更します。

  • set_turn_threshold — ロボットが旋回を完了する前に、目標角度にどれだけ近づく必要があるかを指定します。

  • set_turn_constant — ロボットが旋回を修正する強さを変更します。

ゲッターズ ― 移動状況を確認してください。

  • heading — ロボットの現在の方位を0度から359度の範囲で返します。

  • rotation — ロボットの現在の回転を返します。

  • velocity — ロボットの走行速度を返します。

  • current — ドライブトレインが使用している電流の量を返します。

  • is_moving — ロボットが移動しているかどうかをブール値として返します。

  • is_done — ロボットの移動が完了したかどうかをブール値として返します。

  • is_turning — ロボットが旋回しているかどうかをブール値として返します。

  • power — ドライブトレインがエネルギーを消費する速度を返します。

  • torque — ドライブトレインが使用しているトルクの量を返します。

  • efficiency — ドライブトレインがどれだけ効率的に電力を使用しているかを返します。

  • temperature — ドライブトレインの温度を返します。

コンストラクター — ドライブトレインを手動で作成および構成します。

  • DriveTrain — ジャイロセンサーまたは慣性センサーのないドライブトレインを作成します。

  • SmartDrive — ジャイロセンサーまたは慣性センサーを備えたドライブトレインを作成します。

行動#

drive#

ドライブdrive 組み合わせでは、ロボットは永久に前進または後退します。ロボットは、旋回や停止などの別の動作が与えられるまで動き続けます。

Usage:
drivetrain.drive(direction, velocity, units)

パラメータ

説明

direction

ロボットの移動方向: FORWARD または REVERSE。

velocity

Optional. The velocity to drive with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot drives at the current drive velocity.

units

オプション。速度単位: PERCENT (デフォルト)、 RPM (1分あたりの回転数)、または VelocityUnits.DPS (1秒あたりの角度)。

# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

# Drive slowly in reverse then stop
drivetrain.drive(REVERSE, 20, PERCENT)
wait(2, SECONDS)
drivetrain.stop()

drive_for#

drive_for は、ロボットを特定の距離だけ前進または後退させます。プロジェクトは、ロボットの移動が完了するまで待機し、その後次のコードが実行されます。

Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)

パラメータ

説明

direction

ロボットの移動方向: FORWARD または REVERSE。

distance

ロボットが走行する距離。これは、 integer または小数 (float ) になります。

units

オプション。距離の単位: INCHES (デフォルト)、 MM (ミリメートル)、または DistanceUnits.CM メートル)。

velocity

Optional. The velocity to drive with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot drives at the current drive velocity.

units_v

オプション。速度単位: RPM (1分あたりの回転数、デフォルト)、 PERCENT、または VelocityUnits.DPS (1秒あたりの角度)。

wait

オプション wait=True (デフォルト) は、ロボットの移動が完了するまでプロジェクトを待機させ、次のコード行を実行します。2 wait=False は、次のコード行をすぐに実行します。

# Drive forward and backward
drivetrain.drive_for(FORWARD, 10)
drivetrain.drive_for(REVERSE, 10)

# Quickly drive forward and backward
drivetrain.drive_for(FORWARD, 200, MM, 100, PERCENT)
drivetrain.drive_for(REVERSE, 200, MM, 100, PERCENT)

turn#

turn ロボットを左右に永久に回転させます。ロボットは、走行や停止などの別の動作が与えられるまで回転し続けます。

Usage:
drivetrain.turn(direction, velocity, units)

パラメータ

説明

direction

ロボットが回転する方向: LEFT または RIGHT。

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units

オプション。速度単位: RPM (1分あたりの回転数、デフォルト)、 PERCENT、または VelocityUnits.DPS (1秒あたりの角度)。

# Turn right and left, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.turn(LEFT)
wait(2, SECONDS)
drivetrain.stop()

# Quickly turn right and left, then stop
drivetrain.turn(RIGHT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.turn(LEFT, 100, PERCENT)
wait(2, SECONDS)
drivetrain.stop()

turn_for#

turn_for は、ロボットを特定の角度(回転数)だけ左右に回転させます。回転はロボットの現在位置を基準としています。プロジェクトは、ロボットの回転が完了するまで次のコード行を実行しません。

Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)

パラメータ

説明

direction

ロボットが回転する方向: LEFT または RIGHT。

angle

ロボットが回転する量。これは、整数 integerfloat ) のいずれかになります。

units

オプション。回転単位: DEGREES (デフォルト)または TURNS回転は360度に相当します。

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

オプション。速度単位: RPM (1分あたりの回転数、デフォルト)、 PERCENT、または VelocityUnits.DPS (1秒あたりの角度)。

wait

オプション wait=True (デフォルト) は、ロボットの回転が完了するまでプロジェクトを待機させ、次のコード行を実行します。2 wait=False は、次のコード行をすぐに実行します。

# Turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES)

# Quickly turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES, 100, PERCENT)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES, 100, PERCENT)

turn_to_heading#

方位とは、ロボットが向いている方向のことで、度数で表されます。0 turn_to_heading 、ロボットを-359度から359度までの特定の方位に向けます。ロボットは、目標の方位に到達するために最短の方向へ旋回します。

ロボットの初期進行方向は0度です。

プロジェクトは、ロボットの旋回が完了するまで待機し、その後次のコードが実行されます。

Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)

パラメータ

説明

angle

ロボットが向くべき方向(度数) integer は小数、-359から359までの小数値(float)を指定できます。

units

オプション。見出し単位: DEGREES (デフォルト)。

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

オプション。速度単位: PERCENT (デフォルト)、 RPM (1分あたりの回転数)、または VelocityUnits.DPS (1秒あたりの角度)。

wait

オプション wait=True (デフォルト) は、ロボットの回転が完了するまでプロジェクトを待機させ、次のコード行を実行します。2 wait=False は、次のコード行をすぐに実行します。

# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)

# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)

turn_to_rotation#

turn_to_rotation はロボットを特定の回転方向に回転させます。

回転とは、ロボットがどれだけ回転したかを示すもので、度または回転数で測定されます。プロジェクトの開始時には、回転値は0度に設定されます。回転は、set_rotation メソッドを使用して設定することもできます。

回転値は絶対値です。つまり、旋回方向はロボットの現在の回転角度によって決まります。右に旋回すると回転角度が大きくなり、左に旋回すると回転角度が小さくなります。

例えば、ロボットが0度の位置から始まり、720度回転させると、右に2回転します。次に360度回転させると、360度は720度より小さいため、左に1回転します。

プロジェクトは、ロボットの旋回が完了するまで待機し、その後次のコードが実行されます。

Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)

パラメータ

説明

angle

ロボットが回転する角度(度または回転数)。これは、整数 integerfloat ) のいずれかになります。

units

オプション。回転単位: DEGREES (デフォルト)または TURNS回転は360度に相当します。

velocity

Optional. The velocity to turn with from 0% to 100% when using PERCENT, from 0 to 120 rpm when using RPM, or from 0 to 720 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot turns at the current turn velocity.

units_v

オプション。速度単位: PERCENT (デフォルト)、 RPM (1分あたりの回転数)、または VelocityUnits.DPS (1秒あたりの角度)。

wait

オプション wait=True (デフォルト) は、ロボットの回転が完了するまでプロジェクトを待機させ、次のコード行を実行します。2 wait=False は、次のコード行をすぐに実行します。

# Turn left, then spin in a circle
# clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)

# Turn left then slowly spin in a
# circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)

stop#

stop ロボットの動きを停止します。

Usage:
drivetrain.stop(mode)

パラメータ

説明

mode

Optional. How the robot will stop: BRAKE (default), COAST, or HOLD.

  • BRAKE — Stops immediately.
  • COAST — Slows to a stop.
  • HOLD — Stops immediately and holds the wheels’ position.

# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

# Drive forward and coast to a stop
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop(COAST)

calibrate_drivetrain#

calibrate_drivetrain は、ドライブトレインに設定されているジャイロセンサーまたは慣性センサーを較正する組み込み関数です。

キャリブレーションは、センサーが動きを正確に測定するために役立ちます。キャリブレーション中は、ロボットを約2秒間静止させてください。キャリブレーション中にロボットが動くと、センサーが動きを正確に測定できない場合があります。

プロジェクトは、キャリブレーションが完了するまで次のコード行の実行を待ちます。

注: この関数は VS Code 内では使用できません。

Usage:
calibrate_drivetrain()

パラメータ

説明

この関数には引数がありません。

変異誘発者#

set_drive_velocity#

set_drive_velocity は、ロボットの走行速度を指定します。パーセンテージが高いほどロボットは速く走行し、低いほど遅く走行します。

すべてのプロジェクトは、ロボットがデフォルトで50%の速度で走行するところから始まります。

注: 速度を速くするとロボットの走行速度は速くなりますが、精度が低下する可能性があります。速度を遅くするとロボットの走行速度は遅くなりますが、精度は向上する可能性があります。

Usage:
drivetrain.set_drive_velocity(velocity, units)

パラメータ

説明

velocity

PERCENTを使用する場合は 0% ~ 100%、 RPMを使用する場合は 0 ~ 120 rpm、 VelocityUnits.DPSを使用する場合は 0 ~ 720 度/秒の速度で走行します。これは integer または小数 (float ) になります。

units

オプション。速度単位: PERCENT (デフォルト)、 RPM (1分あたりの回転数)、または VelocityUnits.DPS (1秒あたりの角度)。

# Drive forward at different velocities
# Default velocity
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)

set_turn_velocity#

set_turn_velocity は、ロボットの旋回速度を指定します。パーセンテージが高いほどロボットの旋回速度は速くなり、低いほど旋回速度は遅くなります。

すべてのプロジェクトは、ロボットがデフォルトで50%の速度で旋回するところから始まります。

注: 速度が速いほどロボットの旋回速度は速くなりますが、精度が低下する可能性があります。速度が遅いほどロボットの旋回速度は遅くなりますが、精度は向上する可能性があります。

Usage:
drivetrain.set_turn_velocity(velocity, units)

パラメータ

説明

velocity

回転速度は、 PERCENTを使用する場合は 0% ~ 100%、 RPMを使用する場合は 0 ~ 120 rpm、 VelocityUnits.DPSを使用する場合は 0 ~ 720 度/秒です。これは integer または小数 (float ) になります。

units

オプション。速度単位: PERCENT (デフォルト)、 RPM (1分あたりの回転数)、または VelocityUnits.DPS (1秒あたりの角度)。

# Turn at different velocities
# Default velocity
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 360)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 360)

set_stopping#

set_stopping は、ロボットがどのように停止するかを設定します。ブレーキ、惰性走行、または停止のいずれかです。

Usage:
drivetrain.set_stopping(mode)

パラメータ

説明

mode

ロボットの停止方法:

  • BRAKE — すぐに停止します。
  • COAST — ゆっくりと停止します。
  • HOLD — すぐに停止し、車輪の位置を保持します。

この方法を使用しない場合、ロボットは停止時に BRAKE を使用します。

set_timeout#

set_timeout は、ロボットが動作を完了しようとする時間を設定します。ロボットがその時間内に動作を完了できない場合、試行を停止して次のコード行に進みます。これにより、ロボットが動作中に停止してしまうのを防ぎます。

Usage:
drivetrain.set_timeout(value, units)

パラメータ

説明

value

ロボットが動作を完了しようと試みる時間。これは、正の整数 integerfloat ) になります。

units

オプション。時間の単位: MSEC (ミリ秒、デフォルト)または SECONDS。

# Turn right after driving forward
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)

set_heading#

方位とは、ロボットが向いている方向のことで、度数で表されます。0 set_heading ロボットの現在の方位を新しい方位値に変更します。

例えば、ロボットが右を向いた場合、方位を0度に設定すると、その右向きの位置が新たな0度になります。その後、ロボットはその新たな方位に基づいて他の位置に旋回することができます。

Usage:
drivetrain.set_heading(heading, units)

パラメータ

説明

heading

The heading value, in degrees or turns, to set for the robot. This can be an integer or decimal (float).

units

オプション。方位の単位: DEGREES (デフォルト)または TURNS回転は360度に相当します。

# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)

set_rotation#

回転とは、ロボットがどれだけ回転したかを示すもので、度数または回転数で表されます。プロジェクトの開始時には、回転値は0度に設定されます。0 set_rotation 実行すると、ロボットの現在の回転値が新しい値に変更されます。

例えば、ロボットが右に2回転した場合、回転角度は720度になります。回転角度を0度に設定すると、720度から0度にリセットされます。その後、ロボットはその新しい値に基づいて回転することができます。

Usage:
drivetrain.set_rotation(rotation, units)

パラメータ

説明

rotation

The rotation value, in degrees or turns, to set for the robot. This can be an integer or decimal (float).

units

オプション。回転単位: DEGREES (デフォルト)または TURNS回転は360度に相当します。

# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)

set_turn_threshold#

set_turn_threshold は、ロボットが旋回を完了する前に目標角度にどれだけ近づく必要があるかを設定します。

しきい値を小さくすると旋回精度は向上しますが、ロボットが旋回を完了するまでに時間がかかる場合があります。しきい値を大きくすると旋回完了までの時間は短縮されますが、精度が低下する可能性があります。

Usage:
drivetrain.set_turn_threshold(value)

パラメータ

説明

value

旋回角度のしきい値(度) integer 、または小数(float)を指定できます。デフォルトの旋回角度のしきい値は1度です。

# Set the turn threshold to 5 degrees
drivetrain.set_turn_threshold(5)

set_turn_constant#

set_turn_constant は、ロボットが旋回を修正する強さを変更します。

値が大きいほど、ロボットの旋回修正はより強力になります。値が小さいほど、ロボットの旋回修正はより緩やかになります。デフォルト値は1.0です。

Usage:
drivetrain.set_turn_constant(value)

パラメータ

説明

value

回転定数。0.1から4.0までの小数(float整数)を指定できます。デフォルト値は1.0です。

# Increase the turn constant to 2.0
drivetrain.set_turn_constant(2.0)

ゲッター#

heading#

方位とは、ロボットが向いている方向のことで、度数で表されます。0 heading ロボットの現在の方位を0度から359度の範囲で返します。

ロボットの初期進行方向は0度です。

Usage:
drivetrain.heading(units)

パラメータ

説明

units

オプション。方位を返す単位: DEGREES (デフォルト)または TURNS回転は360度に相当します。

# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading())

rotation#

Rotation is how much the robot has turned, measured in degrees or turns. At the beginning of a project, the rotation value is set to 0 degrees. rotation returns the robot’s current rotation.

右に回すと回転角度が大きくなり、左に回すと回転角度が小さくなります。例えば、右に2回転すると720度回転します。

Usage:
drivetrain.rotation(units)

パラメータ

説明

units

オプション。回転を返す単位: DEGREES (デフォルト)または TURNS回転は360度に相当します。

# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation())

velocity#

velocity ロボットの走行速度を返します。

速度は、-100%から100%までの RPM 、または VelocityUnits.DPS 度/秒)で返されます。正の値はロボットが前進していることを意味し、負の値はロボットが後退していることを意味します。

Usage:
drivetrain.velocity(units)

パラメータ

説明

units

オプション。速度を返す単位: PERCENT (デフォルト)、 RPM (1分あたりの回転数)、または VelocityUnits.DPS (1秒あたりの角度)。

current#

current 、駆動系が使用している電流値をアンペア (A) 単位で返します。電流とは、駆動系を流れる電気の量です。

電流値が高いということは、駆動系がより多くの電流を使用していることを意味します。これは、ロボットが物体に押し付けられているときや、動けなくなったときに動かそうとしているときに発生する可能性があります。

これは、動作中に駆動系に負荷がかかっていないかを確認するために使用できます。電流値が高い状態が続くと、駆動系が過熱したり、電力効率が低下したりする可能性があります。

Usage:
drivetrain.current(units)

パラメータ

説明

units

オプション。電流を返す単位: CurrentUnits.AMP (アンペア、デフォルト)。

is_moving#

is_moving は、ロボットが移動中かどうかをブール値で返します。これは、ロボットの動きに基づいて他の動作のタイミングを制御するために使用できます。

  • True — ロボットが動いています。

  • False — ロボットは動いていません。

このメソッドは、 wait パラメータを持つ以下の Drivetrain メソッドと連携して動作します: drive_for、turn_for、turn_to_heading、および turn_to_rotation。

Usage:
drivetrain.is_moving()

パラメータ

説明

このメソッドにはパラメータがありません。

is_done#

is_doneが 場合は、ロボットの移動が完了したかどうかをブール値で返します。1の場合は、ロボットの移動に基づいて他の動作のタイミングを制御するために使用できます。

  • True — ロボットの移動が完了しました。

  • False — ロボットはまだ動いています。

このメソッドは、 wait パラメータを持つ以下の Drivetrain メソッドと連携して動作します: drive_for、turn_for、turn_to_heading、および turn_to_rotation。

Usage:
drivetrain.is_done()

パラメータ

説明

このメソッドにはパラメータがありません。

is_turning#

is_turning は、ロボットが旋回しているかどうかをブール値で返します。これは、ロボットの動きに基づいて他の動作のタイミングを制御するために使用できます。

  • True — ロボットが回転しています。

  • False — ロボットが回転していません。

このメソッドは、 wait パラメータを持つ以下の Drivetrain メソッドと連携して動作します: turn_for、turn_to_heading、および turn_to_rotation。

Usage:
drivetrain.is_turning()

パラメータ

説明

このメソッドにはパラメータがありません。

power#

power ドライブトレインが使用している電力をワット単位で返します。パワーは、ドライブトレインがエネルギーを消費する速度を示します。

出力値が高いほど、駆動系がエネルギーをより速く消費していることを意味します。これは、ロボットが物体に押し付けられているときや、動けなくなったときに動こうとしているときに起こり得ます。

これは、動作を比較したり、駆動系に負荷がかかっていないかを確認したりするために使用できます。出力が高い状態が続くと、駆動系が過熱したり、エネルギー効率が低下したりする可能性があります。

Usage:
drivetrain.power()

パラメータ

説明

このメソッドにはパラメータがありません。

torque#

トルクとは、車輪が回転している間に、駆動系がどれだけの力で押したり引いたりできるかを示す指標です。

torque 、駆動系が使用しているトルクの値をニュートンメートル (Nm) またはインチポンド (InLb) 単位で返します。

トルク値が高いということは、駆動系がより強く押したり引いたりしていることを意味します。これは、ロボットが物体に押し付けられているときや、動けなくなったときに動かそうとしているときに起こります。

これは、駆動系に負荷がかかっているかどうかを確認したり、さまざまな動作に必要な推力を比較したりするために使用できます。

Usage:
drivetrain.torque(units)

パラメータ

説明

units

オプション。トルクを返す単位: TorqueUnits.NM (ニュートンメートル、デフォルト) または TorqueUnits.INLB (インチポンド)。

efficiency#

効率efficiency 、駆動系がどれだけ効率的に電力を使用しているかを、0%から100%までのパーセンテージで返します。

効率とは、駆動系の動力のうち、どれだけが動作に使われているかを示す指標です。効率の値が高いほど、駆動系の動力の多くが動作に使われていることを意味します。効率の値が低いのは、ロボットが動けなくなったり、物体に押し付けられたりして、駆動系が負荷がかかっているにもかかわらず、あまり動いて​​いない場合です。

これは、動作を比較したり、駆動系が動力を動作に使う代わりに無駄に消費していないかを確認したりするために使用できます。

Usage:
drivetrain.efficiency()

パラメータ

説明

このメソッドにはパラメータがありません。

temperature#

temperature は、選択された温度単位で駆動系の平均温度を返します。

温度は、駆動系モーターの温度を示します。温度が高いほど、モーターは動作中に温度が上昇していることを意味します。モーターは、最高の性能を維持するために、55℃以下に保つ必要があります。

モーターが過熱すると、保護のために最大電流を下げます。70℃に達すると、モーターは冷却されるまで運転を停止します。

これは、繰り返し動作時、長時間の走行時、または物体に押し付けられている時などに、駆動系が過熱していないかどうかを確認するために使用できます。

Usage:
drivetrain.temperature(units)

パラメータ

説明

units

オプション。返される温度の単位: TemperatureUnits.CELSIUS (デフォルト) または TemperatureUnits.FAHRENHEIT。

建設業者#

コンストラクタは、コード内で DriveTrain オブジェクトと SmartDrive オブジェクトを作成するために使用されます。これは、デバイス ウィンドウを使用せずにドライブトレインを構成する場合に便利です。

ドライブトレインを作成する前に、少なくとも 2 つの Motor または MotorGroup オブジェクトを作成する必要があります。

DriveTrain#

DriveTrain 、ジャイロセンサー または 慣性センサー のないドライブトレインを作成します。

Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

パラメータ

説明

lm

左運動または運動群。

rm

右モーターまたはモーターグループ。

wheelTravel

オプション。駆動輪の円周。デフォルト値は300ミリメートルです。

trackWidth

オプション。左右の車輪間の幅。デフォルト値は320ミリメートルです。

wheelBase

オプション。前輪と後輪の間の距離。デフォルト値は320ミリメートルです。

units

オプション wheelTravel trackWidthwheelBase wheelBase単位: MM (ミリメートル、デフォルト)、 INCHES、または DistanceUnits.CM (センチメートル)。

externalGearRatio

オプション。ギアを使用する場合に、駆動距離を調整するために使用するギア比 integer (小数)またはfloat)を指定できます。デフォルト値は1.0です。

# Create left and right drive motor objects
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT2, 1.0, True)

'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)

# Create two motor group objects for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)

right_motor_a = Motor(Ports.PORT3, 1.0, True)
right_motor_b = Motor(Ports.PORT4, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)

'''
Create a Drivetrain with the following values:
wheelTravel: 200
trackWidth: 173
wheelBase: 76
units: MM
externalGearRatio: 1
'''
drivetrain = DriveTrain(left_drive_smart, right_drive_smart, 200, 173, 76, MM, 1)

SmartDrive#

SmartDrive 、ジャイロセンサーまたは慣性センサーを備えた駆動系を作成します。

Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

パラメータ

説明

lm

左運動または運動群。

rm

右モーターまたはモーターグループ。

g

駆動系で使用されるジャイロセンサーまたは慣性センサー。

wheelTravel

オプション。駆動輪の円周。デフォルト値は300ミリメートルです。

trackWidth

オプション。左右の車輪間の幅。デフォルト値は320ミリメートルです。

wheelBase

オプション。前輪と後輪の間の距離。デフォルト値は320ミリメートルです。

units

オプション wheelTravel trackWidthwheelBase wheelBase単位: MM (ミリメートル、デフォルト)、 INCHES、または DistanceUnits.CM (センチメートル)。

externalGearRatio

オプション。ギアを使用する場合に、駆動距離を調整するために使用するギア比 integer (小数)またはfloat)を指定できます。デフォルト値は1.0です。

# Create the Inertial Sensor
brain_inertial = Inertial()

# Make left and right drive motors
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT6, 1.0, True)

# Create a SmartDrive object with wheelTravel 200
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)

複数のモーターを使用したスマートドライブトレインを作成する場合は、モーターを個別に作成してから、それらをモーターグループにまとめる必要があります。

# Create the Inertial Sensor
brain_inertial = Inertial()

# Create two motor groups for left and right motors
left_motor_a = Motor(Ports.PORT1, 1.0, False)
left_motor_b = Motor(Ports.PORT2, 1.0, False)
left_drive_smart = MotorGroup(left_motor_a, left_motor_b)

right_motor_a = Motor(Ports.PORT5, 1.0, True)
right_motor_b = Motor(Ports.PORT6, 1.0, True)
right_drive_smart = MotorGroup(right_motor_a, right_motor_b)

# Create a SmartDrive object with wheelTravel 200 mm
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)