Both sides previous revisionPrevious revisionNext revision | Previous revision |
et:ros:turtlesim [2019/05/17 16:32] – raivo.sell | et:ros:turtlesim [2020/07/20 09:00] (current) – external edit 127.0.0.1 |
---|
====== Turtlesim ====== | ====== 2D Simulatsioon ====== |
| |
Turtlesim on on kahe dimensiooniline liikuva roboti 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: | Esmalt käivitame //roscore//: |
| |
$ roscore | $ roscore |
Käivitame sõlme nimega turtlesim_node teegist turtlesim: | |
| Käivitame sõlme nimega //turtlesim//_node teegist //turtlesim//: |
| |
$ rosrun turtlesim turtlesim_node | $ rosrun turtlesim turtlesim_node |
| |
Kui sõlm käivitada avaneb simulatsioon graafilise kasutajaliisedega. | Kui sõlm käivitada avaneb simulatsioon graafilise kasutajaliisedega. |
| |
Käivitame roboti kaugjuhtimise sõlme: | 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 | $ rosrun turtlesim turtle_teleop_key |
Kui nüüd terminals nooleklahve vajutada, saame robotit simulatsioonis liigutada: | |
| |
{{:et:ros:turtle_key-290x300.png|}} | Kui nüüd selles terminalis nooleklahve vajutada, saame robotit simulatsioonis liigutada: |
| |
| {{:et:ros:turtle_key-290x300.png?400|}} |
| |
Vaatame kuidas see töötab kasutades tööriista rqt_graph, mis visualiseerib sõlmede ja teemade suhteid: | ====== Rqt_graph ====== |
| |
| Vaatame kuidas see töötab, kasutades tööriista //rqt_graph//, mis visualiseerib sõlmede ja teemade suhteid: |
| |
$ rqt_graph | $ rqt_graph |
{{:et:ros:rqt_graph_turtle.png|}} | {{:et:ros:rqt_graph_turtle.png?800|}} |
| |
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. Sellist konfiguratsiooni kasutatakse ka tihti päris robotites, kus ROS töötab robotis ja kaugjuhtimiseks mõeldud arvuti peal. | 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. |
| |
Roboti juhtimiseks kasutatakse sõnumi tüüpi geometry_msgs/Twist, mis koosneb lineaarsest ja nurgelisest kiirusest. Proovime ka ise käsurea pealt kiiruse avaldada. Kasutame tööriistal rostopic pub argumenti -r 1, mis saadab ette antud sõnumit 1 Hz sagedusega: | ====== 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]' | $ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 -- '[2.0, 0.0, 0.0]' '[0.0, 0.0, -1.8]' |
{{:et:ros:turtlerostopicpub.png|}} | {{:et:ros:turtlerostopicpub.png?400|}} |
| |
Näeme, et robot liigub simulatsioonis ringjoonelisest. | Näeme, et robot liigub simulatsioonis ringjoonelisest. |
| |
Kasutame teemas olevate andmete visualiseerimise tööriista rqt_plot, et visualiseerida teemadesse saadetud sõnumeid: | ====== 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 | $ rqt_plot |
Kui lisada graafikule teemad /turtle1/pose/x ja /turtle1/pose/y näeme reaalajas roboti asukohta x ja y teljel: | |
| |
{{:et:ros:rqt_plot.png|}} | Kui lisada graafikule teemad ///turtle1/pose/x// ja ///turtle1/pose/y// näeme reaalajas roboti asukohta x ja y teljel: |
| |
| {{:et:ros:rqt_plot.png?400|}} |
| |
| |
| |