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

1.3.3 Windows 환경(64비트)

A. 필요한 의존성 설치하기

  • Visual Studio 2019 이상(C++를 사용한 데스크톱 개발)

  • Git, CMake

  • Docker Desktop, Dart-Services, Dart Studio 또는 Dart-Platform(에뮬레이터용)

B. DRFL 저장소 복제하기

API-DRFL 저장소 보기

git clone https://github.com/doosan-robotics/API-DRFL.git
cd API-DRFL/example/Windows/windows_example

C. 제공된 Visual Studio 솔루션 열기

Windows 예제 솔루션 보기

D. 개발 환경에 맞게 솔루션 코드 수정하기

프로젝트를 빌드하기 전에 에뮬레이터와 실제 로봇 컨트롤러 중 사용할 대상에 맞게 반드시 코드를 수정해야 합니다.

  • 에뮬레이터 연결

DART Platform이나 DART Studio 에뮬레이터를 사용한다면 기본 IP 주소는 127.0.0.1(로컬호스트)입니다.

open_connection에 전달한 주소가 정확히 “127.0.0.1”이면 task_compliance_ctrl, set_stiffnessx, release_compliance_ctrl, set_desired_force, release_force는 컨트롤러에 명령을 보내지 않고 true를 반환합니다.

const std::string IP_ADDRESS = "127.0.0.1";
  • 실제 로봇 연결

다음 단계를 따르세요.

  1. 로봇 컨트롤러 IP 주소 확인하기

티치펜던트(TP)에서 확인합니다.
Settings → Network → Ethernet → IP address

192.168.137.100
  1. PC를 같은 네트워크 서브넷에 연결하기

PC의 고정 IP를 같은 대역으로 설정하되, 컨트롤러 주소인 192.168.137.100과 다른 주소를 사용하세요.
Control Panel → Network → Ethernet → Properties → IPv4

IP Address: 192.168.137.50
Subnet Mask: 255.255.255.0
  1. 코드의 연결 IP 수정하기(필요한 경우)

소스 파일에서 다음과 같이 수정합니다.

const std::string IP_ADDRESS = "192.168.137.100";

참고

  • 유선 LAN 연결을 권장합니다. 컨트롤러/에뮬레이터 포트 12345/TCP에 접근할 수 있는지 확인하세요.

  • 다른 클라이언트(예: DART Studio나 TP)가 제어권을 가지고 있으면 manage_access_control(MANAGE_ACCESS_CONTROL_FORCE_REQUEST)로 제어권을 요청하세요.

  • 한 번에 API 클라이언트 하나만 로봇을 제어할 수 있습니다.

팁

코드를 실행하지 않고 TCP 연결을 빠르게 확인하려면 Windows PowerShell을 사용할 수 있습니다.

ping 192.168.137.100

“Connected” 메시지가 표시되면 네트워크에 연결할 수 있는 상태입니다.

E. Docker 설정하기

예제 프로젝트(windows_example.sln)를 실행하거나 빌드하기 전에 반드시 Docker로 Dart-Services 시뮬레이터 환경을 구성해야 합니다.

  • Dart-Services 컨테이너 실행하기

Dart-Services나 Dart-Platform을 설치한 다음 Docker 서비스를 시작하세요.

windows_example

Dart-Services


windows_example

Docker Desktop


컨테이너 목록에서 dart-service 이미지가 제대로 실행 중인지 확인하세요.

docker ps

컨테이너가 12345/TCP 포트를 노출하고 있어야 합니다. 이 포트는 SDK와 시뮬레이터 사이의 API 통신 채널로 사용합니다.

출력 예:

CONTAINER ID   IMAGE             COMMAND             PORTS                     NAMES
3a1b2c3d4e5f   dart-service:3.4  "/bin/bash"         0.0.0.0:12345->12345/tcp  dart-service
  • 컨테이너 네트워크 확인하기

컨테이너 네트워크가 활성 상태이고 접근할 수 있는지 확인하세요.

docker inspect dart-service | grep "IPAddress"

필요하면 시뮬레이터가 127.0.0.1:12345(로컬호스트)에 바인딩되어 있는지 확인하세요.

  • x64 / Debug를 선택해 빌드하기
    x64_debug
  • Dart-Platform 실행하기

Docker 컨테이너를 실행한 다음 Dart-Platform을 여세요.

컨트롤러에 연결할 PC의 IP 주소를 선택한 다음 Connect 버튼을 클릭하세요.

제어권(Control Authority) 이양을 묻는 팝업이 나타납니다. 이양 요청을 수락하기만 하면 실행 중에 제어권이 자동으로 부여됩니다.

제어권이 부여되면 API 연결이 정상적으로 수립되고 로봇 모션이 정상적으로 시작됩니다.

팁

Dart-Platform에 “Recall Control” 팝업이 나타나면 시뮬레이터가 현재 제어 토큰을 가지고 있다는 뜻입니다. 이는 정상입니다. 프롬프트를 수락해 API 프로그램에 제어권을 넘겨도 안전합니다. 프로그램이 시작되면 시뮬레이션에서 모션 명령이 실행되는 것을 볼 수 있습니다.

  • Dart-Studio 실행하기

Dart-Studio로도 같은 테스트를 할 수 있습니다. 시뮬레이터가 같은 IP 주소(127.0.0.1)로 연결되어 있고 Docker에서 Dart-Services 컨테이너가 실행 중인지 확인하세요.

연결을 확인한 다음 Visual Studio에서 프로젝트를 다시 빌드하세요. Dart-Platform과 마찬가지로 시뮬레이션이 정상적으로 실행됩니다.

참고

  • Dart-Studio나 Dart-Platform을 열기 전에 항상 Docker가 실행 중인지 확인하세요.

  • 통신을 위해 12345/TCP 포트가 계속 열려 있어야 합니다.

  • 제어권 팝업이 나타나면 수락해 API 프로그램에 제어권을 부여하세요.