Controller C++
Berbeda dengan Python, controller C dan C++ harus dikompilasi sebelum dijalankan. Setiap contoh di dokumentasi ini punya tab C/C++ dengan program yang sama seperti versi Python-nya, dan semuanya sudah dikompilasi dan dijalankan di robot pemula.
Program pertama
Section titled “Program pertama”#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;}Mengompilasi
Section titled “Mengompilasi”Cara termudah di sistem apa pun adalah editor Webots: gunakan Wizards > New Robot Controller untuk membuat controller C++ beserta Makefile-nya, lalu tekan tombol Build. Lihat panduan Webots.
Kamu juga bisa mengompilasi dari terminal. Perintah ini sudah diuji di 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_controllerDi Linux, opsi yang sama bisa dipakai dengan WEBOTS=/usr/local/webots. Jika kamu menggunakan OpenCV, tambahkan juga opsinya. Dengan OpenCV 4 terinstal, misalnya dengan Homebrew di macOS, $(pkg-config --cflags --libs opencv4) memberikan opsi tersebut. Contoh-contohnya sudah diuji dengan OpenCV 4.13.
Menjalankan
Section titled “Menjalankan”- Di Windows, muat berkas
.exedengan tombol LOAD sebelah kiri di jendela kontrol. - Di macOS dan Linux, program hasil kompilasi tidak punya ekstensi berkas, dan tombol LOAD tidak bisa memilihnya. Sebagai gantinya, jalankan dengan Remote Controller, seperti yang akan kamu lakukan di kompetisi.
