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

cfg요소는 로봇 자세 (configuration)를 지정합니다. 축 좌표(joint)의 경우는 필요 없고, 직교좌표의 경우만 필요합니다. 자세한 내용은 Hi6 로봇제어기 조작설명서의 "2.3.2.2 베이스 및 로봇 기록 좌표"를 참조하십시오.

변수 정의 예제

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?