Författare Ämne: Egen robotplattform - hårdvara  (läst 33720 gånger)

Utloggad KAMO

  • Juniormedlem
  • **
  • Antal inlägg: 59
    • Visa profil
Egen robotplattform - hårdvara
« skrivet: 16 november 2011 kl. 21:58:52 »
Registrera dig för att dölja reklamen.
Mitt första inlägg på en mycket intressant sajt och av utvecklingen att döma, högst aktuell.
Jag har själv aldrig byggt någon robot, men funderat på det i ett tiotal åt under min tid som elektroingenjör. Idag jobbar jag inom embedded på ett företag där vi är ett gäng driftiga killar som brinner för hårdvara och i den här kreativa miljön finns utrymmet att ta tag i projektet. Själv caddar jag kretskort och fuskar lite inom firmwareprogrammering, men har en hel del kvar att lära, men kunskap finns bara en armslängd bort (plus all info på nätet såklart). Vi för seriösa diskussioner om att köpa in en 3D-printer och då vi pysslar med fordonselektronik har vi produkter som stöder CAN och andra bussgränssnitt. Tillsammans med de blåtands, WLAN och USB-kretsar vi har i våra produkter så är steget till en egen robotplattform egentligen inte så jättestort.

Mitt upplägg ser ut så här:
1) Ta fram ett enklare kort (arbetsnamn LIMB) baserat runt en AVR-processor vilka är enkla att programmera och har ett brett utbud av kod på nätet. Har inte bestämt vilken processor ännu, men tanken är att detta enklare kort ska kunna styra 3 motorer, eventuellt 4 stycken, men detta kräver 4 PWM-kanaler. Kortet ska även ha stöd för ett fåtal sensorer och kunna kommunicera via I2C, eventuellt CAN men jag tänkte börja med I2C då det är enklare. Någon lysdiod kommer jag säkert slänga med också för debug om inget annat. Kortet ska ha stöd för USB och blåtand.

2) LIMB-kortet kommer jag att använda för att lära mig styra flera servos samtidigt och bygga en simpel mekanisk arm som jag ska kunna ge kommandon via I2C. När jag börjar få koll på detta kan jag gå vidare till mer avancerad programmering och nästa steg.

3) Ta fram ett moderkort (arbetsnamn BRAIN) baserat runt en Cortex M3-processor, vilken jag är familjär med, men långt ifrån behärskar. Det här kortet kommer agera Master och ska kunna kontrollera ett antal LIMB-kort och tanken är att jag genom modultänk ska kunna konfigurera olika typer av robotar genom att koppla LIMB-kort till BRAIN-kortet. Målet är att bygga en walker med 4-6 ben och få den att se riktigt elak ut. Att göra en humanoid tror jag knappast jag klarar men en lite best som kravlar omkring, bra eller dåligt, ska allt gå att få till. Om man vill kan man istället för en walker låta varje eller några LIMB-kort styra en DC-motor (eller moddad servo) och istället få en robot som kör omkring på hjul och där kanske är en enklare början än att genast ge sig på en walker. Jag hade initialt tänkt mig en robot som tar sig fram med två ben och har stödhjul för att hålla den på rätt köl. En crawler :-)
BRAIN-kortet ska ha stöd för display, enkel knappsats, USB, Blåtand, WLAN, några lysdioder (kanske RGB?) och ha många ADC-kanaler för sensorer. Det ska kunna snacka CAN och I2C och ha många PWM-kanaler. Inledningsvis kommer jag skippa operativsystem, men ser fördelarna med ett sådant. Vet inte hur man hanterar interrupt och sådant med ett OS dock.

4) AI. Jag vet mina begränsningar och någon AI lär det aldrig bli tal om så länge jag själv ska stå för den och CPU:ns minne kommer också sätta begränsningar där. Möjligen om jag byter till en av de Cortex M3-processorer som har integrerad DSP, men det lär jag aldrig bli färdig med så länge detta sker på hobbybasis. Mina robotar får nöja sig med enklare intelligens och köra omkring och reagera på sina sensorer och kommando från PC.

Vem som helst förstår att det här kommer ta djävelusiskt lång tid, speciellt som jag äger hus och har två små pojkar, men jag tänker arbeta systematiskt och ta det pö om pö i små tekniksteg och rapportera mina erfarenheter här på forumet. Sedan får det ta 2, 5 eller 10 år så länge det går framåt. Att jag inte väljer att hoppa på en existerande utvecklingsplattform för robotar är för att jag ser det som ett projekt där jag själv utvecklas som både hårdvaru- och mjukvaruingenjör. Dessutom hoppas jag att modultänket med kompakta master- och slavkort öppnar möjligheter att i slutändan kunna producera kommersiella robotar för hushåll eller industri. Tillämpningen får helt enkelt styra hur man bygger ihop sina moduler.

Utloggad Robotnyheter

  • Administratör
  • Seniormedlem
  • *****
  • Antal inlägg: 285
    • Visa profil
    • Robotnyheter.se
SV: Egen robotplattform - hårdvara
« Svar #1 skrivet: 17 november 2011 kl. 16:04:42 »
Välkommen till Robotforum!

Det låter som ett ambitiöst projekt du tänkt ta dig an. Som du skriver är det nog betydligt mindre komplicerat att försöka sig på en robot på hjul än med ben, i synnerhet om det är ditt första robotnygge.

Personligen har jag mer av en programmerarbakgrund och har heller aldrig byggt någon robot eller ens hållt på med elektronik. Om jag skulle börja med något för att lära mig skulle jag nog köpa ett Arduino-kort eller kanske EZ-B och lära mig grunderna först. Det skulle nog bli lite som när man lärde sig programmera och gjorde sitt första "Hello World" (fast det var snarare 10 PRINT "HEJ!"  20 GOTO 10 på Commodore 64 :) ).

Jag skulle nog använda mig av en redan befintlig plattform ifall jag skulle bygga en robot. T.ex Bilibot, Turtlebot eller Microsofts dito så jag kan fokusera på programmeringen i första hand. Men som du skriver så är det en bra möjlighet att utvecklas och få nya kunskaper inom hårdvaruutveckling. Det beror på vilket syfte man har med sitt bygge.

Det vore intressant att se hur arbetet fortlöper och du får gärna posta bilder från projektet i forumet.

Utloggad Palle

  • Juniormedlem
  • **
  • Antal inlägg: 64
    • Visa profil
    • Drones Networking
SV: Egen robotplattform - hårdvara
« Svar #2 skrivet: 20 november 2011 kl. 00:50:50 »
Det låter intressant, Jag själv har upptäckt att det finns mycket att hämta från animtronikvärlden. Där har man löst många saker redan och man kan "åka snålskjuts"  :)
Låter som du har bra kollegor runt dig. Jag bollar gärna idéer med dig om du vill.
Varje dag ovan  jord är en bra dag
dronesnetworking.wordpress.com

Utloggad Robotnyheter

  • Administratör
  • Seniormedlem
  • *****
  • Antal inlägg: 285
    • Visa profil
    • Robotnyheter.se
SV: Egen robotplattform - hårdvara
« Svar #3 skrivet: 20 november 2011 kl. 12:13:21 »
Det låter intressant, Jag själv har upptäckt att det finns mycket att hämta från animtronikvärlden. Där har man löst många saker redan och man kan "åka snålskjuts"  :)
Låter som du har bra kollegor runt dig. Jag bollar gärna idéer med dig om du vill.

Välkommen Palle!

Kan passa på att tipsa om hur man ställer in så man får notiser via mail varje gång något nytt skrivits i en tråd man deltar i. Det är inte påslaget från start utan måste aktiveras i inställningarna. Det gör man på följande vis:

Välj först Profil i menyn högst upp, därefter Ändra i profil --> Underrättelser och e-post.
Där kan man sedan bocka för "Slå på underrättelse när du startar nya ämnen eller svarar på ämnen".
« Senast ändrad: 22 november 2011 kl. 22:28:50 av Robotnyheter »

Utloggad Palle

  • Juniormedlem
  • **
  • Antal inlägg: 64
    • Visa profil
    • Drones Networking
SV: Egen robotplattform - hårdvara
« Svar #4 skrivet: 22 november 2011 kl. 22:22:21 »
En ide är att köra distribuerat, d.v.s. antingen dela ut uppgifterna på ett kort med många processorer såsom Propeller-kortet från www.parallax.com eller per flera kort så att ett kort inte belastas med allt och på så sätt blockeras för felhanteringen.
Varje dag ovan  jord är en bra dag
dronesnetworking.wordpress.com

Utloggad KAMO

  • Juniormedlem
  • **
  • Antal inlägg: 59
    • Visa profil
SV: Egen robotplattform - hårdvara
« Svar #5 skrivet: 24 november 2011 kl. 13:27:38 »
Att distribuera processorkraft är lite det som är min tanke med att ha ett master kort och x antal slavkort som kommunicerar över en buss. Masterkortet behöver inte bry sig om hur man ska få benen/hjulen att snurra, det talar bara om för slavkortet att fixa det och får sedan ett svar som beror på hur det hela har gått. Man ska även lätt kunna byta en trasig slavmodul och snabbt vara igång och köra igen utan att bygga in ett för stort beroende i hårdvaran.

Sedan har jag ett antal mindre projekt som kommer före robotbygget, bl.a. en egen foderspridare för att åtla vildsvin och en viltlogger som loggar aktiviteten på min åtel, men dessa kommer utgöra grunden för slavkortet som alltså även ska gå att använda stand-alone för mindre projekt utöver robotplattformen. Dessa småprojekt är idag uppbyggda runt en atmega16 med 4x16 LCD och fyra knappar, plus en PIR-sensor, men jag funderar på vilken processor jag ska byta till för att uppfylla min kravspec. Kör gärna vidare på AVR eftersom den arkitekturen är hyfsat simpel (och jag är långtifrån grym på programmering), plus att jag har viss vana med den och redan har utvecklingskortet STK500. Tyvärr får jag inte ordning på STK500 i nya AVR studio 5 så om ngn har ett tips där vore jag tacksam.

Jag har börjat ställa upp mina projekt i en matris för att se vilka olika krav jag har på hårdvaran och tänkte utifrån detta välja processor och speca upp mitt BRAIN-kort (Masterkortet) och mitt LIMB-kort (Slavkortet). Sedan återstår att välja komponenter och cadda korten så har jag min utvecklingsplattform att koda mot.

Utloggad KAMO

  • Juniormedlem
  • **
  • Antal inlägg: 59
    • Visa profil
SV: Egen robotplattform - hårdvara
« Svar #6 skrivet: 29 november 2011 kl. 21:06:15 »
Nu har jag bestämt mig för att använda I2C som bussinterface för kommunikationen mellan BRAIN-kort och LIMB-kort. BRAIN-kortet ska få stöd även för CAN, men mer som en framtida möjlighet så man inte behöver cadda om båda korten, plus att man kan ha det till annat. Har börjat läsa på mig lite om I2C, men även om det är enklare än CAN så har jag en del hårdvara att sätta mig in i för att hålla koll på alla register. På AVR-processorn kallas I2C för Two-Wire-Interface (eller TWI), men det verkar vara samma sak som I2C. Principen utgörs av en dataledare (SDA) och en klockledare (SCL) där master-enheten står för klockpulsen och bestämmer vem som ska ta emot förfrågan eller prata på bussen genom adressering. Fyller mina behov väl och kräver få I/Os och kablar.

Dessutom verkar många färdiga sensorkit bygga på I2C.

Stöder inte så höga överföringshastigheter (max 400kHz), men jag ser inte det behovet i dagsläget så det får väl bli nästa generation som får en vassare buss istället. Åtminstone teoretiskt stöder TWI-protokollet 128 anslutna enheter så det bör räcka för de LIMB-kort och sensorer jag kan tänkas använda :-)
« Senast ändrad: 29 november 2011 kl. 21:10:40 av KAMO »

Utloggad KAMO

  • Juniormedlem
  • **
  • Antal inlägg: 59
    • Visa profil
SV: Egen robotplattform - hårdvara
« Svar #7 skrivet: 14 december 2011 kl. 11:23:03 »
Jag har kommit fram till att jag ska köra på en ATmega1284 till LIMB-kortet (slavkortet). det verkar som att många använder sig av den processorn till liknande projekt och jag kan förstå varför. Med samma pinout och kapsel kan man variera vilken krets man vill löda dit (ATmega164/324/644/1284) beroende på vad man kommer över och hur mycket minne man vill ha, men troligen är det lika bra att dunka i så mycket kapacitet som möjligt om det inte blir för dyrt. Ska kortet användas stand-alone vill jag garanterat ha mycket minne, men ska det funka som slavkort blir nog kraven mindre, då det i princip bara ska styra några servos, läsa av lite givare och snacka I2C med BRAIN-kortet (masterkortet).

Kanske jag borde gå på ARM direkt eftersom jag kommer ha det i BRAIN-kortet, men jag känner att det blir för avancerat för mig initialt. Får jag till ett bra LIMB-kort så kanske fler är intresserade av att skaffa ett? Sedan finns ju en fördel med att ha samma processorfamilj på alla kort och därmed kunna använda samma kompilator...
Jag har satt ihop en I/O-lista över LIMB-kortet och övriga projekt jag vill köra på det kortet för att se vilka krav jag har och utifrån det ska jag börja rita på schemat. Sedan får jag grubbla lite medan jag är pappaledig (nyår till sommaren 2012) innan jag caddar kortet. Ska skissa lite på protokoll mellan BRAIN- och LIMB-kort med mera under tiden.

Utloggad Palle

  • Juniormedlem
  • **
  • Antal inlägg: 64
    • Visa profil
    • Drones Networking
SV: Egen robotplattform - hårdvara
« Svar #8 skrivet: 14 december 2011 kl. 12:53:20 »
Det låter mycket spännande, det är ett positivt arbete där man får bekräftelse på tankarna ganska snabbt. har du funderat på uppgifterna som den skall utföra? Jag brukar skriva manualen först för då får man tänkt igenom funktionerna och det har funkat bra...
Varje dag ovan  jord är en bra dag
dronesnetworking.wordpress.com

Utloggad KAMO

  • Juniormedlem
  • **
  • Antal inlägg: 59
    • Visa profil
SV: Egen robotplattform - hårdvara
« Svar #9 skrivet: 15 december 2011 kl. 08:15:19 »
Tjena Palle, jag brukar också börja i spec-änden och klura ordentligt innan jag börjar så slipper man göra om sen, fast jag vet inte riktigt vad roboten ska göra ännu.

Främst har jag tänkt mig det hela som en utbyggbar plattform som är så mångsidig som möjligt. För att få ner kortytan och kostnaden på LIMB-kortet behöver jag dock göra en del prioriteringar så det kommer inte bli lika fritt som ett utvecklingskort för processorn, men hårdvaran ska fortfarande i hyfsat stor grad gå att bygla/konfigurera beroende på vad man ska använda kortet till. BRAIN-kortet kommer mer bli som ett utvecklingskort där man kommer åt "alla" den processorns funktioner (Cortex M3 från ST), vilket kommer att göra kortet större också.

Jag har väl inte riktigt bestämt mig för vad roboten ska göra, utan drivs mest av upptäckarlusten. Jag vill lära mig mer om robotar och hur jag får dem att röra sig och ta sig fram, hur de kan interagera via sensorer. Målet är en robot som går på fyra ben. En humanoid vore coolt, men jag skulle tro att det blir för avancerat för undertecknad om man ska få den att hålla balansen, i alla fall sett till de få timmar jag kan tänkas få över till robotutveckling. ATmega1284 har 6 PWM-kanaler varav jag nog kommer att använda 5 av dem till motorkontroll, ska se om jag får över även den sjätte, men behöver nog den till annat. Om man använder ett LIMB-kort per ben på sin skapelse skulle alltså varje ben kunna ha 5 servos vilket ger en hel del rörelsefrihet. Initialt tänkte jag göra en robotarm som styrs av ett enda LIMB-kort innan jag ger mig på en större robot med flera ben och styrkort. Som jag skrivit tidigare blir kanske fas två att göra en robot på hjul som drar sig fram med armar (crawler), fas tre kan då bli att den går på ben.

Kanske den får funka som vakthund när vi sover? Kanske den blir en städ- eller gräsklipparrobot? Först och främst ska det bara bli en totalt onödig grej som kryper omkring med attityd :-)

Utloggad Palle

  • Juniormedlem
  • **
  • Antal inlägg: 64
    • Visa profil
    • Drones Networking
SV: Egen robotplattform - hårdvara
« Svar #10 skrivet: 15 december 2011 kl. 08:21:39 »
 ;D Ha ha ha, helt rätt!
Skall bli spännande att se. När jag kommer lite längre med mina så skall jag dela med mig också,. Men som du skriver det svåra är att få till tiden...
Varje dag ovan  jord är en bra dag
dronesnetworking.wordpress.com

Utloggad KAMO

  • Juniormedlem
  • **
  • Antal inlägg: 59
    • Visa profil
SV: Egen robotplattform - hårdvara
« Svar #11 skrivet: 16 december 2011 kl. 21:53:32 »
Är väl miljöskadad för jag har suttit och caddat på ett kretskort på jobbet hela veckan, men är ändå sugen på att börja på mitt eget. Lite hektiskt på jobbet innan jag går på mitt halvårs pappaledighet om en vecka så jag lär inte hinna cadda så mycket på robotprojektet. Skulle väl kunna köra EAGLE hemifrån, men vi har Altium på jobbet och det är så jäkla bra, plus att där har jag alla mina komponentbibliotek. Får väl kika in där ngn gång emellanåt...

Börjar i alla fall närma mig en färdig spec på mitt LIMB-kort. Man kanske kan se vissa likheter med Arduino, men det är inte baserat på deras open-source projekt utan blir ett eget kort vars huvudfunktion är robotapplikationer med motorkontroll och sensoravkodning. Sedan kan man i viss mån bygla om det för att komma åt andra funktioner i processorn. Blir en hel del datablad att plöja igenom, men jag tycker mig ha en hyfsad bild över hårdvaran nu. Ska försöka få kortet så litet och kompakt som möjligt. Man kommer kunna prata med MCU:n via USB och/eller blåtand. Nu ska jag läsa på lite om sensorer och servostyrning så kortet får en fin anpassning för detta.

Utloggad Robotnyheter

  • Administratör
  • Seniormedlem
  • *****
  • Antal inlägg: 285
    • Visa profil
    • Robotnyheter.se
SV: Egen robotplattform - hårdvara
« Svar #12 skrivet: 17 december 2011 kl. 17:21:46 »
Börjar i alla fall närma mig en färdig spec på mitt LIMB-kort. Man kanske kan se vissa likheter med Arduino, men det är inte baserat på deras open-source projekt utan blir ett eget kort vars huvudfunktion är robotapplikationer med motorkontroll och sensoravkodning. Sedan kan man i viss mån bygla om det för att komma åt andra funktioner i processorn. Blir en hel del datablad att plöja igenom, men jag tycker mig ha en hyfsad bild över hårdvaran nu. Ska försöka få kortet så litet och kompakt som möjligt. Man kommer kunna prata med MCU:n via USB och/eller blåtand. Nu ska jag läsa på lite om sensorer och servostyrning så kortet får en fin anpassning för detta.

En sån här robotplattform borde du bygga. ;) Det är nog det mest imponerande jag sett i hexapodväg. Den verkar kunna ta sig fram nästan överallt, kan vända på benen om den hamnar på rygg, klättra i tak och på väggar och t.o.m hjula. Den kan dessutom använda två av benen som gripklo för att lyfta upp saker och bära omkring på. En sån robotdammsugare skulle klara sladdhärvor, höga trösklar och annat galant. :)




Utloggad KAMO

  • Juniormedlem
  • **
  • Antal inlägg: 59
    • Visa profil
SV: Egen robotplattform - hårdvara
« Svar #13 skrivet: 17 december 2011 kl. 22:46:22 »
Ja den ser onekligen läcker ut. Min förhoppning är att man med min plattform kan välja hur många ben/hjul man vill ha i sitt bygge, fast det kräver kanske fler LIMB-kort. Jag kommer kunna styra max 6 servos per LIMB-kort och hexapoden ser ut att ha fyra per ben (=24 servos) vilket skulle kräva i alla fall fyra (4 ggr sex servos) LIMB-kort, fast kanske sex som konceptet ser ut. Hexapoden i din artikel ser onekligen slimmad ut så jag förmodar att den är optimerad för just sitt ändamål. Jag siktar på ett lite bredare användningsområde, men det kommer nog tyvärr göra att elektroniken kräver mer utrymme i slutändan. Hittar man ett fungerande robotkoncept som har en marknad så kan man väl alltid ta fram egen hårdvara för den senare. Hm... kanske ska leta efter en juste PWM krets för att kunna styra ännu fler servos, eller så får en PWM-kanal styra mer än en servo. Tål att kluras på lite.

Utloggad Palle

  • Juniormedlem
  • **
  • Antal inlägg: 64
    • Visa profil
    • Drones Networking
SV: Egen robotplattform - hårdvara
« Svar #14 skrivet: 17 december 2011 kl. 22:54:15 »
Och glöm inte kraftkällan för att driva allt ihop, det har en tendens att bli stor vilket gör att en del av kraften går åt till att kunna få med sig själva kraftkällan.
Har du funderat på hur du skall driva roboten (kraftkälla?)
Varje dag ovan  jord är en bra dag
dronesnetworking.wordpress.com