ros ülevaade, roboti juhtimine ros koolitus õpetajatele · copyright 2019, litsents cc by-nd-nc,...

47
Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele (LTTI.TK.003) Veiko Vunder Juuni 2019 Männiku Metsatalu

Upload: others

Post on 07-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS ülevaade, roboti juhtimineROS koolitus õpetajatele

(LTTI.TK.003)

Veiko VunderJuuni 2019

Männiku Metsatalu

Page 2: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Millest oli juttu eile?Linux, käsurida, ROS ja geometry_msgs/Twist sõnumitüüp

2

Page 3: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Tänased teemad

• 09:00 - 10:00 ROS ülevaade? Võimalused ja failisüsteem• 10:00 - 10:15 Kohvipaus• 10:15 - 11:00 ROS programmide käivitamine ja tähtsamad sõlmed• 11-00 - 12:00 Roboti sensorinfo kuvamine• 12:00 - 13:00 Lõuna• 13:00 - 14:15 Roboti programmeerimine: ülesanded simulaatoril• 14:15 - 14:30 Kohvipaus• 14:30 - 16:00 Roboti programmeerimine: ülesanded robotil• 19:00 - ... Õhtusöök

3

Page 4: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS: võimalused ja failisüsteem

4

Page 5: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Mis on ROS?

• Tarkvararaamistik ja töövahendid robotite programmeerimiseks• Palju pisikesi programme, mis omavahel suhtlevad• ROSi abil loodud programmid saab üle kanda teistele robotitele• Ettevõtlussõbralikud tarkvaralitsentsid• Avatud platform teadlastele ja õpilastele programmide jagamiseks• Kogukond (kogu maailm kasutab ROSi)

5

Page 6: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS ajalugu lühidalt

• Välja kasvanud 00’ndatel Stanfordi Ülikoolist

• Ametlik algus 2007, Willow Garage

• Open Source Robotics Foundation (OSRF)

6

Page 7: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS ja kilpkonnad?

7

Page 8: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS Industrial

• Sai alguse 2012• Yaskawa• SWRI• Willow Garage

• Fokuseeritud tehnilised projektid• Kuni 2 aastat ainult liikmetele• Esindatud kolmes piirkonnas:

• ROS Industrial Americas• ROS Industrial Europe• ROS Industrial Asia - Pacific

8

Saad vastu

FTP

Maksad

Page 9: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS Industrial

9

Page 10: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROSi põhiterminid

10

Tuum (roscore) – alati taustal, viib sõlmi omavahel kokku

Sõlm (node) – konkreetsele ülesandele pühendatud programm

Sõnum (message) – “muutujatüüp” ehk infokild

Rubriik (topic) – sõne, mis annab sõnumivoole tähenduse

Kuulutaja (publisher) – kuulutab sõnumeid kindlas rubriigis

Tellija (subscriber) – jälgib sõnumeid kindlas rubriigis

Kimp (package) - funktsionaalne kogum sõlmi

Page 11: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Näide ROSi infovahetusest

11

ROS Tuum

Kaamera sõlm

Pilditöötlus-sõlm

Pildi kuvamise

sõlm

Registreerib

/Pilt

Registreerib

Registreerib

Kuulutab Tellib Tellib

/Pilt

Page 12: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS kimbudhttp://wiki.ros.org/Packages

ROS kimp võib sisaldada• ROS sõlmi,• ROSist sõltumatut teeki,• andmekogu,• seadistusfaile,• kolmanda osapoole programme,• kõike muud, mis moodustab loogilise osa.

ROS kimp peaks järgima põhimõtet:peaks sisaldama piisavalt funktsionaalsust, et olla kasulik, aga mitte liiga kohmakas, et oleks keeruline kasutada teistes programmides.

12

Page 13: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe 13

~/catkin_ws/src/

kimp_1/ kimp_2/

scripts/

launch/

... scripts/

launch/

... kimp_3/

...

kimbud_kaustas/

kimp_4/

...

Kimpude struktuur visuaalselt

Page 14: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS kimbudhttp://wiki.ros.org/Packages

Mõned näited kaustadest ja failidest, mida veel ROS kimbus kohtab

•launch/: Kaust kiirkäitusfailide jaoks

•scripts/: Kaust pythoni ja teiste skriptide jaoks

•src/: Kaust C++ lähtekoodiga failide jaoks

•include/: C++ päised

•msg/: Kaust isetehtud sõnumitüüpide jaoks

•srv/: Kaust teenusefailidega

•CMakeLists.txt: Fail, mis kirjeldab, kuidas kimp paigaldatakse

•package.xml: Fail ROS kimbu kirjeldusega

14

Page 15: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Näide: kimbud repositooriumis

15

Page 16: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS: Sõlmede käivitamine ja tähtsamad tööriistad

16

Page 17: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROSi kimpude ja sõlmede kasutamine

rosrun - ühe ROSi sõlme käitamine, roscore peab juba taustal töötama

$ rosrun kimbu_nimi sõlme_nimi$ rosrun ros_koolitus move.py

roslaunch - mitme ROSi sõlme käivitamine, vajalik käivitusfail

$ roslaunch kimbu_nimi käivitusfail$ roslaunch robotont_teleop teleop_bare.launch

17

Page 18: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

rosrun ja roslaunch näide

18

ROS Tuum

Kaamera sõlm

Pilditöötlus-sõlm

Pildi kuvamise

sõlm

/Pilt /Pilt

roslaunch

rosrun

Page 19: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe 19

RViz

Page 20: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Gazebo

20

Page 21: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe 21

rqt_graph

Page 22: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe 22

rqt

Page 23: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Veel kasulikke tööriistu ROSis

● rosnode - info sõlmede kohta$ rosnode list$ rosnode info /sõlme_nimi

● rostopic - info rubriikide kohta$ rostopic list$ rostopic info /rubriigi_nimi$ rostopic echo /rubriigi_nimi

● rossrv, rosmsg, rosparam

● roscd, rosed, rospack, rosbag

23

Page 24: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS: Sensorinfo kuvamine

24

Page 25: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe 25

$ roslaunch robotont_teleop teleop_with_laserscan.launch

Kauguse mõõtmine Clearbotiga

$ rostopic echo /scan_to_distance

1) 2)

Page 26: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Robotite simuleerimineGazebo

26

Page 27: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Miks kasutada simulatsioone?

1) Ajakulu vähendamine

Nt: saab kiiresti katsetada eri lahendusi

2) Rahakulu vähendamine

Nt: robot ei lähe päriselt katki

3) Teisiti ei saagi

Nt: soovime robotit testida mõne teise planeedi pinnal

27

Page 28: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Gazebo

28

Robotimudel

Maailma mudel

Page 29: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS roboti programmeerimine:hoiame kindlat kaugust/suunda tuvastatud objektist

hoiame kindlat kaugust/suunda AR markerist

29

Page 30: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS + Simulatsioon

30

/cmd_velrubriik Sinu programm kuulutab

Twist-sõnumeid, et robotsõidaks otse!

Page 31: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROSi sõnumidgeometry_msgs/Twist

from geometry_msgs.msg import Twist

vel_msg = Twist()

vel_msg.linear.x = 0

vel_msg.linear.y = 0

vel_msg.linear.z = 0

vel_msg.angular.x = 0

vel_msg.angular.y = 0

vel_msg.angular.z = 0

31

Page 32: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROSi sõnumidgeometry_msgs/Twist

from geometry_msgs.msg import Twist

vel_msg = Twist()

vel_msg.linear.x = 0

vel_msg.linear.y = 0

vel_msg.linear.z = 0

vel_msg.angular.x = 0

vel_msg.angular.y = 0

vel_msg.angular.z = 0

32

Page 33: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS-sõnumi kuulutaminegeometry_msgs/Twist

from geometry_msgs.msg import Twist

vel_msg = Twist()

vel_msg.linear.x = 0

vel_msg.linear.y = 0

vel_msg.angular.z = 0

velocity_publisher.publish(vel_msg)

rospy.sleep(0.1)

33

Page 34: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

ROS-sõnumi kuulutamine

Proovime järele!

• näiteülesanne simulaatoris• ülesanded simulaatoris• ülesanded robotil

34

Page 35: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

For-tsükkelselleks, et teha mitu korda

for i in range(0,30):

vel_msg.linear.x = 0.2

vel_msg.linear.y = 0

vel_msg.angular.z = 0

velocity_publisher.publish(vel_msg)

rospy.sleep(0.1)

35

Proovime järele

Page 36: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Funktsioonselleks, et sama asja uuesti kasutada

def mineOtseKolmSekundit():

for i in range(0,30):

vel_msg.linear.x = 0.2

vel_msg.linear.y = 0

vel_msg.angular.z = 0

velocity_publisher.publish(vel_msg)

rospy.sleep(0.1)

36

Proovime järele

Page 37: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Funktsioon ja tsükkel

def otseEdasi(kestus, kiirus):

for i in range(0, kestus):

vel_msg.linear.x = kiirus

vel_msg.linear.y = 0

vel_msg.angular.z = 0

velocity_publisher.publish(vel_msg)

rospy.sleep(0.1)

37

Proovime järele

Page 38: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Robot tegutsema!Algoritmid ja andurid

38

Page 39: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Algoritmid robootikassõidame nelinurka

39

Robot sõidab otse 5 sekundit Robot jääb seisma Robot keerab

paremale 90 kraadi

Page 40: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Algoritmid robootikas

40

Robot sõidab otse 5 sekundit Robot jääb seisma Robot keerab

paremale 90 kraadi

Page 41: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Algoritmid robootikas

41

Robot sõidab otse 5 sekundit Robot jääb seisma Robot keerab

paremale 90 kraadi

Page 42: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Algoritmid robootikas

42

Robot sõidab otse 5 sekundit Robot jääb seisma Robot keerab

paremale 90 kraadi

Page 43: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Kontrolleret juhtida andurinäidu järgi

Bang-bang kontroller

• Liiga külm? Hakka soojendama!• Liiga palav? Hakka jahutama!

• Liiga lähedal? Mine kaugemale!• Liiga kaugel? Mine lähemale!

• Siht on vasakul? Mine vasakule!• Siht on paremal? Mine paremale!

43

Mõtestamineja

otsustamine

Tegevus

Taju

Tegevus

Bang-bang kontroller

(otsustamine)Taju

Page 44: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Kaugusandur

44

# kaugus takistusest vasakus sektoris

distances.leftMin

# kaugus takistusest keskel

distances.centerMin

# kaugus takistuses paremas sektoris

distances.rightMin

Page 45: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Tingimuslauseet võrrelda ja otsustada

if distances.centerMin < 0.3:

driveBackwards()

else:

stopRobot()

45

Page 46: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Tingimuslauseet võrrelda ja otsustada

while (True):

if distances.centerMin < 0.3:

driveBackwards()

else:

stopRobot()

46

Page 47: ROS ülevaade, roboti juhtimine ROS koolitus õpetajatele · Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe ROS kimbud

Copyright 2019, Litsents CC BY-ND-NC, Madis Kaspar Nigol, Veiko Vunder, Renno Raudmäe, Karl Kruusamäe

Tingimuslauseet võrrelda ja otsustada

while (True):

if distances.centerMin < 0.3:

driveBackwards()

elif distances.leftMin > 5:

driveDiagnonallyLeft()

else:

stopRobot()

47