智能驾驶#

初始化智能驱动器类#

使用以下构造函数创建智能传动系统:

The smartdrive constructor creates a smartdrive object. This object can do everything a drivetrain can do but has additional methods that include use of an Inertial Sensor or Gyro in order to make more accurate turns.

范围

描述

lm

左侧 电机电机组 的名称。

rm

右侧 电机电机组 的名称。

guido

用于检测机器人角度或航向的设备名称。可以是任意的 惯性传感器陀螺仪传感器

wheelTravel

驱动轮的周长。默认值为 300 毫米。

trackWidth

智能传动系统的轮距。默认值为 320 毫米。

wheelBase

智能传动系统的轴距。默认值为 320 毫米。

units

A valid distanceUnit for the units that wheelTravel, trackWidth and wheelBase are specified in. The default is mm.

externalGearRatio

如果使用齿轮传动,则使用齿轮比来补偿驱动距离。

必须先创建 Motors 和/或 Motor Groups,然后才能使用 smartdrive 类构造函数创建对象。

// Create the Motors.
motor left_motor = motor(PORT1,false);
motor right_motor = motor(PORT2, true);
// Create the Inertial Sensor
inertial Inertial = inertial(PORT3);
// Construct a 2-Motor Smart Drivetrain "Smartdrive" with the
// smartdrive class.
smartdrive Smartdrive = smartdrive(left_motor, right_motor, Inertial, 259.34, 320, 40, mm, ratio18_1);

如果制作 4 电机智能传动系统,则需要先单独创建 电机,然后再将它们分组到 电机组中。

// Create the left Motors and group them under the
// motor_group "leftMotors".
motor leftMotorA = motor(PORT1, false);
motor leftMotorB = motor(PORT2, false);
motor_group leftMotors = motor_group(leftMotorA, leftMotorB);
// Create the right Motors and group them under the
// MotorGroup "rightMotors".
motor rightMotorA = motor(PORT3, true);
motor rightMotorB = motor(PORT4, true);
motor_group rightMotors = motor_group(rightMotorA, rightMotorB);
// Create the Inertial Sensor
inertial Inertial = inertial(PORT5);
// Construct a 4-Motor smartdrive "Smartdrive" with the
// smartdrive class.
smartdrive Smartdrive = smartdrive(leftMotors, rightMotors, Inertial, 259.34, 320, 40, mm, ratio18_1);

This Smartdrive object will be used in all subsequent examples throughout this API documentation when referring to smartdrive class methods.

要创建不带 惯性传感器陀螺仪传感器 功能的对象,请改用 传动系统 类构造函数创建对象。

类方法#

drive()#

这是一种非等待方法,允许下一个方法无延迟运行。

该方法通过以下方式调用:

The drive(dir) method is used to drive the smartdrive in the specified direction forever at the default velocity as specified by the setDriveVelocity() method, until another Smart Drivetrain movement method is used, or the project is stopped.

参数

描述

目录

有效的 directionType

**返回:**无。

// Drive the smartdrive forward.
Smartdrive.drive(forward);

The drive(dir, velocity, units) method is used to drive the Smart Drivetrain in the specified direction forever at a specified velocity, until another Smart Drivetrain movement method is used, or the project is stopped.

参数

描述

目录

有效的 directionType

速度

智能驱动器移动的速度。

单位

有效的 velocityUnit

**返回:**无。

// Drive the smartdrive forward at 100 rpm.
Smartdrive.drive(forward, 100, rpm);

driveFor()#

This can be a waiting or non-waiting method depending on if the waitForCompletion parameter is used.

该方法通过以下方式调用:

The driveFor(distance, units, waitForCompletion) method is used to drive the Smart Drivetrain for a specified distance at the default velocity.

参数

描述

距离

智能驱动器移动的距离。

单位

A valid distanceUnit. The default is inches.

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能驱动器是否已达到目标距离。

// Drive the Smart Drivetrain for 10 inches.
Smartdrive.driveFor(10, inches);

The driveFor(dir, distance, units, waitForCompletion) method is used to drive the Smart Drivetrain in a specified direction for a specified distance at the default velocity.

参数

描述

目录

有效的 directionType

距离

智能传动系统移动的距离。

单位

A valid distanceUnit. The default is inches.

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能传动系统是否已达到目标距离。

// Drive the Smart Drivetrain forward for 10 inches.
Smartdrive.driveFor(forward, 10, inches);

The driveFor(distance, units, velocity, units_v, waitForCompletion) method is used to drive the Smart Drivetrain for a specified distance at the default velocity.

参数

描述

距离

智能传动系统移动的距离。

单位

A valid distanceUnit. The default is inches.

速度

The velocity the Smart Drivetrain will move with. The default velocity set by the setDriveVelocity() method will be used if not provided.

单位

A valid velocityUnit. The default is rpm.

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能传动系统是否已达到目标距离。

// Drive the Smart Drivetrain for 10 inches at 100 rpm.
Smartdrive.driveFor(10, inches, 100, rpm);

The driveFor(dir, distance, units, velocity, units_v, waitForCompletion) method is used to drive the Smart Drivetrain for a specified distance at the default velocity.

参数

描述

目录

有效的 directionType

距离

智能传动系统移动的距离。

单位

A valid distanceUnit. The default is inches.

速度

The velocity the Smart Drivetrain will move with. The default velocity set by the setDriveVelocity() method will be used if not provided.

单位

A valid velocityUnit. The default is rpm.

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能传动系统是否已达到目标距离。

// Drive the Smart Drivetrain forward for 10 inches at 100 rpm.
Smartdrive.driveFor(forward, 10, inches, 100, rpm);

turn()#

这是一种非等待方法,允许下一个方法无延迟运行。

该方法通过以下方式调用:

The turn(dir) method is used to turn the robot in a specified direction at the default velocity as specified by the setTurnVelocity() method, until another Smart Drivetrain movement method is used, or the project is stopped.

参数

描述

目录

有效的 directionType

**返回:**无。

// Turn the Smart Drivetrain right.
Smartdrive.turn(right);

The turn(dir, velocity, units) method is used to turn the robot in a specified direction at a specified velocity, until another Smart Drivetrain movement method is used, or the project is stopped.

参数

描述

目录

有效的 directionType

速度

The velocity at which the Smart Drivetrain will turn. The default velocity set by The setTurnVelocity() method will be used if not provided.

单位

A valid velocityUnit. The default is rpm.

**返回:**无。

// Turn the Smart Drivetrain right at 100 rpm.
Smartdrive.turn(right, 100, rpm);

turnFor()#

This can be a waiting or non-waiting method depending on if the waitForCompletion parameter is used.

The turnFor() method in the smartdrive class works differently than in the drivetrain class because the Inertial Sensor or Gyro Sensor, instead of the internal motor encoders, are utilized to make more accurate turns.

该方法通过以下方式调用:

The turnFor(angle, units, waitForCompletion) method is used to turn the Smart Drivetrain for a specific angle at the default velocity as specified by the setTurnVelocity() method.

参数

描述

角度

智能传动系统转动的角度。

单位

A valid rotationUnit. The default is degrees.

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能传动系统是否已转到目标角度。

// Turn the Smart Drivetrain for 90 degrees.
Smartdrive.turnFor(90, degrees);

The turnFor(dir, angle, units, waitForCompletion) method is used to turn the Smart Drivetrain for a specific angle at the default velocity as specified by the setTurnVelocity() method.

参数

描述

目录

有效的 directionType

角度

智能传动系统转动的角度。

单位

A valid rotationUnit. The default is degrees.

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能传动系统是否已转到目标角度。

// Turn the Smart Drivetrain right for 90 degrees.
Smartdrive.turnFor(right, 90, degrees);

The turnFor(angle, units, velocity, units_v, waitForCompletion) method is used to turn the Smart Drivetrain for a specific angle at a specified velocity.

参数

描述

角度

智能传动系统转动的角度。

单位

A valid rotationUnit. The default is degrees.

速度

The velocity at which the Smart Drivetrain will turn. The default velocity set by The setTurnVelocity() method will be used if not provided.

单位

A valid velocityUnit. The default is rpm.

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能传动系统是否已转到目标角度。

// Turn the Smart Drivetrain for 90 degrees at 100 rpm.
Smartdrive.turnFor(90, degrees, 100, rpm);

The turnFor(dir, angle, units, velocity, units_v, waitForCompletion) method is used to turn the Smart Drivetrain for a specific angle at a specified velocity.

参数

描述

目录

有效的 directionType

角度

智能传动系统转动的角度。

单位

A valid rotationUnit. The default is degrees.

速度

The velocity at which the Smart Drivetrain will turn. The default velocity set by The setTurnVelocity() method will be used if not provided.

单位

A valid velocityUnit. The default is rpm.

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能传动系统是否已转到目标角度。

// Turn the Smart Drivetrain right for 90 degrees at 100 rpm.
Smartdrive.turnFor(right, 90, degrees, 100, rpm);

turnToHeading()#

This can be a waiting or non-waiting method depending on if the waitForCompletion parameter is used.

该方法通过以下方式调用:

The turnToHeading(angle, units, waitForCompletion) method turns the Smart Drivetrain to a specific heading.

参数

描述

角度

转向的航向角。

单位

有效的 rotationUnit

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能传动系统何时达到目标转弯值。

// Turn to heading 180 degrees.
Smartdrive.turnToHeading(180, degrees);

The turnToHeading(angle, units, velocity, units_v, waitForCompletion) method turns the Smart Drivetrain to a specific heading.

参数

描述

角度

转向的航向角。

单位

有效的 rotationUnit

速度

使用此速度旋转智能传动系统的电机。

单位

有效的 velocityUnit

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能传动系统何时达到目标转弯值。

// Turn to heading 180 degrees at 100 rpm.
Smartdrive.turnToHeading(180, degrees, 100, rpm);

turnToRotation()#

This can be a waiting or non-waiting method depending on if the waitForCompletion parameter is used.

该方法通过以下方式调用:

The turnToRotation(angle, units, waitForCompletion) method turns the Smart Drivetrain to a specific rotation.

参数

描述

角度

要旋转的旋转角度。

单位

有效的 rotationUnit

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能传动系统何时达到目标转弯值。

// Turn to rotation 180 degrees.
Smartdrive.turnToRotation(180, degrees);

The turnToRotation(angle, units, velocity, units_v, waitForCompletion) method turns the Smart Drivetrain to a specific rotation.

参数

描述

角度

要旋转的旋转角度。

单位

有效的 rotationUnit

速度

使用此速度旋转智能传动系统的电机。

单位

有效的 velocityUnit

等待完成

Determines whether the command will block subsequent commands (waitForCompletion=true) or allow immediate execution (waitForCompletion=false). If unspecified, the default for the waitForCompletion parameter is waitForCompletion=true.

**返回:**一个布尔值,表示智能传动系统何时达到目标转弯值。

// Turn to rotation 180 degrees at 100 rpm.
Smartdrive.turnToRotation(180, degrees, 100, rpm);

stop()#

这是一个非等待命令,允许下一个命令无延迟运行。

该方法通过以下方式调用:

The stop() command is used to stop the Smart Drivetrain, setting the Smart Drivetrain to 0 velocity and configuring the current stopping mode. The default Brake Type is coast, unless previously changed using the setStopping() command.

**返回:**无。

// Spin Smartdrive for 2.5 seconds.
Smartdrive.spin(forward);

wait(2.5 seconds);

// Stop Smartdrive.
Smartdrive.stop();

The stop(mode) command is used to stop the Smart Drivetrain using a specific Brake Type.

参数

描述

模式

有效的 brakeType

**返回:**无。

// Spin Smartdrive for 2.5 seconds.
Smartdrive.spin(forward);

wait(2.5 seconds);

// Stop Smartdrive using the hold Brake Type.
Smartdrive.stop(hold);

isMoving()#

The isMoving() command returns if any Smart Drivetrain motor is on and rotating to a specific target.

Returns: true if any Smart Drivetrain motor is on and rotating to a target. false if it they are done rotating to a target.

isDone()#

The isDone() command returns if all Smart Drivetrain motors are done rotating to a specific target.

Returns: true if the all Smart Drivetrain motors are done rotating to a target. false if any Smart Drivetrain motor is on and rotating to a target.

isTurning()#

The isTurning() method returns if a turnToHeading(), turnToRotation(), or turnFor() method is currently running.

Returns: true if the a turnToHeading(), turnToRotation(), or turnFor() method is currently running. false if one is not.

setDriveVelocity()#

The setDriveVelocity(velocity, units) method is used to set the default velocity for the Smartdrive. This velocity setting affects all subsequent drive method unless a specific velocity is provided in those method.

参数

描述

速度

为 Smartdrive 设置的默认新速度。

单位

A valid velocityUnit or percent. The default is rpm.

**返回:**无。

// Set the Smart Drivetrain to drive at a velocity of 200 rpm.
Smartdrive.setDriveVelocity(200, rpm);

setTurnVelocity()#

The setTurnVelocity(velocity, units) method is used to set the default velocity for turning maneuvers in the Smartdrive. This setting specifies the speed at which the Smart Drivetrain will execute turning method unless overridden by a specific velocity in those method.

参数

描述

速度

设置为转弯操作默认的新速度。

单位

A valid velocityUnit or percent. The default is rpm.

**返回:**无。

// Set the Smart Drivetrain to turn at a velocity of 200 RPM.
Smartdrive.setTurnVelocity(200, rpm);

setStopping()#

The setStopping(mode) method is used to set the stopping mode for all motors on the Smartdrive. This setting determines the behavior of the motors when they receive a stop method or when the velocity is set to zero.

参数

描述

模式

有效的 brakeType

**返回:**无。

// Set the stopping mode to BRAKE.
Smartdrive.setStopping(brake);

setGearRatio()#

The setGearRatio(mode) method is used to set the gear ratio for all motors on the Smartdrive.

参数

描述

模式

有效的 gearSetting

**返回:**无。

setTurnThreshold()#

The setTurnThreshold(t) method sets the turn threshold for the Smartdrive. The threshold value is used to determine that turns are complete. If this is too large, then turns will not be accurate. If too small, then turns may not complete.

参数

描述

The new turn threshold in degrees. The default for a Smart Drivetrain is 1 degree.

**返回:**无。

setTurnConstant()#

The setTurnConstant(kp) method sets the turn constant for the Smartdrive. The Smart Drivetrain uses a simple P controller when doing turns. This constant, generally known as kp, is the gain used in the equation that turns angular error into motor velocity.

参数

描述

千帕

新的转弯常数,范围为 0.1 - 4.0。默认值为 1.0。

**返回:**无。

setTurnDirectionReverse()#

The setTurnDirectionReverse(value) method sets the expected turn direction for positive heading.

参数

描述

价值

A boolean value to set the reversed flag to true or false.

**返回:**无。

setHeading()#

The setHeading(value, units) method sets the heading for the Smart Drivetrain Inertial Sensor or Gyro Sensor.

参数

描述

价值

用于标题的新值。

单位

有效的 rotationUnit

**返回:**无。

// set the value of heading to 180 degrees.
Smartdrive.setHeading(180, degrees);

setRotation()#

The setRotation() method sets the rotation for the Smart Drivetrain Inertial Sensor or Gyro Sensor.

参数

描述

价值

用于旋转的新值。

单位

有效的 rotationUnit

**返回:**无。

// Set the value of rotation to 180 degrees.
Smartdrive.setRotation(180, degrees);

setTimeout()#

The Smartdrive.setTimeout(time, units) method is used to set the timeout value for all motors on the Smartdrive. This setting determines how long the Smart Drivetrain will attempt to execute driveFor or turnFor method before timing out if the motors have not completed their movements.

参数

描述

暂停

为智能传动系统操作设置的默认超时时间。

单位

A valid timeUnit type. The default is msec.

**返回:**无。

// Set the timeout for the Smart Drivetrain to 10 seconds.
Smartdrive.setTimeout(10, seconds);

heading()#

The heading(units) method returns the current heading of the Smartdrive.

参数

描述

单位

A valid rotationUnit type. The default is degrees.

**返回:**以指定单位表示智能传动系统当前航向的双精度值。

// Get the current heading for the Smartdrive.
double value = Smartdrive.heading();

rotation()#

The rotation(units) method returns the current rotation of the Smartdrive.

参数

描述

单位

A valid rotationUnit. The default is degrees.

**返回:**以指定单位表示智能传动系统的当前旋转的双精度值。

// Get the current rotation for the Smartdrive.
double value = Smartdrive.rotation();

velocity()#

The velocity(units) method returns the average velocity of the Smart Drivetrain.

参数

描述

单位

A valid velocityUnit or percent. The default is rpm.

**返回:**以指定单位表示智能传动系统速度的双精度值。

current()#

The current() method returns the average current of the Smart Drivetrain.

参数

描述

单位

The only valid units for current are amp or percent.

**返回:**以指定单位表示智能传动系统电流的双精度值。

voltage()#

The voltage(units) method returns the average velocity of the Smart Drivetrain.

参数

描述

单位

A valid voltageUnit. The default is volt.

**返回:**以指定单位表示智能传动系统电压的双精度值。

power()#

The power(units) method returns the average power of the Smart Drivetrain .

参数

描述

单位

The only valid unit for power is watt.

**返回:**以指定单位表示智能传动系统功率的双精度值。

torque()#

The torque() method returns the average torque of the Smart Drivetrain.

参数

描述

单位

A valid torqueUnit. The default is Nm.

**返回:**以指定单位表示智能传动系统扭矩的双精度值。

efficiency()#

The efficiency() method returns the average efficiency of the Smart Drivetrain.

参数

描述

单位

The only valid unit for efficiency is percent.

**返回:**以提供的单位表示智能传动系统效率的双精度值。

temperature()#

The temperature() method returns the average temperature of the Smart Drivetrain.

参数

描述

单位

The only valid unit for temperature is percent.

**返回:**以提供的单位表示智能传动系统温度的双精度值。