public static const

Action.Navigation

org.smartrobot.android.action.Action.Navigation

Overview

로봇을 원하는 위치와 방향으로 이동시키는 액션의 모델 ID와 각 디바이스의 ID에 대한 상수 값을 정의한다.

Action.Navigation은 6개의 커맨드 디바이스로 구성되어 있으며, 각 디바이스의 데이터는 정수형 배열로 선언되어 있다.

종류 디바이스 ID 디바이스 이름 데이터 형 배열 크기 단위 값의 범위 초기 값
커맨드 COMMAND_PAD_SIZE "PadSize" 정수 2 0 ~ 40000 (0: 유효하지 않은 값) 0 (유효하지 않은 값)
커맨드 COMMAND_INITIAL_POSITION "InitialPosition" 정수 2 0 ~ 39999 0
커맨드 COMMAND_WAYPOINTS "Waypoints" 정수 -1 0 ~ 39999 0
커맨드 COMMAND_FINAL_ORIENTATION "FinalOrientation" 정수 1 o -179 ~ 180 0
커맨드 COMMAND_MAX_SPEED "MaxSpeed" 정수 1 % 0 ~ 100 50
커맨드 COMMAND_CURVATURE "Curvature" 정수 1 % 0 ~ 100 50

  • COMMAND_PAD_SIZE
    내비게이션 패드의 크기를 나타낸다. 크기 2의 데이터 배열에서 첫 번째 값은 패드의 가로 크기, 두 번째 값은 패드의 세로 크기이다. 가로 크기와 세로 크기의 곱(면적)은 40000을 넘을 수 없다. 즉, 가로 크기가 1인 경우에는 세로 크기가 1 ~ 40000까지 가능하고, 가로 크기가 200인 경우에는 세로 크기가 1 ~ 200까지 가능하다.
  • COMMAND_INITIAL_POSITION
    내비게이션 패드 위에서 로봇의 초기 위치를 나타낸다. 크기 2의 데이터 배열에서 첫 번째 값은 X축 좌표, 두 번째 값은 Y축 좌표 값이다. 설정하지 않으면 로봇의 현재 위치를 초기 위치로 사용한다.
  • COMMAND_WAYPOINTS
    로봇이 이동하는 중간 경로와 마지막 위치를 나타낸다. 데이터 배열의 크기는 2의 배수이어야 하며, 홀수 번째 값은 X축 좌표, 짝수 번째 값은 Y축 좌표 값이다.
  • COMMAND_FINAL_ORIENTATION
    마지막 위치에서 로봇의 최종 방향을 나타낸다. 내비게이션 패드의 X축 방향이 0도이다.
  • COMMAND_MAX_SPEED
    로봇이 경로를 따라 이동하는 최대 속도를 나타낸다. 값이 클수록 이동 속도가 빨라진다.
  • COMMAND_CURVATURE
    로봇이 이동하는 경로의 굽은 정도를 나타낸다. 값이 클수록 방향 전환을 급격하게 하고, 값이 작을수록 방향 전환을 부드럽게 한다.

Action.Navigation은 목표 위치와 방향에 도달하면 Action 클래스의 setOnCompletedListener(listener:Function) 메소드로 설정한 리스너 함수를 호출한다.

 function someMethod(action:Action):void
 {
     var devicePadSize:Device = action.findDeviceById(Action.Navigation.COMMAND_PAD_SIZE);
     devicePadSize.write(0, 108); // 패드의 폭 값을 쓴다.
     devicePadSize.write(1, 76); // 패드의 높이 값을 쓴다.

     var deviceInitialPosition:Device = action.findDeviceById(Action.Navigation.COMMAND_INITIAL_POSITION);
     deviceInitialPosition.write(0, 10); // 초기 위치의 X 좌표 값을 쓴다.
     deviceInitialPosition.write(1, 20); // 초기 위치의 Y 좌표 값을 쓴다.

     var deviceWaypoints:Device = action.findDeviceById(Action.Navigation.COMMAND_WAYPOINTS);
     var waypoints:Array = [ 50, 50, 90, 50 ]; // 초기 위치에서 (50, 50) 위치를 경유하여 (90, 50) 위치로 이동한다.
     deviceWaypoints.write(waypoints); // 중간 경로를 포함하여 로봇이 이동할 목표 위치 값을 쓴다.

     var deviceFinalOrientation:Device = action.findDeviceById(Action.Navigation.COMMAND_FINAL_ORIENTATION);
     deviceFinalOrientation.write(30); // 마지막 위치에서 로봇의 최종 방향 값을 쓴다.

     var deviceMaxSpeed:Device = action.findDeviceById(Action.Navigation.COMMAND_MAX_SPEED);
     deviceMaxSpeed.write(50); // 최대 이동 속도 값을 쓴다.

     var deviceCurvature:Device = action.findDeviceById(Action.Navigation.COMMAND_CURVATURE);
     deviceCurvature.write(50); // 이동 경로의 곡률 값을 쓴다.
 }
See Also

Summary

Constants
int COMMAND_CURVATURE 곡률 커맨드 디바이스의 ID를 나타내는 상수.
int COMMAND_FINAL_ORIENTATION 최종 방향 커맨드 디바이스의 ID를 나타내는 상수.
int COMMAND_INITIAL_POSITION 초기 위치 커맨드 디바이스의 ID를 나타내는 상수.
int COMMAND_MAX_SPEED 최대 속도 커맨드 디바이스의 ID를 나타내는 상수.
int COMMAND_PAD_SIZE 패드 크기 커맨드 디바이스의 ID를 나타내는 상수.
int COMMAND_WAYPOINTS 경로점 커맨드 디바이스의 ID를 나타내는 상수.
String ID Navigation 액션의 모델 ID를 나타내는 상수.

Constants

public static const COMMAND_CURVATURE:int

라이브러리 버전 1.0.0부터

곡률 커맨드 디바이스의 ID를 나타내는 상수.

곡률 커맨드 디바이스의 데이터는 로봇이 이동하는 경로의 굽은 정도를 나타낸다. 값이 클수록 방향 전환을 급격하게 하고, 값이 작을수록 방향 전환을 부드럽게 한다.

Action 클래스의 activate() 메소드를 호출하기 전에 설정해야 한다.

버전 1.3.0까지는 지원하지 않는다. 이후 버전에서 지원할 예정이다.

  • 상수 값: 0x40600004
  • 디바이스의 데이터 배열
    • 데이터 형: 정수로 구성된 Array
    • 배열 크기: 1
    • 값의 범위: 0 ~ 100 [%]
    • 초기 값: 50

public static const COMMAND_FINAL_ORIENTATION:int

라이브러리 버전 1.0.0부터

최종 방향 커맨드 디바이스의 ID를 나타내는 상수.

최종 방향 커맨드 디바이스의 데이터는 마지막 위치에서 로봇의 최종 방향을 나타낸다. 내비게이션 패드의 X축 방향이 0도이다.

Action 클래스의 activate() 메소드를 호출하기 전에 설정해야 한다.

  • 상수 값: 0x40600002
  • 디바이스의 데이터 배열
    • 데이터 형: 정수로 구성된 Array
    • 배열 크기: 1
    • 값의 범위: -179 ~ 180 [o]
    • 초기 값: 0

public static const COMMAND_INITIAL_POSITION:int

라이브러리 버전 1.0.0부터

초기 위치 커맨드 디바이스의 ID를 나타내는 상수.

초기 위치 커맨드 디바이스의 데이터는 내비게이션 패드 위에서 로봇의 초기 위치를 나타낸다. 크기 2의 데이터 배열에서 첫 번째 값은 X축 좌표, 두 번째 값은 Y축 좌표 값이다. 설정하지 않으면 로봇의 현재 위치를 초기 위치로 사용한다.

Action 클래스의 activate() 메소드를 호출하기 전에 설정해야 한다.

  • 상수 값: 0x40600000
  • 디바이스의 데이터 배열
    • 데이터 형: 정수로 구성된 Array
    • 배열 크기: 2
    • 값의 범위: 0 ~ 39999
    • 초기 값: 0

public static const COMMAND_MAX_SPEED:int

라이브러리 버전 1.0.0부터

최대 속도 커맨드 디바이스의 ID를 나타내는 상수.

최대 속도 커맨드 디바이스의 데이터는 로봇이 경로를 따라 이동하는 최대 속도를 나타낸다. 값이 클수록 이동 속도가 빨라진다.

Action 클래스의 activate() 메소드를 호출하기 전에 설정해야 한다.

버전 1.3.0까지는 지원하지 않는다. 이후 버전에서 지원할 예정이다.

  • 상수 값: 0x40600003
  • 디바이스의 데이터 배열
    • 데이터 형: 정수로 구성된 Array
    • 배열 크기: 1
    • 값의 범위: 0 ~ 100 [%]
    • 초기 값: 50

public static const COMMAND_PAD_SIZE:int

라이브러리 버전 1.3.0부터

패드 크기 커맨드 디바이스의 ID를 나타내는 상수.

패드 크기 커맨드 디바이스의 데이터는 내비게이션 패드의 크기를 나타낸다. 크기 2의 데이터 배열에서 첫 번째 값은 패드의 가로 크기, 두 번째 값은 패드의 세로 크기이다. 가로 크기와 세로 크기의 곱(면적)은 40000을 넘을 수 없다. 즉, 가로 크기가 1인 경우에는 세로 크기가 1 ~ 40000까지 가능하고, 가로 크기가 200인 경우에는 세로 크기가 1 ~ 200까지 가능하다.

Action 클래스의 activate() 메소드를 호출하기 전에 설정해야 한다.

  • 상수 값: 0x40600005
  • 디바이스의 데이터 배열
    • 데이터 형: 정수로 구성된 Array
    • 배열 크기: 2
    • 값의 범위: 0 ~ 40000 (0: 유효하지 않은 값)
    • 초기 값: 0 (유효하지 않은 값)

public static const COMMAND_WAYPOINTS:int

라이브러리 버전 1.0.0부터

경로점 커맨드 디바이스의 ID를 나타내는 상수.

경로점 커맨드 디바이스의 데이터는 로봇이 이동하는 중간 경로와 마지막 위치를 나타낸다. 데이터 배열의 크기는 2의 배수이어야 하며, 홀수 번째 값은 X축 좌표, 짝수 번째 값은 Y축 좌표 값이다.

Action 클래스의 activate() 메소드를 호출하기 전에 설정해야 한다.

  • 상수 값: 0x40600001
  • 디바이스의 데이터 배열
    • 데이터 형: 정수로 구성된 Array
    • 배열 크기: -1
    • 값의 범위: 0 ~ 39999
    • 초기 값: 0

public static const ID:String

라이브러리 버전 1.0.0부터

Navigation 액션의 모델 ID를 나타내는 상수.

  • 상수 값: "org.smartrobot.android.action.navigation"