Detta papper presenterar en interaktiv Java mjukvaruplattform som gör det möjligt för alla användare att enkelt skapa avancerade virtuella laboratorier för robotik. Detta nya verktyg ger både stöd för att utveckla applikationer med fullt 3D interaktivt grafiskt gränssnitt och en komplett funktionell ram för modellering och simulering av godtyckliga seriella länkmanipulatorer. Dessutom innehåller dess programvaruarkitektur ett stort antal funktioner som ingår som verktyg på hög nivå, med fördelen att göra det möjligt för alla användare att enkelt utveckla komplexa interaktiva robotsimuleringar med ett minimum av programmering. För att visa plattformens egenskaper beskriver dokumentet, steg för steg, implementeringsmetodiken för ett komplett virtuellt laboratorium för robotutbildning med hjälp av det framlagda tillvägagångssättet. Slutligen rapporteras vissa utbildningsresultat om erfarenheterna av att tillämpa detta tillvägagångssätt. Nyckelord: distansundervisning, inlärningsmiljöer, robotik, simuleringar, virtuella laboratorier. På grund av den explosionsartade tillväxten av robotsystemen under de senaste åren måste ingenjörsstudenterna känna till och lära sig sin snabbt växande utveckling. Teoretiska lektioner ger dock inte tillräckligt med kunskap till studenter, särskilt inom robotikområdet eftersom denna disciplin integrerar kunskaperna i flera vetenskapliga ämnen såsom mekanik, elektronik och styrsystem [1]. Utbildning inom tekniska discipliner innebär oundvikligen praktiska experiment, så laboratoriearbetet behövs också för att förbättra studenternas lärande med praktiska frågor. Trots detta finns det många problem med att ge eleverna tillräckliga och lämpliga utbildningsresurser för robotik. Dessa inkluderar dyr utrustning, begränsad tid, och komplicerade experimentella installationer. Som en lösning på dessa problem representerar virtuella laboratorier distribuerade miljöer som är avsedda att utföra interaktiva 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 33 34 35 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 F o r P e r R e v i e w simulering baserad på en matematisk modell av ett verkligt system [2]. Med hjälp av dem kan eleverna lära sig via Internet på ett praktiskt sätt och på så sätt bli medvetna om fysiska fenomen som är svåra att förklara ur bara en teoretisk synvinkel. Interaktiva VL är i synnerhet effektiva pedagogiska resurser inom ingenjörsutbildning, väl lämpade för webbaserad utbildning och distansundervisning [3]. Deras interaktivitet gör det möjligt för eleverna att samtidigt visualisera simuleringens svar på alla förändringar som införts, och denna omedelbara observation av förändringen är det som verkligen hjälper eleverna att utveckla användbar praktisk insikt i robotsystemteori [4]. Dessutom uppmuntrar VL:s interaktivitet eleverna att spela en mer aktiv roll i e-lärandeprocessen och ger realistiska praktiska erfarenheter [5]. Robotsystem har mycket komplexa beteenden. Av denna anledning, med denna typ av system, är en tillförlitlig matematisk modell oumbärlig för att utforma en VL som gör det möjligt för användare att lösa verkliga problem genom simulering. På så sätt behövs lämpliga mjukvaruplattformar för att definiera de matematiska modellerna och för att utforma användbara och omfattande VL för robotik. Nuförtiden finns det flera simuleringsverktyg som ägnas åt robotsystem. Bland dessa finns flera grafiska programvarumiljöer utformade för professionella applikationer som RoboWorks [6] Det tillvägagångssätt som presenteras i detta dokument ger en komplett funktionell ram för modellering och simulering av robotsystem. Det viktigaste inslaget i detta tillvägagångssätt är att dess programvaruarkitektur 1 2 3 4 5 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 60 F o r P e e r R e v i e w innehåller ett stort antal funktioner i samma plattform som ingår som verktyg på hög nivå, med fördelen att göra det möjligt för användare att enkelt skapa robotprogram med ett minimum av programmering. Dessa verktyg ger flera avancerade funktioner för serielänkrobotar. De täcker funktioner för att lösa problem som kinematics, bana planering, programmering, dynamik, objektinteraktion, värld modellering, import av 3D-modellfiler och så vidare. Dessutom är uppgifterna att skapa användargränssnittet och utveckla den virtuella miljön för simuleringen ganska förenklade. Därför är den programvaruplattform som presenteras i detta dokument ett specifikt verktyg så att alla användare kommer att kunna utveckla avancerade interaktiva VLs för robotik. Detta är ett tillvägagångssätt som inte har genomförts tidigare i tidigare forskningsprojekt. Ett annat meningsfullt problem med de tidigare kommenterade verktygen är plattformsberoendet. Vissa C++-verktyg är inte bärbara för alla operativsystem. Det verktyg som presenteras i detta dokument är baserat på Java [13], ett modernt programmeringsspråk som är plattformsoberoende. Användaren behöver bara installera motsvarande Java-plug-ins för att köra Java-program. Dessutom gör Java det möjligt för användare att dela sina beräkningsresurser i distribuerade miljöer. Papperet är uppbyggt på följande sätt: Avsnitt 2 visar verktygets programvaruarkitektur. I avsnitt 3 förklaras genomförandemetoden för en komplett VL för en Scara-robot enligt det tillvägagångssätt som presenteras i detta dokument. Efteråt beskrivs några avancerade funktioner med ett experimentellt exempel. I avsnitt 5 förklaras därefter erfarenheterna av att tillämpa detta tillvägagångssätt och vissa utbildningsresultat presenteras. Slutligen diskuteras några viktiga slutsatser i avsnitt 6. Det finns två huvudblock som representerar den funktionella kärnan i programvaruplattformen (Figur 1 ): ett objektorienterat Javabibliotek (EjsRL från detta ögonblick) som gör det möjligt för användare att modellera godtycklig serie- (Figur 1 ). Ejs är en öppen källkodsapplikation utvecklad i Java, speciellt utformad för att skapa interaktiv dynamisk VL [14]. Ejs har skapats för människor som inte behöver komplexa programmeringskunskaper. Användare kan enkelt och snabbt skapa interaktiva simuleringar. De behöver bara tillhandahålla den mest relevanta kärnan i simuleringsalgoritmen och Ejs genererar automatiskt alla Java-koder som behövs för att skapa en komplett interaktiv VL. Dessutom skapar Ejs alla nödvändiga filer för att köra de slutliga applikationerna på tre olika sätt: som en applet inbäddad i en webbsida, som en fristående Java-applikation, och som en Java Web Start-applikation. EjSRL är ett Javabibliotek speciellt utformat för Ejs, som tillhandahåller ett komplett funktionellt ramverk som gör det möjligt för Ejs att modellera, designa och utföra avancerade robotiska applikationer i sin omgivning. För en fullständig beskrivning av alla klasser och paket, kan läsarna se den on-line dokumentation som finns på webbsidan tillägnad plattformen som presenteras här: www.aurova.ua.es/rcv. Dessutom har nya funktioner för 3D-modellering baserat på Java 3D-funktioner lagts till i den senaste versionen av Ejs för att förbättra dess gränssnitt element [15]. Dessa funktioner gör det enkelt och snabbt att skapa mycket realistiska applikationer och komplexa VL med sofistikerade animationer. Bland dem är det värt att nämna textur lastning eller textur kartläggning, som tillåter att lägga till yt texturer från bildfiler till 3D-modeller, och import av komplexa geometriska former från externa grafiska filer som VRML (Virtual Reality Modelling Language), OBJ (Wavefront) eller 3DS (3D Studio). Alla grafiska komponenter i Ejs har vissa egenskaper som användaren kan ansluta med modellvariabler och ställa in en länk mellan modellen och vyn. Denna egenskap kan användas för att etablera en koppling mellan Java-objektet skapat med EjsRL, som innehåller inbäddade alla Robotics algoritmer och dess metoder, och de grafiska komponenter som simulerar systemets beteende. Därför är det mycket enklare att skapa en VL som simulerar en robot. I detta avsnitt beskrivs de nödvändiga stegen för att utforma och utveckla en komplett robotisk VL med hjälp av den presenterade plattformen. Det kommer också att betonas eftersom dessa steg genomförs på ett enkelt sätt. Exemplet ansökan kommer att bestå av en industriell Scara robot med 4 grader frihet (DOF) och dess virtuella arbetsyta. Därefter kommer en översikt över genomförandemetodiken för alla Robotics algoritmer (kinematik, banplanering, dynamik, programmering och objektinteraktion) att förklaras. Som nämns i avsnitt 2 består en VL inuti Ejs av två inbördes relaterade delar: (1) simuleringen av den matematiska modell som beskriver systemet, och (2) det interaktiva gränssnittet mellan användare och modell eller vy. Figur 2 visar dessa delar som VLs utvecklare måste definiera och området för att infoga Java-koden för att skapa VL-modellen. Det första steget för att skapa en robotisk VL är att infoga biblioteket EjsRL som en extern resurs (figur 2). På så sätt kan alla Robotics algoritmer i detta bibliotek användas i Ejs miljö för att definiera robotmodellen. Det andra steget för att utveckla en robotisk VL är att skapa en specifik robot i modelldelen av Ejs miljö. Denna åtgärd innebär att definiera variablerna och att programmera ett robotobjekt som anger en minimikod. För att skapa en godtycklig robot arm objekt, användare behöver bara veta dess Denavitt-Hartenberg (DH) parametrar [16], typ av leder (rotationell eller prismatisk) och dess räckvidd rörelse. DH-parametrarna för systemet som föreslås med skelettet representation av roboten manipulatorn kan ses i figur 3. Med de data som tidigare nämnts måste en Java-objektvariabel som definieras i Ejs initieras med hjälp av robotkonstruktören till Robotics-modulen i EjsRL. Figur 4 visar Javakoden som måste infogas i modelldelen av Ejs (figur 2, " Java kodpanelen") och de variabler som måste skapas för att programmera en industriell Scara robot arm 4 DOF. Parametertypen anger typ av varje led (rotationell "R", prismatisk "P") för robotbyggaren. Denna Java-kod skapar ett robotobjekt som innehåller de funktioner eller metoder som behövs för att implementera alla Robotics algoritmer (kinematik, banplanering, dynamik, programmering och objektinteraktion). När robotobjektet har programmerats kan VL-utvecklare bygga det grafiska gränssnittet eller bilden av den virtuella roboten och dess miljö. Som anges ger det nya 3D-ramverket för Ejs ett brett utbud av olika element, baserat på Java 3D-klasserna [15]. Användare kan dra någon av dessa vyelement som tillhandahålls för att bygga simuleringsvyn. Resultatet är en trädliknande struktur som visas i figur 5, som det är vyn gränssnitt robotarmen och dess arbetsyta. KomponentritningenPanel3D är 3D-miljön där roboten och dess arbetsyta kommer att visas i simuleringen. Här definieras manipulatorns 3D-länkar med hjälp av 3DS-komponenter, som gör det möjligt för användare att importera modeller från befintliga 3DS-filer (se figur 5). Som tidigare nämnts har alla gränssnittskomponenter i Ejs vissa egenskaper som används för VL:s simulering. Figur 5 visar också 3DS-komponentens egenskaper. Fälten Position och Transform kommer att användas för att flytta roboten eftersom de kommer att kopplas till de resultat som robotobjektet beräknar. I det aktuella exemplet är huvudvyelementen som utgör 3D-robotarbetsytan kuber med texturkartläggning och VRML-modeller. För att ge ett realistiskt utseende åt elementen krävs det bara att redigera deras egenskaper och att associera filsökvägen för bilderna respektive 3D-modellerna. Dessa egenskaper gör det möjligt för användare att utveckla högpresterande 3D virtuella robotiska miljöer. Detta underavsnitt förklarar hur användare enkelt kan genomföra kinematics simulering av en godtycklig seriell länk manipulator av n DOF med hjälp av den programvaruplattform som presenteras i detta dokument. (1) Figur 6 visar Javakoden för att lösa framåtkinematisk beräkning av Scara-roboten. De gemensamma värdena hämtas från ett interaktivt användargränssnitt utvecklat i vyn med hjälp av Java swing komponenter såsom en dialogruta och skjutreglage (se figur 6 ). De gemensamma variablerna q1..q4 är kopplade till reglagens element som kallar forwardKinematics-metoden för uppdatering av modellens DHTable-matris. Därefter beräknas de homogena omvandlingarna av varje länk med hjälp av funktionen FKinematics av Robotics modulen i EjsRL. Dessa matrisobjekt (A01...A04) är förberedda för att direkt infogas i egenskapen Transform (se figur 5 ) av 3DS-vyelementen för att flytta dem enligt denna robotalgoritm. För fordon av kategorierna M1 och N1 ska följande villkor vara uppfyllda: Slutligen flyttas roboten till lämplig position med hjälp av funktionen för den främre kinematiken som förklarades tidigare. Banan (app); 2) För att beräkna accelerationen av den banplaneringsalgoritm som föreslås med hjälp av en av de funktioner som tillhandahålls av Robotics modulen. Banplaneringsmodulen returnerar accelerationsparametrarna för flera banor som kommer att användas i rörelseekvationerna. Figur 8 visar Javakoden för att programmera en 4-3-4 polynominterpolator [16] i den föreslagna VL. Denna kod beräknar accelerationsmatrisen för differentialekvationer av rörelse (app). De genererade gemensamma värdena ges till den kinematiska modellen för att simulera robotrörelsen. Figur 9 visar rörelsen för denna vägplaneringsalgoritm i Scara-roboten. Flera tomt kontroller av Ejs kan användas för att visualisera de mer intressanta variablerna i banan (Figur 9 ). Robotdynamiken handlar om rörelseekvationer för n-axelns robotmanipulatorer som speglar förhållandet mellan de krafter som verkar på en robotmekanism och de accelerationer som produceras I denna formulering är M den symmetriska tröghetsmatrisen för ledrymden, C beskriver Coriolis och centripetala effekter och G är gravitationsbelastningen. Lösningen på denna ekvation används för att bestämma de vridmoment som orsakas av en viss rumslig rörelse, dvs. det omvända dynamiksproblemet, och för att hitta den rumsliga rörelse som produceras av en viss uppsättning vridmoment eller det framtida dynamiksproblemet. Robotikmodulen i EjsRL implementerar klasser och numeriska metoder för att lösa båda dynamiksproblemen. Figur 10 visar Javakoden för att genomföra den omvända dynamikssimuleringen med en yttre kraft (objektvikt) i den robotiska VL som föreslås. Denna metod använder den rekursiva Newton-Euler-algoritmen [17] för beräkning av vridmomentet i varje led, med tanke på robotens hastighet och acceleration i det gemensamma utrymmet. Massa, tröghet och viskösa friktionsegenskaper ska definieras som variabler för att lösa detta Robotics paket ger också metoder för att separat beräkna matriserna M, C och G i rörelseekvationen (2). Således kan användare i realtid få alla värden av de dynamiska parametrar som ingår i ekvationen. I figur 11 kan man se hur både dessa matriser och vridmomentet gemensamma värde förändras under robotrörelsen. Robotics paketet innehåller funktioner på hög nivå för virtuella programmeringsfrågor som gör det möjligt för slutliga användare av VL att programmera, kompilera och utföra komplexa uppgifter i robotiska VL. Åtgärderna beskrivs med hjälp av Java-språket, där slutliga användare kan skapa variabler, matematiska operationer och objekt i detta språk. Programmeringsmodulen implementerar specifika klasser och metoder för både robotsimulering och objektinteraktion. För en detaljerad beskrivning av tillgängliga klasser och metoder, se tabell 1. Robotic modulen i EjsRL ger en funktion som ringer till Java kompilatorn och genererar den binära koden som utförs i den virtuella robotvärlden. Således kräver sammanställningen och utförandet av denna Javakod endast Java Development Kit (se bilaga A). Figur 12 visar genomförandet av virtuella programmeringsfunktioner i den föreslagna VL. Det är bara nödvändigt att skapa ett interaktivt användargränssnitt i Ejs vy (som en dialogruta med en filad text och en knapp), att infoga Java-kod, och att utföra sammanställning och körning av denna Java-kod med hjälp av de funktioner som tillhandahålls av Robotics modulen i EjsRL (se figur 12 ). Den gemensamma struktur som användarna måste följa för att programmera en specifik uppgift är följande: -Deklaration av positioner (gemensamma eller kartesiska) och tid i form av dubbla variabler och matriser. -Insertering av virtuella objekt som finns i arbetsytan med samma namn som anges i Ejs-vyn. -Förklaring av rörelsekommandon. Användarna kan använda metoderna moveJ och moveC för gemensamma och kartesiska rörelser. Parametrarna för dessa metoder är objekten posJ och posC som skapats tidigare. Figur 13 visar ett programmeringsförsök som består i att göra en pick-and-place-operation av ett virtuellt objekt som finns i tabellen. Som tidigare nämnts finns det tre olika delar i programmets struktur: 1) förklaringar av positionerna; 2) skapande av objekt posJ; 3) införande av virtuella objekt; och 4) definition av ordning rörelser. I dessa sista metoder kan användarna ange vilken bana de vill använda. I det föreslagna exemplet utförs uppgiften med hjälp av synkrona banor (parametern "Syn" i metoden moveJ).  Paketet Robotics från EjsRL innehåller vissa funktioner för utveckling av bildbehandlingsalgoritmer inom Ejs miljö. Dessa funktioner implementerar bildfunktionsextraheringsalgoritmer för att lägga till sensorfunktioner i den robotiska VL. För att visa denna avancerade egenskap implementerar författarna en datorvisionsalgoritm i den virtuella robotiska miljö som tidigare skapats. Syftet är att utföra en Eye-In-Hand ( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 F o r P e r R e v i e w beslut. Den andra utför uppgiften genom att använda information som erhålls direkt från bilden. I det här avsnittet implementeras ett bildbaserat visuellt servosystem med hjälp av Ejs och EjsRL. En visuell servostyrningsuppgift kan beskrivas med en bildfunktion, e t, som måste regleras till 0: Figur 14a ) ögon-i-hand kamerasystemet visas i virtuell robotisk miljö där en virtuell kamera är placerad vid robotens sluteffekt. I figur 14b visas ett exempel på en visuell servouppgift. Denna bild visar de ursprungliga och önskade bildfunktionerna från kamerans synvinkel. I en visuell-servo-styralgoritm relaterar interaktionsmatrisen L s, variationerna i bilden ( s & ) med variationen i kamerans hastighet i förhållande till scenen ( r & ), dvs. där r & anger kamerans hastighet. Genom att införa en exponentiell minskning av e t (t är möjligt att få följande kontroll åtgärd för en klassisk bild-baserad visuell servo: där + L är en approximation av interaktionsmatrisen L s [18]. För att genomföra detta avancerade experiment är det först och främst nödvändigt att få en vyprojicering från robotens sluteffektor. Därför har Ejs ett alternativ som gör det möjligt för användare att få projicering av den virtuella kamera som ingår i 3D-robotmiljön. Figur 15 visar den projektion som används för att utveckla algoritmer för bildbehandling. I fönstret "Virtuell bild", det kan ses punkt funktioner detekteras av det virtuella objektet (se figur 15 ). Figur 16 visar den slutliga applikationen utvecklad som implementerar en visuell-servoing algoritm som använder punkter som visuella funktioner. I den övre delen av figur 16, fönstret "Virtual Camera" projicerar den virtuella arbetsytan för EIH virtuella kameran. I fönstret "Virtual Image", det kan ses hörnfunktioner som upptäcks med hjälp av SUSAN algoritm. Programmet visar också 3D-banan som utförs av den virtuella roboten för att nå de slutliga önskade funktionerna s* (se ekvationerna (3) och (5)). Slutligen visas hastighetsmodulens utveckling för att validera den korrekta konvergensen av den visuella servouppgiften eftersom den hastighet som beskrivs i (5) måste vara 0 i slutet av banan (bildfelet (3) regleras till 0). Att utveckla en VL hjälper eleverna att ansluta den matematiska modellen till det verkliga systemet de försöker simulera [2]. Dessutom förstärker designen och utförandet av simuleringsexperiment studenternas självförtroende när det gäller att hantera modelleringsteknik och gör dem aktiva aktörer i inlärningsprocessen, vilket ökar motivationen till fortsatt lärande [4]. Av dessa skäl har författare till denna uppsats använt denna metod för att tillåta både studenter på grund- och avancerad nivå och lärare att utveckla sina egna robotiska VL. organiserade så att robotkoncept presenteras i de teoretiska lektionerna på ett sätt som är direkt parallellt med skapandet av en robotisk VL med hjälp av Ejs och EjsRL för att göra dessa begrepp mer konkreta. Dessutom används programvaruplattformen av Computer Science-studenter för deras slutprojekt för att uppfylla sina stora krav, av doktorander för deras forskningsexperiment och av lärare för utveckling av inlärningsmaterial. Datavetenskapsingenjörer har vanligtvis ingen bakgrund inom robotik. För att lösa detta handikapp är kursen strukturerad så att studenterna utvecklar den robotiska VL på ett parallellt sätt att de lär sig robotikteori. I synnerhet är de teoretiska kurserna organiserade enligt följande: De praktiska experimenten använder den programvaruplattform som presenteras här. Den utbildningsmetod som föreslås för praktiker baseras på följande kriterier: 1) Studenterna måste välja ett specifikt verkligt robotsystem och beräkna sina DH-parametrar. Dessutom måste robotens 3D-länkar modelleras med hjälp av CAD-designprogramvara. Dessa 3D solids exporteras till VRML/3DS-filer för Ejs miljö. 2) Studenterna är skyldiga att inkludera kinematiken simulering i VL. 3) Studenterna måste utveckla flera vägplaneringsalgoritmer för den valda roboten. 4) Studenterna måste implementera dynamik och programmeringsfunktioner i VL.  För att utvärdera undervisningstekniken genomfördes en studie för att verifiera dess användbarhet och effektivitet. Frågeformuläret fokuserades på två huvudfrågor: 1) Uppfattning av studenterna om om de har lärt sig robotik i kursen och graden av enighet med några uttalanden om kursens effektivitet (I1). 2) Utveckling av egna VL i inlärningsprocessen med hjälp av Ejs och EjsRL (I2). Tabell 2 visar både enkäten som gjorts och de resultat som erhållits över 30 studenter från kursen. Svaren var betygsatta på en fem poängs Likert skala rankning från starkt samtycke (1) till starkt oense (5). Analysera resultaten, mer än hälften av studenterna tror att de har lärt sig mer i den här kursen än i en annan kurs om robotik. Dessutom rekommenderade de kursen till andra datavetenskapsstudenter och läxorna var till hjälp (fråga I1). Dessutom tycker nästan alla studenter att VL är ett effektivt verktyg i inlärningsprocessen och att designa sin egen robotiska VL med hjälp av Ejs och EjsRL har varit till hjälp för att förstå robotkoncepten och uppmuntra dem att lära sig robotik (fråga I2). Dessutom gjordes en jämförelse mellan slutbetygen för de studenter som studerade ämnet med hjälp av programvaruverktyget som presenteras i denna uppsats (akademiskt år 2010) och den studerande som inte gjorde det (akademiskt år 2009). Som framgår av figur 17 finns det ett stort antal studenter som fick bättre betyg med hjälp av programvaruplattformen: 20% mer med A-kvalificering och 10% mer med B-kvalificering. Den globala kvalifikationen mellan två år ökade från 7.1 till 8.3. Slutligen uppmuntrades studenterna i enkäten att skriva kommentarer om kursen. De flesta av kommentarerna var sådana som: "Jag gillade betoningen på simuleringar resultat snarare än den matematiska modellen av robotsystemet" eller "Denna kurs har gett mig en hel del insikt Datavetenskap studenter kunde utveckla avancerade VLs av verkliga robotsystem såsom en Barrett Hand [20] (figur 18a), en Scorbot RX av 5 DOF (figur 18b ) och en Mitsubishi PA-10 av 6 DOF (figur 18c). En doktorand utvecklade ett virtuellt multi-robotsystem som består av två manipulatorer, eftersom EjsRL gör det möjligt för användare att föra in olika robotobjekt i Ejs miljö (figur 18e ). Slutligen kunde en lärare skapa en visuell servokontroll av redundant robot på 7 DOF (figur 18d ). Dessa komplexa VL kan ses på www.aurova.ua.es/rcv. I detta dokument har en gratis Java-baserad mjukvaruplattform för skapandet av avancerade robot- och datorseendeapplikationer presenterats. Detta nya verktyg består av två block: 1) ett högnivå Java bibliotek som heter EjsRL, som ger en komplett funktionell ram för modellering och simulering av robotsystem; 2) Ejs, ett open-source-verktyg som ger fullt grafiskt gränssnitt stöd. Integrationen av båda delarna gör det enkelt att skapa komplexa och avancerade robottillämpningar. EjsRL gör det möjligt för användare att modellera komplexa robotsystem inom Ejs. För modellering av godtyckliga manipulatorer för seriella länkar behöver användarna bara ange sina DH-parametrar och sina fysiska egenskaper. Därefter skapar Java plattformen ett objekt som har inbäddat allt robotbeteende (kinematics, dynamik, programmering, etc.). Det användarvänliga gränssnittet hos Ejs gör det möjligt för användare att enkelt och snabbt skapa avancerade Java-applikationer. Förutom sitt fullständiga datorgrafikstöd tillhandahåller denna programvara flera avancerade funktioner som VRML, 3DS och OBJ extern filimport. Alla dessa funktioner kompletteras med ett brett utbud av objekt och operationer för robotik som tillhandahålls av EjsRL. Därför har tidningen visat de enkla stegen för att designa och utveckla en komplett VL för Robotics utbildning. Implementeringsmetoden för alla Robotics algoritmer har beskrivits som en enkel utveckling som kan göras av alla användare. Dessutom har en undervisningsmetod använts med hjälp av det framlagda tillvägagångssättet. Detta utbildningsramverk krävde att studenterna utvecklade sina egna robotiska VL för att hjälpa dem att lära sig och behålla robotik. Resultaten visar att studenterna tror att designen av hans/hennes egna robotiska VL med hjälp av Ejs och EjsRL har varit till hjälp för att förstå robotkoncepten och uppmuntra dem att lära sig robotik. Slutligen är det viktigt att påpeka att olika användare (studenter och lärare) kunde utveckla applikationer på hög nivå som illustrerar hur kraftfull den föreslagna mjukvaruplattformen är.  Erkännanden EjsRL kan erhållas från www.aurova.ua.es/rcv. På denna webbsida finns mycket information om hur man använder biblioteket och läsarna kan utföra alla exempel som visas i tidningen. Ejs kan laddas ner från http://fem.um.es/EjsWiki/ där läsare kan experimentera med många simuleringar som utvecklats med denna programvara. För att kunna använda dem i alla operativa system är det nödvändigt att installera två
Ett annat exempel är REF, där en Java-plattform utvecklas för att lära ut robotik.
Java software platform for the development of advanced robotic virtual laboratories
{'venue': 'Comp. Applic. in Engineering Education', 'journal': 'Comp. Applic. in Engineering Education', 'mag_field_of_study': ['Engineering', 'Computer Science']}