이전 버전(1.33.4)의 문서를 보고 있습니다. 이 버전은 계속 지원됩니다.
최신 버전 정보는 1.33.5에서 확인하세요.

1.2.1 API 계층 아키텍처

DRFL(Doosan Robotics Framework Library)의 API 계층은 계층 구조를 이루는 헤더 파일 4개, DRFC, DRFS, DRFL, DRFLEx로 구성됩니다.

이 헤더들은 로봇 제어와, 사용자 애플리케이션과 컨트롤러 사이의 통신에 필요한 모든 상수, 데이터 구조체, 핵심 API, 확장 기능을 정의합니다.

참고

v1.33.2부터 DRFL.h는 DRFLEx.h에 통합되었습니다. DRFL.h는 DRFLEx.h를 포함하기만 하는 얇은 래퍼로 남아 있습니다. 새로 개발할 때는 DRFLEx.h만 사용하세요.

DRFC.h

상수 계층

API 전반에서 사용하는 전역 상수, 열거형, 매크로를 모두 정의합니다. 모션 유형, 로봇 상태, I/O 모드, 안전 수준 등이 여기에 포함됩니다. 모든 상위 계층이 참조하는 기본 정의 파일입니다.

DRFS.h

구조체 계층

API와 로봇 컨트롤러가 주고받는 데이터 구조체를 모두 선언합니다. 모니터링 데이터(ROBOT_MONITORING_DATA_EX), CONFIG_TOOL과 CONFIG_SAFETY_ZONE 같은 설정 구조체, 위치와 조인트 표현이 여기에 포함됩니다. 이 파일 덕분에 모든 로봇 모델에서 데이터 형식이 일관되고 상호 운용할 수 있습니다.

DRFL.h

핵심 API 계층

사용자에게 공개하는 주요 인터페이스 함수를 제공합니다. 모션 명령(movej(), movel()), I/O 작업(set_digital_output()), 시스템 제어(start_robot(), manage_access_control())가 여기에 포함됩니다. DRFC와 DRFS에 정의된 상수와 구조체를 참조해 요청을 처리하고 로봇 컨트롤러와 통신합니다.

DRFLEx.h

확장 계층

DRFL 위에 구축한 확장 API와 고수준 API를 제공합니다. 모션 블렌딩, 비동기 콜백, 시퀀스 자동화 같은 고급 기능을 지원하므로, 개발자는 복잡하면서도 사용하기 쉬운 로봇 애플리케이션을 만들 수 있습니다.

CDRFLEx 객체

CDRFLEx 객체를 복사하지 마세요. 참조나 포인터로 전달하고, 로봇 연결 하나에 객체 하나를 사용하세요.

CDRFLEx 객체는 동시 호출을 지원하지 않습니다. 콜백에서 하는 호출을 포함해, 한 객체에 대한 호출은 한 번에 하나씩 하세요.

get_current_posx, get_desired_posx, fkin, ikin(인수 4개), ikin_norm, trans, coord_transform, calc_coord, get_user_home, get_user_cart_coord, flange_serial_read는 CDRFLEx 객체 안의 저장 공간을 가리키는 포인터를 반환합니다. 이 저장 공간은 다른 DRFL 호출과 재연결할 때마다 다시 사용되므로, 다른 DRFL 함수를 호출하기 전에 구조체를 복사해 두세요. 인수가 3개인 ikin은 예외입니다. 이 함수는 프로세스 안의 모든 CDRFLEx 객체가 공유하는 ROBOT_POSE 하나를 가리키는 포인터를 반환하며, 어느 객체에서든 인수가 3개인 ikin을 다시 호출하면 이 값을 덮어씁니다. 요청을 보내지 못하면 NULL을 반환하는 get_user_home을 제외하면 포인터는 NULL이 아닙니다. 실패 여부를 NULL 검사로 판단하지 마세요.