We hebben onze concepten en testopstellingen gepresenteerd aan de opdrachtgevers en begeleiders.
De keuze om steppenmotoren te gebruiken blijkt onnodig te zijn. Als wij een wieltje zouden gebruiken dat meedraait met de aandrijfmotoren kunnen we de omwentelingen hiervan uitlezen en hiermee de positie bepalen. Voor het precies draaien kan een kompas gebruikt worden waarvan deze op een bepaalde hoek ingesteld word. Bij het kompas moeten we er wel op letten dat er mogelijk storingen in het gebouw kunnen zijn. Als we andere motoren zouden gebruiken zou de robot zuiniger kunnen zijn.
Als de stoelen in Ter Reede in een rij staat gaat ons concept niet goed werken. Onze suggestie hiervoor is dat de medewerkers van Ter Reede elke avond in plaats van elke ochtend de stoelen onder de tafels schuiven waardoor een andere opstelling niet mogelijk is.
Energie opslag en transport kwam veel tekort ten opzichte van het andere team. De mensen die verantwoordelijk waren voor dit subsysteem hebben niet genoeg werk geleverd en zullen dit moeten inhalen in blok 8.
De presentatie was overtuigend omdat we on kwetsbaar opstelden en dat we de integrale subcomponenten aantoonden. Voor logics werd Meneer Mouw zenuwachtig omdat we verschillende arduino's aan elkaar wilden linken.
M_de_Ruijsscher_00067390_Blok78_2015
donderdag 2 april 2015
vrijdag 27 maart 2015
Stoeldetectie
Als er een stoel wordt gedetecteerd zal de robot zich hier
recht voor moeten positioneren, deze vastpakken, een rondje draaien, de stoel
weer terug zetten, om de stoel heen manoeuvreren en verder gaan in zijn pad. De
stoel gaat herkend worden door middel van een markeerder die wordt gedetecteerd
met een pixi CMUcam5 die werkt met een arduino. De markeerder bevat meerdere kleuren
waardoor ook de hoek van de markeerder herkend kan worden, waardoor de robot de
stoel op de verkeerde hoek kan pakken.
De gegevens uit de camera kan uitgelezen worden via de
seriële monitor op de arduino, de gegevens zien er dan als volgt uit:
Detected 1:
block 0: sig: 12 x: 159 y: 109 width: 61
height: 61 angle: 20
Er wordt een object gedetecteerd
met een ‘signature’, dit is de kleur of kleurcode die je aan de pixy camera geleerd
hebt. In dit geval is de signature 12, dit wilt zeggen dat het een combinatie
is van kleurcode 1 en 2. De positie van het object wordt ook weergegeven op de
x (tussen 0 en 319) en y ( tussen 0 en 199) as. De hoogte en de breedte van het
object worden weergegeven, hiermee kun je het oppervlak van het object
berekenen. Tot slot wordt de hoek waaronder het object zit weergegeven als er
gebruik gemaakt word van een markeerder met meerdere kleuren.
De informatie van de
objecten kunnen in de volgende functie op gevraagd worden:
· pixy.blocks[i].signature
· pixy.blocks[i].x
· pixy.blocks[i].y
· pixy.blocks[i].width
· pixy.blocks[i].height
· pixy.blocks[i].angle
Waarbij de I het
nummer van het gedetecteerde object is.
obstakel detecti
Als er een obstakel wordt gedetecteerd zal de robot om dit
obstakel heen moeten manoeuvreren en vervolgens verder gaan in zijn pad. De
robot zal eerst 90 graden moeten draaien, vervolgens zal deze langs het
obstakel heen moeten rijden totdat deze weer op de oude positie staat.
Dit systeem is gesimuleerd op een arduino met ultrasoonsensoren en led verlichting. De testopstelling zag er als volgt uit:
De functie voor het manoeuvreren ziet er als volgt uit:
De functie voor het manoeuvreren ziet er als volgt uit:
void omheenrijden() {
int detectie_zij = afstand_zij();
while(detectie_zij >5 && detectie_zij < 15)
{
digitalWrite(ledvoorlinks, HIGH);
digitalWrite(ledvoorrechts, HIGH);
detectie_zij = afstand_zij();
}
while(detectie_zij <= 5 && detectie_zij > 0)
{
digitalWrite(ledvoorrechts, HIGH);
digitalWrite(ledvoorlinks, LOW);
detectie_zij = afstand_zij();
}
while(detectie_zij >15 || detectie_zij == 0)
{
digitalWrite(ledvoorlinks, HIGH);
digitalWrite(ledvoorrechts, LOW );
detectie_zij = afstand_zij();
}
}
int detectie_zij = afstand_zij();
while(detectie_zij >5 && detectie_zij < 15)
{
digitalWrite(ledvoorlinks, HIGH);
digitalWrite(ledvoorrechts, HIGH);
detectie_zij = afstand_zij();
}
while(detectie_zij <= 5 && detectie_zij > 0)
{
digitalWrite(ledvoorrechts, HIGH);
digitalWrite(ledvoorlinks, LOW);
detectie_zij = afstand_zij();
}
while(detectie_zij >15 || detectie_zij == 0)
{
digitalWrite(ledvoorlinks, HIGH);
digitalWrite(ledvoorrechts, LOW );
detectie_zij = afstand_zij();
}
}
Deze functie zal nog getest moeten worden op het ontwerp en hieruit zal blijken of er nog veranderingen aan het ontwerp moeten komen.
vrijdag 13 maart 2015
obstakel detectie
Als er een obstakel wordt gedetecteerd zal de robot om dit
obstakel heen moeten manoeuvreren en vervolgens verder gaan in zijn pad. De
robot zal eerst 90 graden moeten draaien, dan als de obstakel gepasseerd is 90
graden terug draaien totdat het obstakel gepasseerd is, vervolgens draait de
robot weer 90 graden en rijdt deze door totdat deze op de oude positie is en
draait weer 90 graden om zn pad af te maken. Dit gaat door middel van een ultrasoon
sensor.
Verbeterpunten voor de toekomst
Dit systeem werkt alleen voor vierkante objecten. In de
toekomst moet gekeken worden hoe verschillende vormen obstakels vermeden kunnen
worden. Daarnaast moet er ook gekeken worden hoe obstakels die tegen de muur
staan vermeden moeten worden zonder dat de robot tegen de muur botst en vast
loopt.
Uitgewerkt integraal idee
We hebben uiteindelijk voor de cleantastic gekozen om verder uit te werken.
Van de drie integrale ideeën kan maar één idee worden
meegenomen naar de conceptfase, om dan uitgewerkt te worden tot een haalbaar
niveau. Hierbij komt ook het proof of concept kijken, waarin door (versimpelde)
modellen kan worden aangetoond dat de gekozen ontwerpen en oplossingen werken
zoals gewenst. Na het kiezen van de drie integrale ideeën kwamen nog een aantal
oplossingen naar voren die niet waren bedacht tijdens het maken van de ideeschetsen.
Voor verplaatsing en pick en place zijn oplossingen bedacht die sterker waren
dan de ideeën die in de drie integralen werden gepresenteerd.
Er is daarom gekozen voor een combinatie van een aantal
nieuwe oplossingen, die zijn samengevoegd tot een ‘nieuw’ integraal idee. Dit
idee wordt meegenomen naar de conceptfase, waar de haalbaarheid zal worden
aangetoond doormiddel van onderzoek en modellen.
Eerst werd er gekeken naar de lepels die de stoel zouden op
tillen. Om de stoel op te tillen moesten de lepels lang genoeg worden zodat de
stoel er niet vanaf zou kunnen vallen, daarnaast moest het optil mechanisme
veel kracht moeten hebben om de stoel daadwerkelijk op te kunnen tillen en ook
zou het system genoeg contragewicht moeten hebben zodat deze niet zou omvallen.
Er is een keuze gemaakt om de lepels naar de zijkant bewegen en zo tussen de
stoelpoten geklemd worden, vervolgens kan de stoel verschoven worden.
Voor dit idee is een proof of concept gemaakt.
Om zo min mogelijk ruimte nodig te hebben voor de stoelen
weg te schuiven en stofzuigen is gekeken naar binnen vorkheftrucks die in nauwe
ruimtes moeten werken. De heftrucks werken met twee aangedreven voorwielen en
een stuurwiel achterin. Voor de logics op systeemniveau zou het makkelijker
zijn om het achterste wiel een zwenkwiel te maken en met de voorwielen te
sturen.
Abonneren op:
Posts (Atom)