MoveCircle.srv
기능
로봇 제어기에서 작업공간을 기준으로 로봇이 현재 위치에서 경유 지점를 지나 목표 위치까지 원호 또는 지정한 각도로 원호를 따라 이동시키기 위한 서비스입니다.
인수
인수명 | 자료형 | 기본값 | 설명 |
---|---|---|---|
pos | std_msgs/Float64MultiArray[] | - | target[2][6]
|
vel | float64[2] | - | 선속도, 각속도 |
acc | float64[2] | - | 선가속도, 각가속도 |
time | float64 | 0.0 | 도달 시간 [sec] |
radius | float64 | 0.0 | blending시 radius |
ref | int8 | 0 | MOVE_REFERENCE_BASE =0 MOVE_REFERENCE_TOOL=1 MOVE_REFERENCE_WORLD=2 |
mode | int8 | 0 | MOVE_MODE_ABSOLUTE =0 MOVE_MODE_RELATIVE =1 |
angle1 | float64 | 0.0 | angle1 |
angle2 | float64 | 0.0 | angle2 |
blendType | int8 | 0 | BLENDING_SPEED_TYPE_DUPLICATE =0 BLENDING_SPEED_TYPE_OVERRIDE =1 |
syncType | int8 | 0 | SYNC = 0 ASYNC = 1 |
알아두기
- vel 에 하나의 인자를 입력한 경우(예를들어, vel ={30, 0}) 입력된 인자는 모션의 선속도에 대응되며, 각속도는 선속도에 비례하여 결정됩니다.
- acc 에 하나의 인자를 입력한 경우(예를들어, acc ={60, 0}) 입력된 인자는 모션의 선가속도에 대응되며, 각가속도는 선가속도에 비례하여 결정됩니다.
- time 지정 시, vel, acc 를 무시하고 time 기준으로 처리됩니다.
- ref 의 인자에서 DR_WORLD 는 M2.40 이상의 버전에서만 사용 가능합니다.
- mode 가 MOVE_MODE_RELATIVE 인 경우 pos[0] 과 pos[1] 는 각각 앞 선 위치값에 대한 상대좌표로 정의됩니다. (pos[0]은 시작점 대비 상대좌표, pos[1]는 pos[0]대비 상대좌표)
- angle1이 0보다 크고, angle2이 0인 경우 angle1은 Circular path 상의 총 회전각이 적용됩니다.
- angle1과 angle2가 0보다 큰 경우, angle1은 circular path 상에서 정속으로 이동하는 총 회전각을, angle2는 가속과 감속을 위한 회전 구간의 회전각을 의미합니다. 이때 총 이동각은 angle1+ 2 X angle2만큼 circular path 상을 움직입니다.
주의
blendType이 BLENDING_SPEED_TYPE_DUPLICATE이고 radius 가 0보다 큰 조건으로 후속 모션이 블렌딩 될 경우 선행모션의 잔여거리, 속도, 가속도로 결정되는 잔여모션시간이 후행모션의 모션시간보다 큰 경우 후행모션이 먼저 종료된 후 선행모션이 종료될 수 있습니다. 관련한 사항은 아래 이미지를 잠고하십시오.
리턴
인수명 | 자료형 | 기본값 | 설명 |
---|---|---|---|
success | bool | - | 성공 여부 : True or False |