Rubriks kub på 20 drag

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
CoffB
Inlägg: 3
Blev medlem: 19 mars 2009, 17:43:44

Rubriks kub på 20 drag

Inlägg av CoffB »

Håller på med en robot som skall kunna scanna rubriks kub för att sedan lösa den i datorn, som sedan styr robotens tre leder att lösa kuben på cirka 20 drag. Men behöver någon sorts programvara som jag kan styra roboten med ifrån datorn. Finns det någon bra sådan? Måste också lösa det med att koppla datorn till roboten på något smidigt sätt. Vad måste jag ha då? Robotens 6 motorer går på 9V batterier.
Användarvisningsbild
Stolleman
EF Sponsor
Inlägg: 2676
Blev medlem: 21 oktober 2005, 20:46:45
Ort: Utanför Växjö

Re: Rubriks kub på 20 drag

Inlägg av Stolleman »

Jag är inte så fantastisk på något av det men jag har sett ganska många filmer på youtube med Lego Mindstorm som löser Rubiks kub, sök och se om lösningarna kan vara något att utgå ifrån :)
Användarvisningsbild
Glenn
Inlägg: 36667
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: Rubriks kub på 20 drag

Inlägg av Glenn »

Detta är ju inte helt lätt, även om det är görbart förstås.

F.ö, de flesta filmerna på youtube som ska föreställa detta är tydligen fusk, man har satt i en löst kub och filmat när roboten "blandar" den och sen kör man filmen baklänges.
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Re: Rubriks kub på 20 drag

Inlägg av Walle »

Jag tycker det känns lite som att du har börjat för snabbt, innan du har planerat klart. Att du inte har en aning om hur din robot ska kopplas till datorn är ett exempel på detta..I min värld funderar man ut sånt innan man börjar bygga, så man vet vad för komponenter man behöver, hur motorerna behöver drivas, o.s.v.

Du skriver att den ska lösa kuben på ca 20 drag. Har du skrivit programmet för det? Den effektivaste metoden att lösa en 3x3x3-kub skrevs 2008 av Tomas Rokicki, och den kan lösa kuben från vilket utgånsläge som helst på max 22 drag. Har du fått tag i någon sådan avancerad metod som du har lyckats implementera i ett program? En metod som löser kuben på så få rörelser är inget som man vevar ihop i en handvändning, så det vore intressant att veta hur du har löst / tänkt lösa den här biten.

Hur scannar den kuben? (vad för hårdvara). Vad är det för motorer? Att de går på 9V-batterier säger ingenting som är speciellt relevant i det här skedet. Betydligt intressantare är då vad för typ av motorer det är. Borstade DC-motorer? Borstlösa DC-motorer (BLDC)? Stegmotorer? Om stegmotorer, vilken typ?

Olika motorer drivs på olika sätt, därför går det inte att uttala sig om drivningen om du inte skriver vad det är för motorer.

Om det är DC-motorer, vad har du för återkoppling? Altså så du ser hur långt motorerna gått? Det behvös för att kunna positionera (med stegmotorer behövs ingen återkoppling)

Du skriver också "men behöver någon sorts programvara som jag kan styra roboten med ifrån datorn". Jag är inte 100, men jag är ganska klar över att det är något som du får skriva själv. Det behöver väl dock inte vara allt för komplicerat. Dock måste det ju kunna prata med ditt program som löser kuben, om du nu har något sådant det vill säga. Å ena sidan skriver du att du behöver programvara, å andra sidan skriver du att den "ska" lösa kuben på ca 20 drag, vilket tyder på att du redan har programvaran som står för lösningen.

Jag hade delat upp programmet i fyra grundläggande delar. Styrning, hantering, scanning, lösning.

Styrning:

*Sköter motorerna (och återkopplingen).
*Ska ta emot kommando för att köra en viss motor en viss bit.

Hantering

*Tar hand om alla kubrörelser och vridningar.
*Håller koll på kubens läge.
*Samordnar styrningen av alla motorerna.
*Skickar kommandon till "styrningen".
*Tar emot kommandon från scannings-delen och lösningsdelen.
*Tolk för cube notation (d.v.s. för kommandon av typen: FL'D'RU' Som beskriver en rörelsekedja.)

Scanning

*Ombesörjer scanningen av kubens utgångsläge.
*Skickar kommandon till "Hanteringen", "Vrid hela kuben 90 grader runt X-axeln".

Lösning

*Algoritmer som räknar ut lösningen.
*Skickar kommandon till "hanteringen" i cube notation.


Jag hade skrivit programmet i C++, dels för att jag gillar att dela upp koden i klasser, och dels för att jag har slarvat lite med C++ tidigare. (Dock är jag inte ens i närheten av den nivån som krävs för ett sådan här projekt! Jag har lite syntaxkännedom, och kännedom om hur klasser fungerar, ungefär)
CoffB
Inlägg: 3
Blev medlem: 19 mars 2009, 17:43:44

Re: Rubriks kub på 20 drag

Inlägg av CoffB »

Har ett program som både scannar kuben (med en helt vanlig web cam) för att sedan lösa den. Har testat programmet ett antal gånger då jag blandar min egen kub. Resultat av detta har varit 20-25 drag.

På tal om att koppla datorn till roboten så har jag ingen koll på sådant. Skall det vara USB eller nätverkskabel eller något annat sådant. Och detta "C++" vart kan jag få tag på det? Kostar det något? :humm:
Användarvisningsbild
tompa74
EF Sponsor
Inlägg: 2502
Blev medlem: 29 oktober 2007, 15:25:17
Ort: Kristinehamn

Re: Rubriks kub på 20 drag

Inlägg av tompa74 »

Det här Använder jag när jag "fuskar" i programmering.

/ Tompa
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Re: Rubriks kub på 20 drag

Inlägg av Walle »

CoffB: Nice! Får man fråga var du har fått tag i programmet? Kan programmet på något sätt kommunicera med externa program, eller generera någon form av filer som externa program kan läsa in?

Hur roboten ska kopplas beror helt på vilken lösning man väljer. Det finns ett antal olika möjliga lösningar, här är några olika som är de första som dyker upp i mitt huvud

1: Passiva motorstyrkretsar kopplade till paralellporten.

2: "Halvsmarta" µCU-baserade motorstyrkretsar. Kopplas antingen till USB, serieport eller paralellport. µCUn tar emot styrkommandon av formen "kör motor n x antal varv", och utför dessa.

3: "Smart" µCU-baserad motorstyrkrets. Tar emot en hel serie vridkommandon och kan själv lista ut hur kuben ska hanteras och hur vridningarna ska ske.

Vilken lösning man än väljer så krävs det att man är ganska vass på att programmera. Jag tror inte det går att lösa det utan att vara både vass på att programmera och dessutom ha hyffsade kunskaper i elektronik, eftersom en del yttre kretsar troligen kommer behöva konstrueras.

Eventuellt kan det finnas något standard I/O-kort som går att använda till en lösning enligt punkt 1. Detta tror jag är det lättaste.
CoffB
Inlägg: 3
Blev medlem: 19 mars 2009, 17:43:44

Re: Rubriks kub på 20 drag

Inlägg av CoffB »

Jag hittade programmet på internet men fick leta ett tag innan jag hitta ett som jag ville ha.
Jag vet inte om programmet kan prata med andra program. Hur tar jag reda på det. Är inte så insatt när det gäller just sån här teknik. :roll:
Borre
Inlägg: 4606
Blev medlem: 14 juni 2007, 15:43:50
Ort: Hälsingland

Re: Rubriks kub på 20 drag

Inlägg av Borre »

Du har inte lust att länka till programmet?
Användarvisningsbild
tompa74
EF Sponsor
Inlägg: 2502
Blev medlem: 29 oktober 2007, 15:25:17
Ort: Kristinehamn

Re: Rubriks kub på 20 drag

Inlägg av tompa74 »

Här verkar det vara något liknande.
Kanske kan ge något.

/ Tompa
Användarvisningsbild
Walle
Moderator
Inlägg: 7701
Blev medlem: 14 december 2004, 10:32:18
Ort: Stockholm

Re: Rubriks kub på 20 drag

Inlägg av Walle »

Hmm CoffB..jag vill inte låta negativ, men såvida du inte hittar en färdig lösning med ritningar på vilka externa kretsar som behövs och så, så ser jag tyvärr smala chanser för det här att lyckas. Misstolka mig rätt, jag tycker att det är ett väldigt intressant projekt (speciellt med tanke på att jag själv tycker det är kul att lösa kuben. Rekordet ligger dock på dryga 3 minuter, så jag ligger LÅÅÅÅÅÅÅÅÅNT från de duktiga som löser den på under 20 sekunder :D). Men det kräver lite grundläggande kunskaper som du inte verkar inneha, och utan dem så kan det bli mycket svårt/omöjligt. För du kan nog inte räkna med att få en lösning presenterad här, kotym på detta forum är att man försöker själv, och ber om hjälp när man har kört fast.
Skriv svar