관성#
소개#
뇌에는 관성 센서가 내장되어 있습니다. 이 센서는 뇌의 움직임이나 회전을 측정할 수 있습니다.
관성 센서는 이를 위해 두 부분으로 구성됩니다. 자이로스코프는 브레인이 어느 방향을 향하고 있는지, 얼마나 회전했는지와 같은 회전을 측정합니다. 가속도계는 가속, 감속 또는 충돌 시 갑작스러운 정지와 같은 운동 변화를 측정합니다.
관성 모멘트 방식은 선회 추적, 방향 또는 회전 값 재설정, 롤, 피치 및 요 측정, 가속도 보고에 사용할 수 있습니다.
관성 센서를 코딩하는 방법은 여러 가지가 있습니다. 아래는 모든 관성 센서 코딩 방법의 목록입니다.
방향 설정 — 돌아가서 브레인이 어떤 방향을 향하고 있는지, 어떻게 회전하고 있는지, 또는 어떻게 기울어지고 있는지 설정하십시오.
get_heading— 0~359도 사이의 Brain이 향하는 방향을 반환합니다.get_rotation— 뇌가 얼마나 회전했는지 반환합니다.get_yaw— Brain이 시작 위치에서 왼쪽 또는 오른쪽으로 얼마나 회전했는지 반환합니다.get_roll— Brain이 왼쪽 또는 오른쪽으로 얼마나 기울어졌는지 반환합니다.get_pitch— Brain이 얼마나 앞쪽 또는 뒤쪽으로 기울어졌는지 반환합니다.calibrate— 뇌의 관성 센서를 보정합니다.reset_heading— 브레인의 현재 방향을 0도로 재설정합니다.reset_rotation— 브레인의 현재 회전을 0도로 재설정합니다.set_heading— 브레인의 현재 헤딩을 새로운 헤딩 값으로 설정합니다.set_rotation— 브레인의 현재 회전을 새로운 회전 값으로 설정합니다.
모션 — 뇌의 움직임을 반환합니다.
get_acceleration— 선택된 축에서 뇌가 얼마나 빠르게 가속되거나 감속하는지 반환합니다.
정위#
get_heading#
헤딩은 브레인이 향하는 방향을 나타내며, 0도에서 359도까지의 각도로 측정됩니다. get_heading 브레인의 현재 헤딩을 반환합니다.
초기 방향은 0도입니다. 브레인이 359도를 넘어서 회전하면 방향은 다시 0도로 돌아갑니다.
Usage:
inertial.get_heading()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
get_rotation#
회전은 브레인이 회전한 정도를 각도로 나타낸 것입니다. 헤딩과 달리 회전은 359도를 초과하거나 0도 미만으로 감소할 수 있습니다. 프로젝트 시작 시 회전 값은 0도로 설정됩니다. get_rotation 은 브레인의 현재 회전 값을 반환합니다.
오른쪽으로 돌면 회전 각도가 증가하고, 왼쪽으로 돌면 회전 각도가 감소합니다. 예를 들어, 오른쪽으로 두 바퀴를 완전히 돌면 720도 회전하게 됩니다. 0도에서 왼쪽으로 한 바퀴를 완전히 돌면 -360도 회전하게 됩니다.
Usage:
inertial.get_rotation()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
get_yaw#
요(Yaw)는 브레인이 시작 위치에서 왼쪽 또는 오른쪽으로 얼마나 회전했는지를 나타내는 각도입니다. get_yaw get_yaw 은 브레인의 현재 요 값을 반환합니다.
오른쪽으로 회전하면 요(yaw) 값이 증가하고, 왼쪽으로 회전하면 요 값이 감소합니다. 요 값은 회전 방향 값을 사용하지 않고도 좌회전과 우회전을 확인하는 데 유용합니다.
Usage:
inertial.get_yaw()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
get_roll#
Roll은 브레인이 왼쪽 또는 오른쪽으로 얼마나 기울어지는지를 나타내는 각도입니다. get_roll이 get_roll 현재 Roll 값을 반환합니다.
뇌가 정면을 향하고 있을 때, 왼쪽으로 기울이면 주사위 굴림 값이 증가하고, 오른쪽으로 기울이면 주사위 굴림 값이 감소합니다.
Usage:
inertial.get_roll()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
get_pitch#
피치는 브레인이 앞뒤로 기울어지는 정도를 각도로 나타낸 것입니다. get_pitch 함수는 get_pitch 반환합니다.
뇌 모형이 정면을 향하도록 놓았을 때, 앞으로 기울이면 음높이 값이 높아지고, 뒤로 기울이면 음높이 값이 낮아집니다.
Usage:
inertial.get_pitch()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
calibrate#
calibrate 뇌의 관성 센서를 보정합니다.
보정은 관성 센서가 회전을 정확하게 측정하는 데 도움이 됩니다. 보정하는 동안 브레인을 약 2초 동안 움직이지 않도록 고정하십시오. 보정 중에 브레인이 움직이면 방향, 회전, 요, 롤 및 피치 값이 정확하게 측정되지 않을 수 있습니다.
프로젝트는 보정 작업이 완료될 때까지 기다린 후 다음 코드 줄을 실행합니다.
Usage:
inertial.calibrate()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
reset_heading#
헤딩은 브레인이 향하는 방향을 도 단위로 나타낸 것입니다. reset_heading 은 브레인의 현재 헤딩을 0도로 재설정합니다.
이 방법을 사용하면 뇌의 현재 방향이 새로운 0도 방향으로 설정됩니다.
Usage:
inertial.reset_heading()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
reset_rotation#
회전은 뇌가 회전한 정도를 각도로 측정한 값입니다. reset_rotation 은 뇌의 현재 회전을 0도로 초기화합니다.
이 방법을 사용한 후, 두뇌는 새로운 0도 회전 값을 기준으로 향후 회전을 추적합니다.
Usage:
inertial.reset_rotation()
매개변수 |
설명 |
|---|---|
이 메서드에는 매개변수가 없습니다. |
set_heading#
헤딩은 브레인이 향하는 방향을 나타내며, 0도에서 359도까지의 각도로 측정됩니다. set_heading 브레인의 현재 헤딩 값을 새로운 헤딩 값으로 변경합니다.
예를 들어, 뇌가 오른쪽을 향하고 있다면, 방향을 0도로 설정하면 오른쪽을 향한 위치가 새로운 0도가 됩니다. 그러면 뇌는 이 새로운 방향을 기준으로 다른 방향을 추적할 수 있습니다.
Usage:
inertial.set_heading(heading)
매개변수 |
설명 |
|---|---|
|
브레인에 설정할 방향 값(도)입니다. 0에서 359 사이의 정수여야 합니다. |
set_rotation#
회전은 브레인이 회전한 정도를 각도로 나타낸 것입니다. 헤딩과 달리 회전은 359도를 초과하거나 0도 미만으로 감소할 수 있습니다. 프로젝트 시작 시 회전 값은 0도로 설정됩니다. set_rotation 명령어를 사용하면 브레인의 현재 회전 값을 새로운 값으로 변경할 수 있습니다.
예를 들어, 뇌가 오른쪽으로 두 바퀴를 완전히 돌았다면 회전 값은 720도가 됩니다. 회전 값을 0도로 설정하면 회전 값이 720도에서 0도로 초기화됩니다. 그러면 뇌는 이 새로운 값을 기준으로 회전을 추적할 수 있습니다.
Usage:
inertial.set_rotation(rotation)
매개변수 |
설명 |
|---|---|
|
뇌의 회전 값을 도 단위로 설정합니다. 정수 값을 입력할 수 있습니다. |
운동#
get_acceleration#
가속도는 뇌가 얼마나 빠르게 움직이거나 느려지는지를 나타냅니다. get_acceleration 선택한 축에 대한 뇌의 가속도를 -4.0G에서 4.0G 사이의 값으로 반환합니다.
G 가속도를 측정하는 단위입니다. 1G는 가만히 앉아 있을 때 중력으로부터 느끼는 가속도와 거의 같습니다.
해당 값은 선택한 축의 가속도 방향에 따라 양수 또는 음수가 될 수 있습니다. 축 옵션은 X, Y, Z 입니다.
Usage:
inertial.get_acceleration(axis)
매개변수 |
설명 |
|---|---|
|
가속도를 측정할 축은 |
# Build Used: Super Code Base 2.0
def main():
# Display the acceleration after moving.
drivetrain.set_drive_velocity(100)
console.print("Resting: ")
console.print(inertial.get_acceleration(X), precision=2)
console.new_line()
wait(1, SECONDS)
drivetrain.drive_for(FORWARD, 500, MM, wait=False)
wait(0.20, SECONDS)
console.print("Startup: ")
console.print(inertial.get_acceleration(X), precision=2)
# Start threads — Do not delete
start_thread(main)