Table of Contents

2D Simulatsioon

Simulatsioonide kasutamine on hea viis ROSi õppimiseks ilma, et peaks füüsilist robotit omama. Selles peatükis kasutame lihtsalt 2D simulatsiooni nimega Turtlesim.

Esmalt käivitame roscore:

 $ roscore

Käivitame sõlme nimega turtlesim_node teegist turtlesim:

 $ rosrun turtlesim turtlesim_node

Kui sõlm käivitada avaneb simulatsioon graafilise kasutajaliisedega.

Teek sisaldab ka sõlme, mille abil saab klaviatuuriga robotile liikumise sõnumeid saata.

Käivitame uues terminali aknas roboti kaugjuhtimise sõlme:

 $ rosrun turtlesim turtle_teleop_key

Kui nüüd selles terminalis nooleklahve vajutada, saame robotit simulatsioonis liigutada:

Rqt_graph

Vaatame kuidas see töötab, kasutades tööriista rqt_graph, mis visualiseerib sõlmede ja teemade suhteid:

 $ rqt_graph

Käsu käivitades avaneb graafiline kasutajaliides. Näeme, et sõlm /teleop_turtle loeb noolteklahvide vajutusi ja teeb nendest roboti kiiruse geometry_msgs/Twist. See saadetakse teemasse /turtle1/command_velocity, mida kuulab roboti simulatsioon. Kui samad sõlmed jooksutada erinevate arvutite peal, siis saame robotit teisest arvutist juhtida. Sarnast konfiguratsiooni kasutatakse tihti päris robotite kaugjuhtimiseks.

Juhtimine käsurealt

Roboti juhtimiseks kasutatakse sõnumi tüüpi geometry_msgs/Twist, mis koosneb lineaar- ja nurkkiirusest. Proovime ise käsurea pealt kiiruse avaldada. TAB klahvi saab kasutada käsu automaatseks lõpetamiseks. Kasutame tööriistal rostopic pub argumenti -r 1, mis saadab ette antud sõnumit 1 Hz sagedusega:

 $ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]'

Näeme, et robot liigub simulatsioonis ringjoonelisest.

Rqt_plot

Teemas olevate andmete visualiseerimiseks ajas kasutatakse tööriista rqt_plot. Selle tööriista abil on võimalik kuvada sõnumite väärtusi graafikuna. Seda tööriista saab kasutada näiteks andurite väärtuste visualiseerimiseks. Turtlesim simulaator avaldab roboti x ja y kordinaadid teemasse /turtle1/pose/x ja /turtle1/pose/y. Proovime neid teemasid graafikul kuvada.

Käivita rqt_plot:

 $ rqt_plot

Kui lisada graafikule teemad /turtle1/pose/x ja /turtle1/pose/y näeme reaalajas roboti asukohta x ja y teljel: