5.1 포즈 (pose)
포즈는 hi6 제어기에 기본 내장된 객체형으로서, 로봇의 각 축의 자세, 혹은 툴 끝의 직교좌표와 방향을 표현합니다.
포즈는 생성자 함수 Pose( )를 호출하여 생성합니다. 함수 매개변수들은 모두 위치 매개변수입니다. 첫 번째 문자열 요소는 format으로 두 번째 문자열 요소는 config로 인식됩니다. 나머지는 모두 숫자형입니다.
format (포맷)
좌표계를 포함한 여러 서브 요소들이 세미콜론 (;)으로 구분 열거됩니다. 각 서브 요소는 생략 가능하며 순서에 무관하게 인식됩니다.
crd
문자열
좌표계 (coordinate system). 생략하면 축(joint) 좌표 아래 표 참조
sync(p1,p2)
p1, p2는 실수
센서 동기 (1~2개의 위치 값)
mi(mech 번호[, ...])
각 mech번호는 0~7의 정수
메커니즘 구성 (mi는 mech.info.을 줄임말) 생략하면 전체 메커니즘
format의 예 (examples);
"base,mi(0,2)" # base 좌표계, 메커니즘 0번+2번으로 구성
"" # 좌표계 생략 (joint 좌표계), 센서 동기 없음, 메커니즘 생략 (전체 메커니즘)
"sync(20.5,-12.0),robot" #센서 동기(1번 위치=20.5, 2번 위치=-12.0), robot 좌표계
config
변수 정의 예제
var 포즈변수명 = Pose(j1, j2, j3, …) # 축 좌표
var 포즈변수명 = Pose(x, y, z, rx, ry, rz, j7, j8,…, format, cfg) # base 좌표
6축+부가1축, 직교+부가 1축, 부가 1축 단독의 포즈를 생성하는 아래의 예를 참고하십시오.
var po1 = Pose(10, 90, 0, 0, -30, 0, -1240.8) # 좌표계 생략 (축 좌표)
var po2 = Pose(1850, 0, 2010.5, 0, -90, 0, -1240.8, "base", "fl;r2") # base 좌표
var po3 = Pose(-1140.8, "mi(2)") # 축 좌표, 메커니즘 2번
혹은, 1개의 배열 혹은 문자열 매개변수로도 Pose 생성자 함수를 호출할 수 있습니다. 이를 활용해, 파일이나 원격통신으로 얻은 데이터를 포즈로 변환해 사용할 수 있습니다.
var 포즈변수명 = Pose(array)
var 포즈변수명 = Pose(string)
아래의 예를 참고하십시오.
var arr = [10, 90, 0, 0, -30, 0, -1240.8]
var str = "[1850, 0, 2010.5, 0, -90, 0, -1240.8, \"base\", \"fl;r2\"]"
var po3 = Pose(arr)
var po4 = Pose(str)
Pose 객체의 요소들은 다음의 키들로 접근 가능합니다.
nj
정수형
1~32
축 개수
j1~j32
실수형
8 바이트 실수 범위
축 값
mm, deg
x, y, z
실수형
8 바이트 실수 범위
직교좌표 값
mm
rx, ry, rz
실수형
8 바이트 실수 범위
좌표계 방향 오일러 각도
deg
crd
문자열형
joint
축 좌표계 (default)
base
베이스 좌표계
robot
로봇 좌표계
u1 ~ u10
사용자 좌표계
cfg
문자열형
s
|S|>=180
; 으로 구분하여, 조합가능 default 는 모든 flag 꺼짐.
r1
|R1|>=180
r2
|R2|>=180
b
|B|>=180
re
rear
dn
down
nf
non-flip
auto
auto (자동 결정)
mechinfo
정수형
-1 ~ 255
bitfield (bit0:M0, bit1:M1, .... bit7:M7) -1이면 전체 메커니즘.
포함된 메커니즘의 bit만 1
nsync
정수형
0~2
센서 동기 개수
sync
문자열형 (p1, p2는 실수)
sync(p1,p2)
센서 동기 값
sync(220.5,195.3)
아래의 예와 같이 포즈 요소값에 접근할 수 있습니다.
po1.j2 = po1.j2 + 5
print po2.z, po2.cfg
Last updated
Was this helpful?