Gruppe 3 – Blogg 6


Uke 6: 

Spider Manufacturers (Maskin):

Denne uken har Spider Manufacturers begynt å 3D modellere en komplett robot edderkopp, som har plass til alle komponentene. Vi har fordelt hva vi skal 3D modellere:

  • Ole Martin (Systems engineer): Demping
  • Kristian (Expert): Bein
  • Vinay (Expert): Kropp

Creepy Coders (Data):

Denne uken har vi etablert en forbindelse mellom Raspberry Pi og servomodulen. Dette tok tid, men vi har nå endelig et solid grunnlag for å begynne å kode bevegelsene i systemet.

Vi har også gjennomført ytterligere undersøkelser av ulike sensorer og hvordan dette skal implementeres i python.

Vi har forbedret github-oppsettet, slik at vi nå fremover har grunnlag til å få en oversiktlig dokumentasjon. For eksempel finnes det nå versjonshistorikk på uml diagrammer.  De nyeste versjonene av UML-diagrammer og andre diagrammer vises på forsiden av hver respektive undermappe.

Til slutt har vi konkludert med at jitter-problemet kommer til å bli løst med å tilføre friksjon i leddene i systemet.

Individuelle innlegg

Ole Martin: 

For å forenkle oppsettet av servoene for testing og transport, ble det designet et testbrett som gjør det enkelt å montere og frakte servoene. Dette er et enkelt og plassbesparende design.

I tillegg har jeg designet et beskyttelsesdeksel for servo-utvidelseskortet, ettersom det var svært utsatt for potensielle skader på kretskortet og loddepunktene på undersiden. Dekselet har et enkelt design der kortet er hevet noen millimeter, og det er laget en åpning for enkel tilgang til USB mini-kabelen. Begge disse delene har jeg produsert ved hjelp av 3D-printing(PLA).

Videre har jeg begynt å modellere den nederste delen av beinet til edderkopproboten for vår neste testplattform. Denne delen skal inneholde en dempemekanisme og en mikrobryter som bryter den elektriske kretsen ved kontakt med bakken. Dette vil gi roboten beskjed om når den har bakkekontakt. Jeg har ikke kommet langt med designet ennå, men her er en liten innsikt i hvordan det ser ut så langt.

Vinay:

Denne uken har jeg fokusert tiden min på 3D modellering av selve kroppen. Jeg har samarbeidet med Kristian og Ole Martin for å få bli enige om hva som er viktig ved design av kroppen, som er følgende:

  • Plass til komponenter
  • Føring/plass av kabler/ledninger
  • Struktur
  • Materiale
  • Innfestning til bein

For å kartlegge alle komponentene som Creepy Coders skal bruke, har jeg laget en oversikt på google disk. I tillegg har jeg funnet CAD modeller på ulike nettsider og bekreftet dimensjonene med fabrikantens spesifikasjoner.

Her her bilde av noen CAD modeller funnet på nett:

I første iterasjon av kroppen vil føringer av kabler/ledninger ikke være veldig viktig, ettersom vi lager dette for at Creepy Coders kan begynne å teste med 6 bein og alle komponentene.

Strukturen vil være en plate med fester til 6 bein, og plass til alle komponentene. Samtidig som det er en enkel “panser” for å få tilgang til komponentene. Dette gjør at de fleste komponentene blir skjulte, men kan enkelt få tilgang til disse.

Kroppen skal 3D printes i PLA. Jeg har diskutert med Martin (Creepy Coders Expert) angående varme stråling og funnet ut av at PLA er greit å bruke. Dette materialet har vist seg foreløpig å være godt nok for prosjektet vårt.

I tillegg til 3D modellering, har jeg brukt tiden min på å benytte 3D printeren jeg nylig har kjøpt. 

Kristian:

Jeg har begynt å modellere nye bein til den komplette modellen. Det har vært mye nyttig erfaring å få fra de tidligere iterasjonene av beinene, og i tillegg har vi nå festeelementer som gjør det lettere å feste ting til motorene. Beinene skal være modulære på et vis, slik at de lett kan tas av og på kroppen som Vinay jobber med. Jeg er også i samarbeid med Ole Martin for å ha demping i ytterste ledd.

Martin:

Hovedoppgaven min denne uken besto av å reprodusere resultatet med å etablere kontakt med servomodulen, men denne gangen med å bruke raspberry pi. Løsningen fra forige uke var et ferdig windows program som kommuniserte direkte med servomodulen. Formålet med oppgaven min denne uken var å finne en løsning som gjør det mulig å kontrollere servoene direkte fra et pythonprogram som kjører på raspberry pi. Løsningen ble å bruke et ferdig biliotek: https://github.com/FRC4564/Maestro. Med dette biblioteket har vi tilgang til metoder som setPosition(), setSpeed() og setAccelleration(). Jeg hadde diverse problemer med å i det hele tatt opprette kobling mellom raspberry pi og servomodulen. Løsningen var å legge til rettigheter til å bruke usb porten (sudo usermod -aG dialout $USER).  Når dette var løst så oppsto det problematikk med å klare bruke hele rekkevidden til servoen. Jeg klarte bare bruke 0 til 90 grader. Jeg begynte å se på lavnivå koding for å få sendt de riktige pulsene inn til servoene. Her gikk det kaldt nedover ryggen på meg for dette kan jeg ikke enormt mye om og jeg har allerede klokket inn i overkant mange timer denne uken. Heldigvis løste problemet seg med litt prøving og feiling med å teste diverse verdier på setRange().

Den andre oppgaven min denne uken var å feilsøke på jitter i systemet. Dette gjorde jeg sammen med Didrik hele fredagen. Didrik har skrevet om dette. Det går tregt da man hele tiden prøver seg på ting man ikke kan. Det som tok mest tid her var å lære seg å bruke oscilloskop.

Video av jitter i systemet

Ellers denne uken har jeg gjort grunnarbeid på git repoet https://github.com/martintara/creepy Her skal vi samle og organisere all dokumentasjon for prosjektet. Enn så lenge er det smått rotete, men en av oppgavene mine neste uke er å organisere dette med versjonhistorikk. Det er ikke vits å se på noe av testkoden. Det er bare testfiler som ble brukt i prosessen med å opprette kommunikasjon mellom raspberry pi og servomodulen. Den eneste interessante filen å se på er https://github.com/martintara/creepy/blob/main/src/maestro.py denne inneholder funksjonene vi kommer til å bruke da vi skal bryne oss på å løse bevegelsesmønsterene vi ønsker.

Vi laget et testbrett for alle servoene denne uken.

Ida:

Jeg har jobbet med en ultrasonic sensor som skal brukes til å måle avstand til objekter. Dette gjorde jeg ved å først bruke Arduino og skrevet kode for å hente ut nøyaktige avstandsmålinger fra sensoren. Deretter overførte jeg prosjektet til Python og brukte python-biblioteket pyserial for å kommunisere med sensoren via COM-porten. Dette kan da brukes videre med en Raspberry Pi.

Didrik:

Denne uken så har mye av tiden blitt brukt til å gjennomføre eksamener, men etter onsdagen så var jeg ferdig og kunne benytte tiden til prosjektet. Jeg og Martin brukte fredagen til å analysere signalet som ble sendt til servoene under drift for å se om kondensatorer kunne løse  “jitter” som noen ganger oppsto da.
Ved bruk av et occiloscope kunne vi se at kondensatorene hadde minimal påvirkning på problemet, men med å tilføye systemet friksjon så ser vi at problematikken avtar.

Annet enn dette så har jeg prøvd å bli kjent med GitHub og friske opp på hvordan man navigerer seg rundt igjen.

Testing av kondensatorer
Uten kondensatorer
Med kondensator ved strømkilde
Med kondensator ved strømkilde og ved servo

Bjørn Ole:

Denne uken har jeg jobbet med å bli kjent med hvordan jeg kan bruke Git Repo’et vårt. Har brukt mest tid på å faktisk lære meg hvordan GitHub i det hele tatt fungerer, og hvordan jeg kan benytte meg av de forskjellige funksjonene. I tillegg har jeg prøvd å finne ut av hvordan jeg kan kjøre simuleringer av Python-kode i PyCharm, noe som har vist seg å være litt mer komplisert enn først antatt:

Jeg har også jobbet litt med å lære meg hvordan jeg kan ta inn resultater fra sensorer og hvordan jeg kan bruke dette i Python. Har gjort dette på en Micro:Bit, selv om vi har valgt å bruke RaspberryPi. De grunnleggende prinsippene er de samme. 


Leave a Reply