Humanoid robot
- MicaelKarlsson
- Inlägg: 4669
- Blev medlem: 18 juni 2004, 09:16:07
- Ort: Aneby
- Kontakt:
Jag är inte så övertygad om att just den biten kräver så mycket kod.Henry skrev:Att den kan räkna ut hur den skall röra armen måste kräva en sinnessjuk mängd av kod.
Riktigt imponerande.
Om man lägger upp ett koordinatsystem med lämpligt origo och därefter beräknar punkten dit armen skall flyttas är det ju "bara" att räkna sig bakåt för att få fram vilka vinklar som servot i varje led skall ha. blir väl bara en liten 4x4-matris för varje led och det är ju inga besvär, eller hur

Det som kan ställa till det är ju att få alla servon att ställa in sig till rätt vinkel och att hålla dem där men det fixas ju med lite reglerteknik så hoppar roboten omkring som en yster älg i granplanteringen.......

- MicaelKarlsson
- Inlägg: 4669
- Blev medlem: 18 juni 2004, 09:16:07
- Ort: Aneby
- Kontakt:
Hur mycket matte man lägger in beror till stor del på hur exakt/avancerad modell av sin robot man vill ha. Om man nöjer sig med någon/några millimeter duger det säkerligen i detta fallet med en rent matematisk modell där man inte tar hänsyn till vikten hos servo, leder, armar med mera. Om man gör det så blir det inte direkt roliga beräkningar man måste göra, extra otrevligt blir det om man skall göra det i realtid.
Det går mycket rktigt att "räkna bakåt" som Micael nämde men det är inte så roligt då den ekvationen har alltid fler än en lösning. Tänk på att man kan nå en punt i rymden på fler sätt om armen har många frihetsgrader. För att slippa detta tränar man istället upp ett neuralt nätverk för ett godtyckligt antal punkter. Efter träningen klarar nätverket självt att hitta de flesta andra punkter plus ger andra interessanta resultat. T.ex om den får se en punkt som ligger utanför "grepp-området" så sträcker roboten ändå ut armarna så gott det går. Detta är alltså ingenting som jag har talat om att den ska göra. Löser man en massa ekvationer istället kommer lösningen att saknas i detta fall och systemet kommer krascha.
Jag har en liten fundering över det här med att använda neurona nätverk. Vad är fördelen med att använda sig av dem istället för linjära modeller och egenvärden? Tanken är att man med hjälp av egenvärdena räknar ut den efektivaste rörelsen för att nå den nya positionen. Egenvärden kan man använda om man har oändligt många eller för få lösningar för att lösa sin ekvation.
Med hjälp av egenvärdena slipper man träna sitt nätverk.
Jag har bara läst om linjära system i teorin och inte använt det praktiskt. Men jag e väldit nyfiken på vad för/nackdelarna är mellan de olika metoderna. Sen måste jag tillägga att jag är GRYMT imponerad av roboten!
Med hjälp av egenvärdena slipper man träna sitt nätverk.
Jag har bara läst om linjära system i teorin och inte använt det praktiskt. Men jag e väldit nyfiken på vad för/nackdelarna är mellan de olika metoderna. Sen måste jag tillägga att jag är GRYMT imponerad av roboten!
Fördelen med Neurala Nätverk och Evolutionära algoritmer i allmännhet är att man behöver inte känna till systemet för att kunna styra den. Jag behöver bara tala om för roboten vart jag vill att den ska peka i en viss situation. Sen ska roboten kunna sitta och lära sig detta utan att jag behöver göra en matematisk modell för armarna. Egentligen behöver jag inte äns räkna ut koordinaterna (x,y,z) för målet. Det hade räckt med att ge den pixelkoordinaterna från bilden den ser och huvudets position så hade den kunnat räknat ut detta själv. Det roliga här är att när man har ett komplext system med många in-parametrar så kan man ge alla parametrar till nätverket (alt. evolutionära algoritmen) och efter träningen kan man läsa av vilka parametrar som nätverket egentligen använder och därmed bestämma huruvida vissa behövs eller ej.
För ansiktsigenkänning har jag använt ett vanligt Feed Forward NN dvs utan återkoppling.
För ansiktsigenkänning har jag använt ett vanligt Feed Forward NN dvs utan återkoppling.
- MicaelKarlsson
- Inlägg: 4669
- Blev medlem: 18 juni 2004, 09:16:07
- Ort: Aneby
- Kontakt:
Kanske borde lagt till att jag utgick från att jag såg på humanoidens arm som "likvärdig" en IRb vilket troligen underlättar en hel del eftersom man då har en del begränsningar som kan utesluta en del konstiga positioner.Almir skrev:Det går mycket rktigt att "räkna bakåt" som Micael nämde men det är inte så roligt då den ekvationen har alltid fler än en lösning......
Det kan ju i och för sig uppstå en mängd besvärliga lägen men dessa kan man ju undvika dessa genom att utvärdera robotprogrammet innan och då kan man upptäcka dessa "farliga" lägen, om man inte har en riktigt fet plånbok och köper ett simuleringsverktyg för sin robot som EM-Workplace (Robcad) som för övrigt är en lika rolig som dyr leksak.

Här är en annan länk som imponerar...
http://pc.watch.impress.co.jp/docs/2003 ... ony_06.wmv
Almir, det är bara att träna upp neurala näten!!
http://pc.watch.impress.co.jp/docs/2003 ... ony_06.wmv
Almir, det är bara att träna upp neurala näten!!
