Domanda

Anche prima che ho imparato di programmazione sono stato affascinato con come i robot potrebbero funzionare. Ora so come le istruzioni di programmazione di base sarebbero scritti, ma quello che non capisco è come quei intructions sono seguiti dal robot.

Per esempio, se ho scritto questo codice:

object=Robot.ScanSurroundings(300,400);
if (Objects.isEatable(object))
{
   Robot.moveLeftArm(300,400);
   Robot.pickObject(object);
}

Come questo programma sia seguito dalla CPU in un modo che renderebbe il robot fare l'azione fisica di guardare a sinistra, spostando il braccio, e quali? E 'fatto principalmente in binario lingua / ASM?

Infine, dove andrei se volevo imparare a creare un robot?

È stato utile?

Soluzione

Nella maggior parte dei moderni robot si avrebbe un modello inverso cinematica del meccanismo, in questo caso il braccio, che converte le coordinate spaziali in posizioni per le articolazioni del braccio. Questi giunti sono generalmente mossi da servomotori. Per spostare agevolmente il braccio, è necessario una serie di posizioni comuni intermedi che definiscono il percorso che si desidera il braccio da seguire. È inoltre necessario preoccuparsi le velocità delle articolazioni, che insieme controllano la velocità della "mano" alla fine del braccio.

Mentre il braccio si muove il sistema servo sarà sempre un feedback sulla sua posizione attuale. servo sistemi semplici possono utilizzare un ciclo di base di retroazione PID per regolare i motori. Altri sistemi complessi comprendono parametri feed-forward che compensano inerzia, gravità, l'attrito, e così via. Questi possono diventare molto sofisticati.

Il vero divertimento inizia quando si deve consentire agli ostacoli nello spazio attorno al robot. Bisogna percepire l'ostacolo e capire come evitare e ancora raggiungere la destinazione.

Altri suggerimenti

Alla fine, qualcosa deve abbattere i comandi ad alto livello in comandi di livello molto basso. Qualcosa deve tradurre "Sollevare la coppa" al modo di muovere il braccio (quello che gli angoli delle articolazioni dovrebbero essere a) ai comandi hardware che in realtà si trasformano i motori.

Ci sono quadri che cercano di fornire una certa quantità di questa traduzione, tra cui (ma non solo):

Tuttavia, dal momento che la ricerca della robotica è interessata a ogni livello del sistema, non ci sono molti sistemi che forniscono l'intero stack di traduzione. Se stai cercando in ricevendo in robotica, ci sono diversi sistemi che tentano di rendere questo (ancora una volta, un campione casuale) facile:

In mancanza di questo, siti come Fai anche fornire guide per la costruzione di progetti di robot da cui partire. La sfida è trovare un progetto che si è entusiasta, e andare in città!

Si dovrebbe verificare Microsoft Robotics Studio (MRS). Hanno molte video / screencast e esercitazioni scritte . Inoltre, Channel9 ha molti video , interviste, ecc, sulle robitics soggetto. Compresi dimostrazioni e interviste con gli sviluppatori di MRS.

Non mi resta che aggiungere qualcosa sulla progetti Arduino per questo perché io non vedo che di cui sopra.

C'è un bar molto basso per l'ingresso nei progetti di robotica basati su Arduino. I programmi di "schizzo" che si scrive per l'hardware sono molto facili da prendere e simile alla sintassi del C. Se non conoscere i propri transistor da resistenze di queste schede ancora ti permettono di fare molto con plug-in hardware e "scudi" che si estendono il computer di bordo di base.

E 'molto divertente, molto flessibile e qualcosa per ottenere il codice di interagire con il mondo reale. Inoltre la sua "Open Hardware" molto lungo le linee di software open source.

I robot lavoreranno interagendo con l'hardware. Il ponte dal codice è spesso fatto attraverso vari tipi di porte I / O. Potrebbe essere semplicemente un cavo RS232 per esempio (si sa quelle vecchie porte COM1). componenti hardware saranno composte da motori (come servomotori ) e sensori (ad esempio ecografia a sentire gli ostacoli, i laser per ottenere distanza o switch).

Non è necessario utilizzare assembler per fare questo, ci sono un sacco di lingue (se non la maggior parte) che possono fare, ma richiede la conoscenza su come interagire con l'hardware. Come scrivere un driver. Si richiede almeno l'elettronica di base anche se si vuole costruire il robot da soli.

Se siete interessati, vi consiglio di dare un'occhiata al questo libro che è un buon primer.

Inoltre, si potrebbe provare la programmazione di un base timbro , è abbastanza facile seguendo i tutorial e sarà vi darà un buon inizio su come costruire robot. Non è troppo costoso e ti verrà interagire con l'hardware in pochissimo tempo.

In bocca al lupo e buon divertimento!

Se si ottiene abbastanza buono in programmazione, si può scoprire che non è nemmeno effettivamente bisogno di un robot per testare gran parte del codice più difficile avrete bisogno di scrivere ... (IE, facendo un robot vedere e riconoscere un scena mi ha sempre affascinato ... Ma a un certo punto, mi sono reso conto che il robot fisico richiesto per questo problema è la parte facile ... il software è la parte più difficile!) ...

È probabilmente più facile per ottenere un linguaggio più alto livello per descrivere i comportamenti e l'intelligenza del robot e lasciare che il linguaggio di basso livello alle azioni (braccio movimento, camminare, fermarsi). C'è un sacco di ricerca in quello che viene chiamato l'architettura BDI per agenti intelligenti, google per esso.

È possibile trovare maggiori informazioni a questo sito , si tratta di un DSL per descrivere il comportamento dell'agente realizzato in Java. Si chiama Jason interprete e la lingua è AgentSpeak (L).

Trovare una rel="nofollow PRIMO robotica squadra e volontario per essere un mentore. FIRST è una competizione di robotica per scuole medie e superiori bambini. L'obiettivo è che i ragazzi fanno tutto il lavoro per costruire, programmare, testare ed eseguire il robot, ma è ancora avrà un sacco di opportunità di scavare dentro e davvero imparare il software. Stanno usando LabView da National Instruments, e, a partire dal 8 febbraio, hanno appena iniziato concorso regionale per quest'anno. LabView è un ambiente di programmazione grafica che si interfaccia con l'hardware NI per consentire di programmare motori, attuatori e sensori. La roba NI è piuttosto liscia ed è abbastanza facile da usare, più è fornito gratuitamente ad ogni squadra, in modo da non devi comprarti l'hardware e il software (almeno per iniziare.) Inoltre, si ottiene il valore aggiunto di aiutare una nuova generazione di ingegneri ottenere il loro inizio.

Si dovrebbe avere un driver che interfacciato con l'hardware (molto probabilmente un timbro o FPGA con motori ecc ...). Si potrebbe quindi chiamare la funzione me.moveLeftArm (x, y); e il conducente saprebbe che moveLeftArm () indica di spostare un attuatore per X secondi / millisecondi / gradi.

Sono sicuro che si possa trovare un kit che fa la programmazione di robot.

Se si desidera un'alternativa Java, posso consigliare il libro Linux Robotics . Ha un sacco di buone informazioni su dove trovare i kit, parti, e sensori, così come annunci codice sorgente completo in Java.

Condivido lo stesso prurito .. Sto per comprare il mio primo Beagle Board e alcuni sensori / servi che possono utilizzare il I2C bus. Ho intenzione di utilizzare un design event driven e un'implementazione grezza di fibre (fibrille, se si vuole), che sono le discussioni in userspace.

In pratica le mie telefonate di progettazione per un processo, che lancia un thread per ogni gruppo di servi. Ogni manager filo gruppo lancerà x # di fibrille, 2 per il servo (probabile). Una fibrille è utilizzato per controllare il servo, l'altro fibrillare gestisce gli eventi da quel servo (vale a dire, un oggetto è semplicemente troppo pesante da raccogliere, un oggetto è stato eliminato, ecc).

Il processo principale ha il compito di ascoltare per gli eventi da tutto il resto e facendo attenzione che la 'mano destra sa che cosa sta facendo la mano sinistra' mentre si muove in avanti e gli ostacoli di negoziazione.

La sua intenzione di prendere me la parte migliore di due anni per ottenere qualcosa di lavoro al punto che io sono orgoglioso di questo .. ma io anticipare molte serate piacevoli ottenere a quel punto.

sarò molto probabilmente utilizzerò un microkernel, non Linux.

Lo sto facendo tanto per affinare me stesso con metodi event-driven e il mio desiderio di fare il mio R2:)

Inizia con Phidets se si ha familiarità con .Net. È possibile verifica TrossenRobotics.com per le parti.

Il kit di interfaccia Phidgets è un buon punto di partenza. Da lì si può ottenere un controller servo e iniziare a costruire le cose che si muovono.

I forum Trossen sono anche un buon posto per esaminare i progetti di altre persone. Hanno un nuovo Data Center con i campioni di codice / progetto troppo. Io non lavoro per loro ... solo un cliente felice.

un sacco di buone risposte qui. il vostro pezzo di codice di fantasia non è lontano da come si farebbe in un linguaggio di alto livello come C # su MS Robotics Studio. Basta tenere a mente che le cose anche semplici (come "braccio vai a sinistra") sono molto caricati con "polarizzazione informazioni".

a metallo, un braccio robotico è un insieme di collegamenti e [forse] articolazioni motorizzate. Pertanto "braccio mossa sinistra" (o qualsiasi punto di coordinate) è già un compito molto complesso da calcolare (cercare D & H Tabella, avanti e cinematica inversa per manipolatori).

C'è anche il concetto che muove il braccio sinistro si assume non c'è niente in quello spazio e una collisione non si verificherà. Se l'ambiente è vincolata, allora avete bisogno di implementare un sistema di rilevamento delle collisioni, spesso basati su una sorta di sensore (telecamera) e algoritmi di visione della macchina.

In sintesi, la lingua e l'interfacciamento hardware sono spesso banali rispetto a modellare il sistema per ottenere il comportamento desiderato.

Per quanto riguarda l'ultima domanda "come creare un robot", trovo partendo da alla ricerca di un progetto correlato nelle comunità online come [Adafruit] [1], [Hackster.io] [2], o anche [difetto] [ 3], o alla ricerca di post del blog di qualcuno che hanno costruito un robot da zero, ad esempio, https://burningservos.com , o di un prodotto che fornisce documentazione e tutorial per hardware e software ad esempio, http://emanual.robotis.com/docs/en/platform/openmanipulator_x/overview/ .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top