Professional Documents
Culture Documents
MD κ¿Çà ÆûÅë Å Ç Ç V16
MD κ¿Çà ÆûÅë Å Ç Ç V16
이동로봇플랫폼, MDBOT 의
통싞사양
1. 서 롞
1.2 용어설명
용어 내용
RS485 RS485 직렧통싞
TTL232 TTL 싞호에 의한(0, 5VDC) 직렧통싞, 최대 배선의 길이는 2m 이하에서 구동할 것
CAN CAN 직렧통싞, 기본속도 50k bitrate, STANDARD, EXTENDED 두가지 병행사용
ENC 서보제어를 위한 엔코더 입력 제공, 당사 MEN 엔코더는 16384 ppr(4 체배 시 16bits)
PULSE_IN 입력으로 PULSE 를 받음(서보앰프 입력과 동일), 최대속도에 해당하는 펄스는 400kpps
RC_IN RC 서보 입력(펄스폭 1ms-1.5ms-2ms)
CLUTCH 모터에 장착된 젂자클러치(브레이크) 제어를 위한 포트(G, Vpp)
POW_SW 제어젂원 연결을 위한 젂원스위치 젂원입력(Vp)을 연결한 채로 제어기 ON/OFF 가능
2. 시스템 구성
2.1 구성도-MDBOT100-02(예제)
MDBOT 내부
인버터
3 구 콘센트
배터리
MD200T 젂원분배
MDBOT 외부
LIDAR
LIDAR
MDBOT 뒷면
메인젂원
충젂단자
비상스위치
MDUI
2.2 동작 블럭도
항목 내용 비고
1) 360 도 2D 범위 스캐닝
LIDAR 2) 5-12Hz 스캐닝 주파수
3) 측정 범위(0.26~12m)
ADC JS_IN
DI
DIP_SW
CAN
RS232(for PC)
TTL DO
12V_OUT TTL232
POWER(12~48VDC) DO
COM(For Motor Controller)
■ 커넥터
비고
커넥터이름 핀번호 명명 내용
(외부 하니스)
RS485 connector
RS485_A
하부 BLDC 모터제어기(PNT50, MD200T,
연호젂자 1,2,3 G,485+,485- SMH250-03
MD400T, MD750T), 57600bps 고정
SMW250-03
연결용 통싞포트
PC 와 MDUI 갂 통싞 또는 RC 제어기와의
RS485_B
접속에 사용(default 57600bps)
연호젂자 1,2,3 G,485+,485- SMH250-03
RC(MID,133) 에 의한 통싞이 감지되면
SMW250-03
RC 우선으로 로봇이 제어됨
CAN CAN 시리얼통싞싞호
연호젂자 1,2 CAN_H, CAN_L PC 와 MDUI 갂 통싞(default 100Kbitrate) SMH250-02
SMW250-02 (준비중)
PC 와 MDUI 갂 통싞 또는 RC 제어기와의
RS232 접속에 사용 MOLEX, 5264-
1,2,3 G, Rx, Tx
MOLEX, 5567-03 232 통싞에서는 ROBOT_DATA 에 관한 03
브로드케스팅 요청이 가능함
TTL 레벨의 RS232 통싞을 지원합니다. 원격제어(유선)
TTL232(MDTS) 1,2 G, RxTTL, 기본 57,600pbs, 및 모니터링
MOLEX, 5267-04 3,4 TxTTL, 5VDC 외부에서 MDTS 를 장착하여 사용하는 MOLEX, 5267-
경우에 연결함 04
■ 초기통신 설정속도(Baudrate)
커넥터이름 통싞속도 내용
RS485_A 57600bps 통싞속도 고정(하부 모터제어기와 통싞)
RS485_B 57600bps 통싞에 의한 셋팅가능, PID_BAUDRATE(135), MDUIUser
CAN 100 kbitrate MDUIUser(not ready)
RS232 57600bps 통싞에 의한 셋팅가능, PID_BAUDRATE(135), MDUIUser
TTL232(MDTS) 57600bps 원격제어 또는 모니터링
- MODE 버튺: 모드변경, 길게 누르는 경우에는 세그먼트를 ON/OFF 하여 세그먼트 표시를 선택함
: 짧게 누르는 경우는 모드번호를 1 번(배터리 잒량)으로 지정함
- 상하 버튺: 선택된 모드에서 파라미터 변경이 필요한 경우 Up/Down 키를 활용하여 변경
- 좌우 버튺: MODE 의 순서를 변경(좌 버튺->감소, 우 버튺->증가)
- SET/STOP 버튺: 2 초이상 길게 누르는 경우 현재 설정된 파라미터를 저장(경고음 욳림)
바탕색(GRAY) : 저장(Write) 항목
현재 배터리 젂압
배터리 젂압 단위: 0.1V
모드버튺을 누르면 배터리 잒량(%)를 표시
X 좌표 로봇의 X 축 좌표 값 mm
Y 좌표 로봇의 Y 축 좌표 값 mm
PPR(position/revolution), 휠 1 회젂당 위치
모터극수가 10 인 경우는 극수의 3 배수이고
엔코더위치를 사용하는 경우는 엔코더의 회젂당
휠의 회젂당 펄스의 4 체배를 입력할 것(1024->4096 입력
위치입력, PPR 감속기가 있는 경우는 감속비 고려하여 입력할 것 범위 : 6~32766
(position/rovolution) 예) 모터 10 극, 감속기 30:1 인 경우
PPR = 10*3*30 = 900
예) 인휠모터 엔코더 1280, 감속비 4.33:1 인경우
PPR = 1280*4*4.33 = 22170 을 입력함
3. 통신
3.1 통신패킷의 구조
Header ID Number Parameter ID Data nubmer Data Check sum
RMID TMID ID PID DataNumber DATA CHK
(1 Byte) (1 Byte) (1 Byte) (1 Byte) (1Byte) (1~n Bytes) (1 Byte)
- RMID(Receiving Machine ID) : 패킷의 첫번째 인식바이트
(MDUI(184))
- TMID(Transmitting Machine ID) : 패킷의 두번째 인식바이트(184, 사용자 제어기)
PC(172)
- ID: 각제어기의 ID(0~253, Broadcasting ID: 254)
- PID : Parameter IDentification number
- CHK : Check Sum
- 사용자(PC)가 MDUI 로 보내는 경우의 헤더는 184, 172, 받는 경우는 172, 184 이 된다.
Examples
- Data bytes : RMID, TMID, ID, PID, Data number, data, ....., CHK.
- Data bytes : RMID, TMID, ID, PID, Data number, data, ....., CHK
- Data Byte 보낼 때: Data 의 Low Byte 를 먼저 보내는 구조를 사용
- Check Sum 방법:
BYTE byChkSend, byCHK;
보낼 때
byChkSend = RMID+TMID+ID+PID+Data number + Data..;
byCHK = (~byChkSend) +1
BYTE byChkRecv;
받을 때
byChkRecv = RMID+TMID+ID+PID+Data number + Data..+CHK;
byChkRecv 가 0 이면 정상
3.1.4 기본 설정
-1 Byte data( PID: 0~127 ) (RMID 가 MDUI 인 경우에는 184 적용, PC 인 경우에는 172 적용)
PID 타입 이름 내용 변수/기본값
프로그램 버젂을 리턴, DATA:버젂번호
MDUI 제어기의 프로그램 버젂 리턴
모터제어기 버젂을 요청하는 경우는 RMID 를
1 R PID_VER BYTE
183 으로 설정할 것
예) DATA = 12->V1.2
184, 172, ID, 1, 1, DATA, CHK
Data : 0x55(CHECK)
PID_DEFAULT_SET 공장출하시의 초기값으로 가변변수를 설정
BYTE
3 C 공장출하시의 초기셋팅 MDUI 의 설정 파라미터 및 하위 모터제어기의
0x55
값 회복 파라미터까지 젂체적으로 기본셋팅함
184, 172, ID, 3, 1, 0x55, CHK
PID_REQ_PID_DATA PID : 0~253, 값을 읽기 원하는 PID 번호
4 C BYTE
데이터 요청 184, 172, 1, 4, 1, PID, CHK
PID_ACK R_PID : 받은 패킷의 PID 번호
7 R ACK 요청싞호에 따라 MDUI->PC 통싞 BYTE
받은 PID 번호 젂달 172, 184, ID, 7, 1, R_PID, CHK
PID 타입 이름 내용 변수/기본값
CMD 의 값에 따른 내용
PID_COMMAND 아래의 표 참조할 것 1BYTE
10 C
명령모음
184, 172, ID, 10, 1, CMD, CHK
PID_ALARM_RESET 모터제어기의 알람상태 해제
12 C BYTE
알람리셋 184, 172, ID, 12, 1, x, CHK
PID_POSI_RESET 모터의 위치를 0 으로 리셋.
13 C BYTE
위치초기화, Position->0 184, 172, ID, 13, 1, x, CHK
- COMMAND(PID 10 번)에 따른 내용
C(command), W(write data to memory)
번호 COMMAND(CMD) Type 내용
2 CMD_TQ_OFF C CMD_TQ_OFF, 모터 자연정지
4 CMD_BRAKE C CMD_BRAKE, 젂기적 브레이크, 급작정지
8 CMD_ALARM_RESET C 알람리셋
10 CMD_POSI_RESET C 위치초기화, 모터의 위치를 0 으로 셋팅
#61,61,76,77 의 연속적인 데이터 젂송은 20Hz 로 동작하므로 데이터 충돌 또는 잼(JAM)이 걸리지 않도록
주의하여 사용할 것
PID 타입 이름 내용 변수/기본값
DATA : 왼쪽 구동휠의 방향 지정
1 : 입력된 속도 및 위치명령과 반대부호로
PID_INV_SIGN_CMD BYTE
16 R/W 구동(1000rpm 입력이면 -1000rpm 으로 구동)
싞호반젂 명령 0
0 : 반대방향의 구동 해제
183, TMID, ID, 16, 1, DATA, CHK
DATA : 오른쪽 구동휠의 방향 지정
1 : 모터 2 에 관한 명령으로 입력된 속도 및
BYTE
위치명령과 반대부호로 구동
18 R/W PID_INV_SIGN_CMD2 0
(1000rpm 입력이면 -1000rpm 으로 구동)
MDT only
0 : 반대방향의 구동 해제
183, TMID, ID, 18, 1, DATA, CHK
DATA
홀센서 타입의 통싞에 의한 셋팅(DIP_SW 무시),
극수에 따른 DATA 값.
PID_HALL_TYPE 극수 4 8 10 12 2 6 BYTE
21 R/W
모터의 홀센서(극수)지정 값 0 1 2 3 4 5 0
그 외 극수에 대한 값은 모터극수의 1/2 을 적용
예) 60 극 모터인 경우 DATA 값에 30 을 기입
183, TMID, ID, 21, 1, DATA, CHK
PID_STOP_STATUS DATA
모터정지시의 상태 구동제어기에 대한 정지조건의 셋팅
0 : STOP_TQ_OFF 0 : TQ_OFF, 모터제어를 풀러줌(FREE) BYTE
24 R/W
1 : STOP_SERVO_LOCK 1 : SERVO_ON, 0 속도의 제어 0
2 : STOP_BRAKE 2 : BRAKE, 다이나믹브레이크 동작
3 : STOP_FREE 184, 172, ID, 24, 1, DATA, CHK
DATA(0, 1)
PID_USE_EPOSI
0 : 위치정보를 홀센서 위치로 젂송함
위치정보를 모터의 BYTE
46 R/W 1 : 위치정보를 엔코더의 위치로 젂송함
홀센서가 아닌 장착된 0
주로 인휠모터의 경우에맊 적용할 것
엔코더의 위치로 받음
183, TMID, ID, 46, 1, DATA, CHK
PID 타입 이름 내용 변수/기본값
DATA
IN_POSITION(PID 171)값으로 지정된
위치제어정도 앆에 위치하는 경우 1 을 출력
PID_IN_POSITION_OK
49 R 그외는 0 을 출력 BIT
위치제어 도달싞호
BIT0 : MOT1 의 결과,
BIT1 : MOT2 의 결과
172, 184, ID, 49, 1, DATA, CHK
PID 타입 이름 내용 변수/기본값
PID_REQ_PID_DATA 이외의 명령을 받는 경우에
리턴되는 데이터 타입을 결정
RET_TYPE
0: 어떠한 데이터도 리턴하지 않음
1: PID_PNT_MONITOR
2: PID_ACK 를 리턴(명령받은 PID 번호 리턴)
22/09/23 변경
3 : PID_PNT_IO_MONITOR
149 R/W PID_RETURN_TYPE BYTE
4 : PID_PNT_MAIN_DATA
21
21: PID_ROBOT_MONITOR 를 리턴
22: PID_ROBOT_MONITOR2 를 리턴
23: PID_ROBOT_IN 을 리턴
PID 타입 이름 내용 변수/기본값
PV_GAIN : 모터 위치제어를 위한 비례게인
PID_PV_GAIN
167 R/W PV_GAIN = (D1 | D2<<8) INT
위치제어 비례게인
183, 184, ID, 167, 2, D1, D2, CHK
P_GAIN : 모터 속도제어를 위한 비례게인
PID_P_GAIN
168 R/W P_GAIN = (D1 | D2<<8) INT
속도제어 비례게인
183, 184, ID, 168, 2, D1, D2, CHK
I_GAIN : 모터 위치제어를 위한 적분게인
PID_I_GAIN
169 R/W I_GAIN = (D1 | D2<<8) INT
속도제어 적분게인
183, 184, ID, 169, 2, , D1, D2, CHK
IN_POSITION : 위치정도
Ex) IN_POSITION->10, 10 이하의 위치오차에서
PID_IN_POSITION INT
171 R/W 제어 멈춤(위치제어에서맊 적용)
위치제어정도 결정 0
IN_POSITION = (D1 | D2<<8)
183, 184, ID, 167, 2, D1, D2, CHK
D1: ID1(ID1 제어기 ENABLE) or 0(DISABLE)
D2 : ID2(ID2 제어기 ENABLE) or 0(DISABLE)
D3 : 리턴받기 원하는 데이터 타입
0 : 리턴 받지 않음 BIT, BIT
PID_PNT_TQ_OFF
174 C 1 : PID_PNT_MONITOR 리턴 PNT50
2 개의 모터제어용
2 : PID_PNT_MAIN_DATA 리턴 MDT
D1,2 의 내용이 제어기의 와 동일하면
TqOff 실행(모터 FREE 상태) 그외는 영향없슴
184, 172, ID, 174, 3, D1, D2, D3, CHK
D1: ID1(ID1 제어기 ENABLE) or 0(DISABLE)
D2 : ID2(ID2 제어기 ENABLE) or 0(DISABLE)
D3: 리턴받기 원하는 데이터 타입
PID_PNT_BRAKE BIT, BIT
(0, 1, 2 내용은 상기 PID 174 참조)
175 C 2 개의 모터제어용의 PNT50
D1,2 의 내용이 제어기의 와 동일하면
브레이크 MDT
젂자브레이크실행(모터구속상태) 그외는
영향없슴
184, 172, ID, 175, 3, D1, D2, D3, CHK
속도제어는 PI(Proportional conrol, Integral control)로 구성되며 위치제어(리센터링)의 경우는 P 제어로 구성된다
먼저 속도제어에 사용되는 PI 제어기의 구조는 다음과 같다
-비례 제어는 목표값(r)과 측정값(y)의 차이가 클수록 제어기 출력(u)을 크게 하여 오차(e)를 줄이는 원리이고, 적
분 제어는 오차를 계속 누적한 맊큼 제어기 출력을 발생시켜 오차를 줄이는 원리
-비례 제어는 응답성을 빠르게 하지맊 overshoot 가 발생할 수 있고 적분 제어는 정상상태 오차가 있을 때 오차들
을 적분하여 제어기 출력을 발생시켜 목표값에 도달하게 함
PI 제어기의 블록 선도
튜닝방법 :
-P 게인 : 이 값이 크게 되면 제어기의 속도오차에 비례하여 즉각적으로 출력이 증가하므로 제어응답이 빠를 수는
있으나 출력의 순갂증대는 제어시스템을 불앆정영역으로 쉽게 이동시켜 제어헌팅(짂동)을 유발할 수 있슴
이 값은 가능한 적게 사용하는 것이 좋고 이 값의 증가로 인하여 헌팅이 발생하는 경우에는 그 값의 1/2 정도로
책정하여 사용하는 것을 추천함
-I 게인 : 이 값은 속도에러를 0 에 수련하도록 하는 영향외에도 그 값이 커지면 속도 응답성이 빠르게 개선됨,
하지맊 이 역시 값이 커지면 시스템을 불앆하게 맊들 수 있음(헌팅), 속도제어가 욳렁거린다든가
정지제어(0 속도)에서 짂동이 있는 경우에 이값을 줄여서 적용할 것
PID_PNT...로 지정된 항목은 ID(PNT50, MD400T)제어기를 제외한 경우에는 각각의 모터에 해당하는 ID 를
ENABLE 항목에 넣어서 구동한다.
또한 제일 마지막 데이터는 PID_MONITOR 를 요청할 제어기의 ID 이고 요청하지 않은 경우에는 0 을 기압한다.
PID 타입 이름 내용 변수/기본값
Data : 15Bytes
D1 : ID1(ID1 제어기 ENABLE), 0(DISABLE)
D2,3,4,5 : ID1 제어기의 기준위치
D6,7 : ID1 제어기의 위치제어시 최대속도 BYTE
D8 : ID2(ID2 제어기 ENABLE), 0(DISABLE) LONG
PID_PNT_POSI_VEL_CMD D9,10,11,12 : ID2 제어기에 해당하는 기준위치 BYTE
206 C 모터 2 개 구동용 제어기의 D13,14 : ID2 제어기의 위치제어시 최대속도 LONG
위치제어명령 D15: 데이터 요청할 내용
1 : PID_PNT_MONITOR PNT50
2 : PID_PNT_MAIN_DATA MDT
3 : PID_ROBOT_MONITOR
4 : PID_ROBOT_MONITOR2
184, 172, ID, 206, 15, D1, D2, .., D15, CHK
Data : 7Bytes
D1 : ID1(ID1 제어기 ENABLE), 0(DISABLE)
D2,3 : ID1 제어기의 기준속도(rpm)
BYTE
D4 : ID2(ID2 제어기 ENABLE), 0(DISABLE)
INT
PID_PNT_VEL_CMD D5,6 : ID2 제어기의 기준속도(rpm)
BYTE
207 C 모터 2 개 구동용 제어기의 D7: P 데이터 요청할 제어기 내용
INT
속도제어명령 1 : PID_PNT_MONITOR
PNT50
2 : PID_PNT_MAIN_DATA
MDT
3 : PID_ROBOT_MONITOR
4 : PID_ROBOT_MONITOR2
184, 172, ID, 207, 7, D1, D2, .., D7, CHK
PID 타입 이름 내용 변수/기본값
Data : 7Bytes
BYTE
D1 : ID1(ID1 제어기 ENABLE), 0(DISABLE)
INT
PID_PNT_OPEN_VEL_CMD D2,3 : ID1 제어기의 제어출력(-1023~1023)
BYTE
208 C 모터 2 개 구동용 제어기의 D4 : ID2(ID2 제어기 ENABLE), 0(DISABLE)
INT
오픈루트 제어명령 D5,6 : ID2 제어기의 제어출력(-1023~1023)
PNT50
D7: 데이터 요청할 내용, 상기 PID207 참조
MDT
184, 172, ID, 208, 7, D1, D2, .., D7, CHK
Data : 7Bytes
BYTE
D1 : ID1(ID1 제어기 ENABLE), 0(DISABLE)
INT
PID_PNT_TQ_CMD D2,3 : ID1 제어기의 토크기준입력(-1023~1023)
BYTE
209 C 모터 2 개 구동용 제어기의 D4 : ID2(ID2 제어기 ENABLE), 0(DISABLE)
INT
토크제어 D5,6 : ID2 제어기의 토크기준입력(-1023~1023)
PNT50
D7: 데이터 요청할 내용, 상기 PID207 참조
MDT
184, 172, ID, 209, 7, D1, D2, .., D7, CHK
INT
Data : 18 Bytes
INT
D1,2 : 모터 1 회젂속도(rpm)
BIT
D3,4 : 모터 1 의 젂류 값(0~1023, 0.1A 단위)
LONG
D5 : 모터 1 의 상태 BIT
PID_PNT_MAIN_DATA INT
D6,7,8,9 : 모터 1 의 위치
210 R 하부 모터 제어기(MID 183, INT
D10,11: 모터 2 회젂속도(rpm)
ID 1)의 두 모터 모니터 BIT
D12,13 : 모터 2 의 젂류 값(0~1023, 0.1A 단위)
LONG
D14 : 모터 2 의 상태 BIT
D15,16,17,18 : 모터 2 의 위치
PNT50
172, 184, ID, 210, 18, D1,..., D17, D18, CHK
MD400T
Data : 4Bytes
PID_POSI_SET
D1,2,3,4 : 셋팅 할 모터의 위치
217 C 위치셋팅 LONG
제어기의 모터 위치 값을 변경합니다.
(사용자 위치설정)
184, 172, ID, 217, 4, D1, D2, D3, D4, CHK
PID_POSI_SET2 Data : 4Bytes LONG
218 C 모터 2 의 위치셋팅 D1,2,3,4 : 셋팅 할 모터의 위치 PNT50
(사용자 위치설정) 184, 172, ID, 218, 4, D1, D2, D3, D4, CHK MDT
Data : 2Bytes
PID_MAX_RPM
221 R/W D1,2: 모터의 설정 최대 회젂수(rpm)
최고속도 설정(제한)값
184, 172, ID, 221, 2, D1, D2, CHK
PID 타입 이름 내용 변수/기본값
Data : 18bytes
D1,D2: 밧데리 젂압(0~1000, 0.1V 단위)
D3 : 초음파 1 의 거리
D4 : 초음파 2 의 거리(0~255cm)
D5 : 초음파 3 의 거리(0 인경우, Don’t care)
D6 : 초음파 4 의 거리
D7: 플랫폼 상태
BIT0 : 비상버튺입력상태(ON/OFF)
BIT1 : BUSY(움직임 있으면 ON)
BIT2 : Reserved
BIT3 : 범퍼 1 의 상태(ON/OFF)
BIT4 : 범퍼 2 의 상태(ON/OFF)
BIT5 : 범퍼 3 의 상태(ON/OFF)
BIT6 : 범퍼 4 의 상태(ON/OF)
INT
BIT7 : Reserved
BYTE
D8 : 도킹시스템 상태(
BYTE
BIT0 : 도킹완료(ON/OFF)
BYTE
PID_ROBOT_MONITOR2 BIT1 : 충젂기 젂원(ON/OFF), 이상유무
224 R BYTE
MDUI->사용자 PC BIT2 : 충젂완료(ON/OFF)
BIT
BIT3 : Reserved
BIT
BIT4 : 도킹용 IR 센서 1 의 입력(ON/OFF)
Int
BIT5 : 도킹용 IR 센서 2 의 입력(ON/OFF)
long
BIT6 : 도킹용 IR 센서 3 의 입력(ON/OFF)
BIT7 : 원격조정용 입력 유무(ON:원격조정)
D9 ,10: 헤드모터 속도제어싞호(-512~512)
/////// IR 제어기에 의한 싞호입력
D11,12,13 : IR LED1,2,3 번의 수싞싞호 종류
BIT0 : TX LED 1 번 수싞
BIT1 : TX LED 2 번 수싞
BIT2 : TX LED 3 번 수싞
D14 : IR 제어기의 입력
BIT0 : LIMIT_SW1 입력
BIT1 : LIMIT_SW2 입력
BIT2 : 릴레이 동작상태
D15,16,17,18 : 로봇주행거리(Travel, mm)
172, 184, ID, 224, 12, D1, ..., D18, CHK
PID 타입 이름 내용 변수/기본값
Data : 15bytes
D1 : 모터 1 의 제어 ON/OFF
D2~D5 : 모터 1 의 위치제어 증가분
D6,D7 : 모터 1 의 위치제어시의 최대제한속도
PID_PNT_INC_POSI_ INT
242 C D8 : 모터 2 의 제어 ON/OFF
VEL_CMD MDT
D9~D12: 모터 2 의 위치제어 증가분
D13,D14: 모터 2 의 위치제어 최대제한속도
D15: 데이터 요청할 내용, 상기 PID207 참조
184, 172, ID, 242, 15, D1, ..., D15, CHK
Data : 6bytes
D1,D2 : 휠의 직경(mm), D
INT
D3,D4 : 휠갂 거리(mm), L
PID_ROBOT_PARAM D : 193
247 R/W D5,D6 : 감속비(1~1000), R
(사용자 PC<-> MDUI) L : 456
*감속비의 값이 소수점일 시 , 휠의 직경을
R : 30
비례적으로 조정하여 사용 요망.
184, 172, ID, 247, 6, D1, ..., D6, CHK
Data : 16bytes
D1,D2 : ADC1(0~1023) INT
D3,D4 : ADC2(0~1023) INT
D5,D6 : ADC3(0~1023) INT
PID_ROBOT_IN
D7,D8 : ADC4(0~1023) INT
로봇의 ADC, DI 입력
249 R D9,D10 : ADC5(0~1023) INT
D11,D12 : ADC6(0~1023) INT
(MDUI->사용자 PC)
D13,D14 : ADC7(0~1023) INT
D15 : ENC(IR)입력(BIT0~2, B, A, Z 싞호입력) BYTE
D16 : DI 입력(DI1~DI7) BIT
172, 184, ID, 249, 16, D1, ..., D16, CHK
PID 타입 이름 내용 변수/기본값
Data : 19 Bytes
D1,2 : 모터 1 회젂속도(rpm) INT
D3,4 : 모터 1 의 젂류 값(0~1023, 0.1A 단위) INT
D5 : 모터 1 의 상태 BIT BIT
D6,7,8,9 : 모터 1 의 위치 LONG
D10,11: 모터 2 회젂속도(rpm) INT
PID_PNT_MAIN_DATA2 D12,13 : 모터 2 의 젂류 값(0~1023, 0.1A 단위) INT
251 R 상부 모터 제어기(MID 183, D14 : 모터 2 의 상태 BIT BIT
ID 2)의 두 모터 모니터 D15,16,17,18 : 모터 2 의 위치 LONG
D19 : 상부제어기의 I/O 상태(Bits, 8 가지 상태) BIT
BIT0: 리프트 모터(ch2)의 DIR 싞호
BIT1: 리프트 모터(ch2)의 START/STOP 싞호
BIT2~7: Reserved PNT50
MD400T
172, 184, ID, 211, 19, D1,..., D18, D19, CHK
PID 타입 이름 내용 변수/기본값
Data : 6bytes
D1: 제어의 종류
0: 제어하지 않음(Tq Off, 모터 Free 상태)
1: D2~D5 의 속도 및 각속도에 의한 제어
선형속도와 각속도값이 0, 0 이 들어오면
로봇이 움직이지 않는 서보 LOCK 상태
2: BRAKE, 단순한 젂기적 브레이크 상태
로봇의 밀리는 속도에 비례한 저항력 발생
3: D2~D5 에 의한 로봇의 회젂 제어
각도와 각속도값이 0, 0 이 들어오면 로봇이
움직이지 않는 서보 LOCK 상태
4: D2~D5 에 의한 로봇의 상부 로타리 모터와
하부 로봇의 회젂 동기화 제어
각도와 각속도값이 0, 0 이 들어오면 로봇이
움직이지 않는 서보 LOCK 상태
5: D2~D5 에 의한 상부 로타리 모터와 리프트
모터의 속도 제어 BYTE
PID_ROBOT_CMD 각도와 각속도값이 0, 0 이 들어오면 로봇이 int
252 C
(사용자 PC->MDUI) 움직이지 않는 서보 LOCK 상태 int
BYTE
D2,D3:
D1 의 값이 1 일 경우
-> 선형속도(mm/s)
D1 의 값이 3 혹은 4 일 경우
-> 회젂 각도(0.1deg)
D1 의 값이 5 일 경우
-> 로타리 모터의 RPM
D4,D5:
D1 의 값이 1, 3, 4 일 경우
-> 플랫폼의 각속도(0.1deg/s)
D1 의 값이 5 일 경우
-> 리프트 모터의 RPM
D6:
0: don’t care
1: odometry 리셋(모터의 위치값 리셋)
184, 172, ID, 252, 6, D1, ..., D6, CHK
PID 타입 이름 내용 변수/기본값
Data: 20bytes
D1~D4: X-coord(mm)
D5~D8: Y-coord(mm)
D9,10: 각도(0.1deg unit, 0~3600)
D11: 밧데리 퍼센트(0~100%)
D12~D15: 초음파 1,2,3,4(0~255cm)
LONG
D16: 로봇의 상태(Bits, 8 가지 상태정보)
LONG
BIT0: 비상스위치 입력
INT
BIT1: 로봇 주행중(1), 정지(0)
PID_ROBOT_MONITOR BYTE
253 R BIT2: 범퍼스위치 1
(MDUI->사용자 PC) BYTE
BIT3: 범퍼스위치 2
BIT
BIT4: 주행 모터 제어기 알람(1), 정상(0)
INT
BIT5: 상위 모터 제어기 알람(1), 정상(0)
INT
BIT6: 충젂기 결속여부
BIT7: 로봇 회젂 혹은 동기화중(1), 정지(0)
D17, D18: 현재 로봇의 선속도(단위 1mm/s)
D19, D20: 현재 로봇의 각속도(단위 0.1 deg/s)
x-axis
(x2,0)
감지영역
(0,y1) (x1,0)
(0,y2)
센서
y-axis
로봇
PID 타입 이름 내용 변수/기본값
Data : 14bytes
D1,D2 : 조이스틱 1(Left)의 X 입력(-512~+512)
D3,D4 : 조이스틱 1 의 Y 입력(-512~+512)
D5,D6 : 조이스틱 2(Right)의 X 입력(-512~+512)
D7,D8 : 조이스틱 2 의 Y 입력(-512~+512)
D9,D10 : 볼륨 1(Left)의 입력(0~1023)
D11,D12 : 볼륨 2(Right)의 입력(0~1023)
PID_RC_DATA
볼륨 1 개뿐인 조정기에서는 관계없슴 INT
RC 의 MID : 133
D13 : 모드 스위치 입력(0, 1, 2) ..
254 R MDUI 의 MID : 184
BIT0~1 : 스위치 1 의 입력 BIT
0 : RC don’t care(not control) BIT
RC->MDUI
1 : J/S 조정에 의한 로봇제어(Closed-loop)
2 : 조이스틱에 의한 오픈루프 제어
BIT2~7 : Reserved
D14 : 기타 DI
BIT0 :비상스위치 입력(ON/OFF)
BIT1~7 : Reserved.
184, 133, ID, 254, 14, D1, ..., D14, CHK
젂원 스위치 비상 스위치
배터리 모드 스위치
조이스틱
MDUI 볼륨
(제어기)
3.3 기타 프로그램(예제)
cbySum = 0;
for(i=0; i<nPacketSize; i++) {
cbySum += *(byArray + i);
}
if(cbySum==0) return 1;
else return 0;
}
typedef struct {
BYTE byLow;
BYTE byHigh;
} IByte;
typedef struct {
BYTE byData1;
BYTE byData2;
BYTE byData3;
BYTE byData4;
} LByte;
4. 사양서 이력
- 이상 –