Jeffrey Cross
Jeffrey Cross

Nybörjare Robotics: Förstå hur enkla sensorer fungerar

För att en robot verkligen ska betraktas som en robot, måste den kunna känna och påverka sin miljö. Det är därför som sensorer är så viktiga för robotiken, och att förstå hur man använder dem för att göra en robot smart är avgörande för någon spirande robotist. Jag har nyligen lanserat en Kickstarter och vi utdelar faktiskt fria sensorer med varje kit vi säljer, så kolla in det här innan det slutar!

I denna färdighetsbyggare tar jag dig igenom en robotoperation kallad förnuft> tänka> agera. Det är en operation som används allmänt inom robotteknik och är ett utmärkt ställe att börja förstå hur man programmerar en robot. Låt oss dyka i ...

Välja en sensor

Det finns så många sensorer tillgängliga som det finns fysiska saker att känna, men låt oss använda sensorn för ultraljudsavståndet HC-SR04 eftersom det är billigt, enkelt och allmänt använt i robotar (det har också ett mycket bekvämt Arduino-bibliotek).

Definiera robotmodellen

Denna sensor kan upptäcka avstånd, så låt oss börja med en enkel robot som undviker kollisioner. Denna robot kan röra sig framåt och bakåt och vända på platsen i båda riktningarna. På framsidan av roboten är avståndssensorn. Nu när vi har definierat vår robot, låt oss börja se hur vi gör det.

Vad är Sense, Think, Act?

Sense, Think, Act är en beslutsling som kan användas för att lösa många robotproblem, och det är anmärkningsvärt enkelt. I det här fallet måste roboten känna av om det finns några hinder framför den. Det måste då fundera på om det kan gå vidare, eller om det ska vända eller vända om, varefter det kommer att handla om det beslutet. Samma logik kan gälla alla robotar, med vilken som helst sensor för nästan alla beteenden.

Att faktiskt göra detta till kod som vi kan skriva för att styra roboten, måste vi vara mer specifika. Låt oss skapa ett enkelt beteende för roboten enligt följande ...

  1. Roboten känner av om något hinder är mindre än 3 cm framför.
  2. Om det inte finns något hinder går det framåt.
  3. Om det finns ett hinder går det bakåt.

Detta skulle vara väldigt enkelt att översätta till kod, men du kanske insåg att det här skulle resultera i att roboten skulle "fastna" oscillerande när den nått en vägg. Det skulle gå framåt tills det upptäckte väggen, sedan flytta bakåt tills det inte, sedan framåt igen, och så vidare. Låt oss ändra beteendet på följande sätt.

  1. Roboten känner av om något hinder är mindre än 3 cm framför.
  2. Om det inte finns något hinder går det framåt.
  3. Om det finns ett hinder vänster det vänster och sedan tillbaka till steg 1.

Detta fortsätter tills så småningom hittar roboten en riktning som inte har någon vägg inom 3 cm.

Nu har vi en känsla, tänk, agera modell som faktiskt kan fungera för att hjälpa vår robot att undvika hinder. Det är inte en särskilt sofistikerad modell och vi kan lägga till mycket komplexitet för att förbättra hindren för hinder.

Även med en enkel robot, väldigt komplicerad känsla, tänkande, handla modeller kan utformas för att skapa väldigt smarta beteenden. Det här är kärnan i robotiken - smartens i programvaran!

Vårt nuvarande beteende är lite ineffektivt eftersom roboten måste svänga vänster tre gånger, bara för att svänga till höger. Låt oss ändra vårt beteende på följande sätt, som ett fjärde steg för att följa de tre stegen ovan:

4. Om det finns ett hinder vänster det vänster och sedan tillbaka till steg 1.

  1. Roboten känner av om något hinder är mindre än 3 cm framför.
  2. Om det inte finns något hinder går det framåt.
  3. Om det finns ett hinder vänster det och känner igen.
  4. Om det inte finns något hinder går det framåt och slingan återställs.
  5. Om det finns ett hinder, vänder det sig till rätt och sinnen igen.
  6. Om det inte finns något hinder går det framåt och slingan återställs.
  7. Om det finns ett hinder, fortsätter roboten att svänga till höger tills det inte finns något hinder.

Nu kommer vår robot att kontrollera båda riktningarna för att se om det finns en vägg, vilket betyder att roboten kommer att röra sig mer effektivt. Lägg märke till hur även det enkla beteendet börjar bli mer komplext att illustrera, men om vi tänker på detta beteende som en serie Sense, Think, Act loopar blir det mycket lättare att förstå!

Och där har du det. Vi har tagit ett mycket enkelt fall av Sense, Think, Act beteende och fleshed det ut i ett fungerande hinder undvikande program. Det skulle vara en mycket enkel uppgift att översätta det beteendet till kod och börja spela med robotteknik! Och självklart kan du lägga till fler avståndssensorer, och till och med olika typer av sensorer för att göra beteendet ännu mer sofistikerat. Kom bara ihåg att bryta ner det i Sense, Think, Act och du kommer att kunna hantera det. Och självklart om du letar efter en robotkit som innehåller ton fria sensorer, kolla in vår Kickstarter!

Del

Lämna En Kommentar