커스텀 토크 컨트롤러
기본 제공 컨트롤러(ADRC·PID) 대신 자기 제어 법칙을 쓰시려면 플러그인으로 만들어 올리시면 됩니다. 전체 흐름은 이렇습니다.
1. 스캐폴드 만들기
plem init my_controller # 빈 골격
plem init my_controller --example pd # PD 예제로 시작
plem init my_controller --example pid # PID 예제로 시작
이름을 생략하면 물어봅니다. --example 을 생략하면 터미널에서 직접 실행했을 때는 세 가지 중 고르는 메뉴가 뜨고, 그렇지 않으면 none 이 됩니다. 생성된 워크스페이스에 작성 가이드(CONTROLLER_PLUGIN_GUIDE.md)와 README.md 가 함께 들어옵니다. PLEM 환경이 잡혀 있지 않으면 그 자리에서 멈추고 무엇을 하셔야 하는지 알려 드립니다.
2. 제어 법칙 작성하기
생성된 소스의 계산 함수에 알고리즘을 넣으세요. 이 코드는 설정된 제어 주기(200–1000 µs, 즉 1–5 kHz)의 실시간 루프 안에서 관절 토크를 직접 만들어 냅니다. 그 루프 안에서는 동적 할당·파일 입출력·락·대기·예외를 쓰지 마세요. 상세 규약은 스캐폴드에 함께 생성된 가이드에 있습니다.
스캐폴드가 만들어 주는 PD·PID 예제는 실제 작업용으로 조정된 컨트롤러가 아닙니다. 무부하·저속에서 시작해 토크 제한을 걸고 단계적으로 확인하신 뒤에 정상 운전에 쓰세요.
3. 빌드하기
스캐폴드가 끝나면 생성된 워크스페이스의 README.md 위치를 알려 드립니다. 빌드 명령은 그 문서에 있습니다.
4. 워크스페이스 등록하기
빌드한 디렉터리에서 plem 을 실행하시면 이 워크스페이스를 쓸지 물어봅니다. 승인하시면 이후 기동에 오버레이로 얹힙니다. 등록 상태는 plem workspace 로 확인하고 plem workspace clear 로 해제합니다.
5. 로봇 프로필에서 고르기
등록만으로는 활성화되지 않습니다. plem 의 설정(,)에서 로봇 프로필을 열고 Torque Controller 를 Plugin 으로 바꾼 뒤, 목록에서 빌드된 .so 를 고르세요. 목록에는 등록한 워크스페이스에서 찾은 플러그인이 나옵니다(등록이 없으면 PLEM 소스 체크아웃의 빌드 결과를 대신 찾습니다). 찾은 것이 없으면 목록이 비니 .so 의 절대경로를 직접 입력하세요. 프로필의 다른 항목은 건드리지 마세요.
6. 재기동하기
프로필은 다음 기동부터 반영됩니다. 스택을 정지했다가 다시 띄우세요. TUI 의 키 안내 줄 오른쪽 Controller Plugin <파일명> 으로 어느 컨트롤러가 떴는지 확인할 수 있습니다.
7. Lab 에서 튜닝·관측하기
Tuning 탭에 직접 선언하신 파라미터가, 신호 트리에 직접 선언하신 신호가 나타납니다. 튜닝 상태 조건은 그대로 적용되며, 플러그인 컨트롤러는 빌드에 따른 잠금이 없습니다.