Strumenti Utente

Strumenti Sito


robotica:esperienze:manuale_marrtino

LAB2GO Scienza

Manuale di Programmazione (2017-2018)

Per programmare Marrtino come prima cosa bisogna usare un sistema operativo adatto , quindi aprite la macchina virtuale con pre installato il sistema operativo linux , in caso non fosse installato “basta” seguire le istruzioni nel sito qui sotto. - https://sites.google.com/dis.uniroma1.it/marrtino/quick-setup Ora che stiamo nel giusto sistema operativo prima di scrivere un programma bisogna testarlo e per questo useremo ROS 2D simulator (programma tecnicamente pre installato nel OS). - avviare il simulatore: Prima di tutto bisogna aprire il terminale (si trova in alto a sinistra) , e inserire I seguenti comandi :

$ cd src/marrtino_apps/stage
(“cd” è un comando utile per spostarci nelle varie cartelle)

$ roslaunch simrobot.launch (questo comando fa partire il simulatore).

- avviare il robot vero:

Dopo aver testato il programma nel simulatore bisogna avviare con questi comandi orazio ROS node che darà la possibilità al robot di leggere e eseguire ciò che abbiamo programmato

$ cd src/marrtino_apps/robot
$ roslaunch robot.launch  

come scrivere un programma in Python Python è il linguggio di programmazione che utiliziamo per far fare dei semplici muovimenti al robot , come prima cosa bisogna aprire Pluma il nostro editor di fiducia , andare su View → Highlight mode → scripts → Python , ora l’editor sa che vogliamo programmare in Python.

Il programma ha un paio di costanti per essere riconosciuto come script per un robot e sono queste :

#!/usr/bin/env python

from robot_cmd import *
begin()
  
<il tuo programma>


end()

I comandi che possiamo mettere tra “begin()” e “end()” sono :
Stop() --------→ il robot si ferma
forward(r=1) ------→ il robot va avanti di r=1 (1m circa)
backward(r=1) ------→ il robot va in dietro
left(r=1) -------→ il robot si gira a sinistra r=1 → 90 gradi
right(r=1) ------→ il robot si gira a destra   r=1 → 90 gradi
wait(r=1) ------→ il robot si ferma per un secondo
bip(r=1) ------→ emette un suono
bop(r=1) ------→ emette un suono

I comandi un po più complicati:

While 1: (serve per mandare in loop il programma)
if(laser_center_distance()<1): 
(quando il robot si trova a circa meno di un metro da un ostacolo leggerà I comandi appena sottoscritti altrimenti passerà a leggere I comandi sotto “elese:” )

else: esempio:

#!/usr/bin/env python
from robot_cmd_ros import *
begin()
bip()
forward(1)
while 1:
   if(laser_center_distance()<1):
      print('found obstacle')
      begin()
      left(2)
      forward(1)
      right(1.5)
      forward(1)
      stop()
   else:
      print('no obstacle found')
      begin()
      forward(1)
      stop()
bop()
stop()
end()

- La combinazione di questi tre comandi posso dar origine a un programma che non farà quasi mai sbattere il robot, ecco un esempio :

(autore programma : Edoardo Zanna)

#!/usr/bin/env python
from robot_cmd_ros import *
begin()
bip()
forward(1.5)
while 1:
   if(laser_center_distance()<3):
        begin()
        forward(1)
        stop()
        while 1:
           if(laser_center_distance()<1.7):
              print('found obstacle')
              begin()
              wait()
              backward(1)
              right(1.5)
              forward(1)
              stop()
              while 1:
                if(laser_center_distance()<0.5):
                   print('found obstacle')
                   begin()
                   wait()
                   backward(1.5)
                   right(1)
                   forward(1)
                   stop()
                else:
                   print('no obstacle found')
                   begin()
                   forward(1)
                   stop()
           else:
              print('no obstacle found')
              begin()
              forward(1.5)
              stop()
    else:
      print('no obstacle found')
      begin()
      forward(1.6)
      stop()
bop()
stop()
end()

- Salvataggio del programma :

Ora che avete finito di scrivere il vostro programma dovete salvarlo quindi , andate su “salva con nome” e salvatelo come volete ma .py per esempio : Prova.py ecc.. - Per farlo partire basta aprire un terminale andare nella cartella dove è salvato e scrivere I seguanti comandi :

$  cd /src/marrtino_apps/program
$ python nomeprogramma.py

in contemporanea avvia il simulatore per vedere come funzionano I tuoi script

se vuoi lanciare il programma in client/server mode Server on the robot

$ ./robot_program_server.py 5000

per lanciare il proprio programma su un interfaccia web o se hai qualche dubbio puoi visitare questa pagina : - https://sites.google.com/dis.uniroma1.it/marrtino/programming


robotica/esperienze/manuale_marrtino.txt · Ultima modifica: 2019/09/23 14:30 (modifica esterna)