C++ 컨트롤러
Python과 달리 C와 C++ 컨트롤러는 실행하기 전에 컴파일해야 해요. 이 문서의 모든 예제에는 Python과 같은 프로그램이 담긴 C/C++ 탭이 있고, 모두 스타터 로봇에서 컴파일하고 실행해 봤어요.
첫 번째 프로그램
섹션 제목: “첫 번째 프로그램”#include <cmath>#include <webots/Robot.hpp>#include <webots/Motor.hpp>
using namespace webots;
int main() { Robot *robot = new Robot(); int timeStep = (int)robot->getBasicTimeStep();
Motor *left = robot->getMotor("left wheel motor"); Motor *right = robot->getMotor("right wheel motor"); left->setPosition(INFINITY); right->setPosition(INFINITY); left->setVelocity(3.0); right->setVelocity(3.0);
while (robot->step(timeStep) != -1) { }
delete robot; return 0;}컴파일하기
섹션 제목: “컴파일하기”어떤 시스템에서든 가장 쉬운 방법은 Webots 에디터예요. Wizards > New Robot Controller로 Makefile이 포함된 C++ 컨트롤러를 만들고, Build 버튼을 누르세요. Webots 가이드를 참고하세요.
터미널에서 컴파일할 수도 있어요. 이 명령은 macOS에서 테스트했어요.
WEBOTS=/Applications/Webots.app/Contentsclang++ -std=c++17 -I$WEBOTS/include/controller/cpp -L$WEBOTS/lib/controller \ -lController -lCppController -Wl,-rpath,$WEBOTS/lib/controller \ my_controller.cpp -o my_controllerLinux에서는 WEBOTS=/usr/local/webots로 같은 옵션을 사용할 수 있어요. OpenCV를 사용한다면 OpenCV의 옵션도 추가하세요. 예를 들어 macOS에서 Homebrew로 OpenCV 4를 설치했다면 $(pkg-config --cflags --libs opencv4)로 옵션을 얻을 수 있어요. 예제는 OpenCV 4.13으로 테스트했어요.
실행하기
섹션 제목: “실행하기”- Windows에서는 제어 창의 왼쪽 LOAD 버튼으로
.exe파일을 불러오세요. - macOS와 Linux에서는 컴파일된 프로그램에 파일 확장자가 없어서 LOAD 버튼으로 선택할 수 없어요. 대신 대회에서처럼 Remote Controller로 실행하세요.
