SlideShare una empresa de Scribd logo
1 de 16
Manual de Introducción a la Programación para
el Robot Amigo Bot
Introducción a la Programación del AmigoBot
En este documento se redacta la introducción a la programación del AmigoBot en
Visual C++ 2008. Pondré los pasos que tuve que seguir según mi experiencia
cuando tuve que programar para este tipo de robot.
Primero que antes recomiendo leer la documentación acerca del robot. Esta:
http://www.mobilerobots.com/ResearchRobots/AmigoBot.aspx
Se va a necesitar el siguiente software:
 Microsoft Visual C++ 2008 Express Edition. (Plataforma en la cual nos
permitirá crear nuestro programa que permitirá manipular el robot
AmigoBot)
http://download.microsoft.com/download/A/5/4/A54BADB6-9C3F-478D-8657-93B3FC9FE62D/vcsetup.exe
 Aria: las versiones ARIA-2.7.5.2 y ARIA-2.7.3. (Software que nos provee de
proyectos y ejemplos que permiten manipular el AmigoBot)
http://robots.mobilerobots.com/ARIA/download/archives/
 MobileSim. (Software que permite simular el robot)
http://robots.mobilerobots.com/wiki/MobileSim
 Instalar MinGW. (Compilador que provee librerías de c que se usaran para
poder compilar correctamente los programas que se deseen probar en el
robot).
http://sourceforge.net/projects/mingw/files/
Instalación:
NOTA*: durante la instalación de los programas, es preferible no mover las rutas
de los directorios en los cuales se realizara dicha instalación de los programas.
 Iniciamos instalando MinGW.
 Después continuamos con ARIA-2.7.5.2
 Después MobileSim.
 Después Microsoft Visual C++ 2008 Express Edition
Configuración ARIA-2.7.5.2:
En la ruta C:Program FilesMobileRobotsArialib debemos de tener una
librería llamada “AriaDebugVC9”, para lo cual tenemos la versión ARIA-
2.7.3 debemos de instalarla en una ruta por ejemplo como el escritorio, una
vez instalada. …DesktopARIA 2.7.3lib y copiamos el archivo
AriaDebugVC9 de esta versión y la pegamos en la ruta C:Program
FilesMobileRobotsArialib.
Configuración Microsoft Visual C++ 2008 Express Edition
 Abrimos un proyecto o solución:
 Vamos a añadir un proyecto dentro de la solución creada, y así poder
dentro de ese proyecto crear programas que hagan uso de las librerías de
Aria:
Que sea aplicación de consola:
Presionamos OK,y finalizamos:
 Ahora debemos de configurar el proyecto añadido,damos click derecho sobre nuestro proyecto
añadido y seleccionamos propiedades:
Y aparecerá:
Cambiamos la configuración a “All configurations”:
 Ahora en la opción General en la opción “Output Directory”, seleccionamos el lugar donde se
generara los archivos que generara la compilación de nuestro proyecto:
En mi caso lo dejare por defecto:
 Ahora vamos a la opción “link” o “Linker”,y buscamos la sección “General”:
En “Additional Library Dependencies” damos click:
Ubicamos la carpeta en la siguiente ruta “C:Program FilesMobileRobotsArialib”:
Presionamos OK y aplicamos,ahora cambiamos la configuración en “Debug”:
Ahora vamos a la opción “Input” y en la parte de “Additional Dependencies”,añadimos las siguientes:
AriaDebugVC9.lib winmm.lib advapi32.lib ArNetworkingDebugVC9.lib ws2_32.lib
Presionamos OK,y aplicamos.Ahora cambiamos la configuración a “Release”,y ahora añadimos las
siguientes librerías:
AriaVC9.lib winmm.lib advapi32.lib ArNetworkingVC9.lib ws2_32.lib
 Ahora cambiamos la configuración a “All Configurations” yen la opción “C/C++” en la parte de
General,seleccionamos la opcion “Additional Include Directories”:
Selecciónanos la siguiente ruta “C:Program FilesMobileRobotsAriainclude”:
 Presionamos OK y aplicamos,ahora solo nos queda configurar la opción de “Code Generation”,la
seleccionamos ycambiamos la configuración a “Debug”:
Cambiamos la opción de “Multithreaded DLL (/MDd)”, a solo “Multithreaded DLL”,y aplicamos
cambios:
 Cambiamos la configuración a “Release” y repetimos el anterior proceso:
 Con esto finalizamos la parte de configuración.
Compilando Primer Programa de Muestra Demo
 Se abre el archivo demo.cpp :
 La construcción del proyecto es opcional ya que viene el proyecto compilado,si se quiere construir el
proyecto nuevamente lo hacemos en la opción:
Al finalizar mostrara el siguiente mensaje:
Ahora ubicamos la ruta del demoVC9.exe:
Solo nos resta abrir el simulador,elegimos el tipo de robot “amigo-sh”:
Ahora elegimos cualquier tipo de mapa y lo cargamos:
Ahora podemos ejecutar el archivo “demoVC9.exe”, y podemos ver de qué forma actúa el robot en el
simulador:
Podemos iniciar a mover el robot presionando las teclas de control arriba, abajo, izquierda y derecha.
Creando Nuestro Propio Programa
Se puede realizar tomando base en el código de demo.cpp. Si queremos que nuestro programa se
mueva a una velocidad fija y se detenga cuando detecte un objeto a una cierta distancia se realiza de la
siguiente forma.
Para determinar el rango de medición de cada sensor debemos de tomar la posición según la siguiente
imagen:
Se puede determinar el rango de medición de cada sensor sonar del robot con el comando
“robot.getSonarReading( Numero del sensor ) -> getRange()”. No hay que olvidar que el
robot tiene 8 sensores asignados del 0 al 7, el sensor 0 está ubicado a +90° del robot, el sensor 1 a +44°,
el sensor 2 a +12°, el sensor 3 a -12°, el sensor 4 a -44°, el sensor 5 a -90°, el sensor 6 a -144° y el
sensor 7 a +144°. Dicho comando retornara el objeto detectado en milímetros. De acuerdo a la
documentación del robot, cada sensor puede detectar objetos a una distancia de 5000 milímetros, es
decir 5 metros.
La velocidad que se puede asignar al robot se asigna por pulsos sobre segundo. A través del comando:
“robot.setVel( 100 )” y se asigna los pulsos que se desea que el robot tenga.
El código siguiente contiene los comandos básicos que permiten la conexión al robot físico. El simulador
contiene fallas en comparación del robotreal.Se debe de tomar en cuenta que el simulador se comunica
a través de una red local y el tiempo de comunicación es 0mili segundos. En cambio sí se conecta al
robot real el tiempo mínimo esperado es de al menos 200 milisegundos.
En caso de que el programa este realizando una acción diferente en un tiempo menor a 200
milisegundos, podría el robot bloquearse, es decir el robot cuando reciba 1 acción, no la podrá ejecutar
porque ya recibió otra y asísucesivamente.En caso del simulador si realizar dichas acciones, pero en el
robot real no.
El código del programa es el siguiente, lo copiamos y lo pegamos en nuestro proyecto ejemplo creado:
#include "Aria.h"
using namespace std;
int main(int argc, char** argv){
Aria::init();
ArArgumentParser parser(&argc, argv);
parser.loadDefaultArguments();
ArRobot robot;
ArRobotConnector robotConnector(&parser, &robot);
ArAnalogGyro gyro(&robot);
if (!robotConnector.connectRobot()){
if (!parser.checkHelpAndWarnUnparsed()){
ArLog::log(ArLog::Terse, "Could not connect to robot, will not have parameter file so
options displayed later may not include everything");
}
// otherwise abort
else
{
ArLog::log(ArLog::Terse, "Error, could not connect to robot.");
Aria::logOptions();
Aria::exit(1);
}
}
if(!robot.isConnected()){
ArLog::log(ArLog::Terse, "Internal error: robot connector succeeded but
ArRobot::isConnected() is false!");
}
ArLaserConnector laserConnector(&parser, &robot, &robotConnector);
ArCompassConnector compassConnector(&parser);
if (!Aria::parseArgs() || !parser.checkHelpAndWarnUnparsed()) {
Aria::logOptions();
Aria::exit(1);
return 1;
}
ArSonarDevice sonarDev;
ArKeyHandler keyHandler;
Aria::setKeyHandler(&keyHandler);
robot.attachKeyHandler(&keyHandler);
printf("You may press escape to exitn");
robot.addRangeDevice(&sonarDev);
if (!laserConnector.connectLasers(false, false, true)){
printf("Could not connect to lasers... exitingn");
Aria::exit(2);
}
robot.runAsync(true);
// Create and connect to the compass if the robot has one.
ArTCM2 *compass = compassConnector.create(&robot);
if(compass && !compass->blockingConnect()) {
compass = NULL;
}
ArUtil::sleep(1000);
robot.lock();
// turn on the motors
robot.comInt(ArCommands::ENABLE, 1);
robot.unlock();
// Ponemos una velocidad constante al robot.
robot.setVel( 100 );
while( true ){
// Se espera 100 milisegundos a que el robot retorne las lecturas
// y asi tomar una desicion de que realizar
ArUtil::sleep( 100 );
// Si queremos que se detenga el robot cuando detecte un objeto en
// en los sensores 2 y 3 a una distancia de 1 metro el comando seria
// el siguiente:
if( robot.getSonarReading( 2 ) -> getRange() < 1000|| robot.getSonarReading( 3 ) ->
getRange() < 1000 ){
robot.setVel( 0 );
}
}
robot.waitForRunExit();
Aria::exit(0);
return 0;
}

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Mplab
Mplab Mplab
Mplab
 
Uso Mplab
Uso MplabUso Mplab
Uso Mplab
 
Programación en c primer programa en c
Programación en c primer programa en cProgramación en c primer programa en c
Programación en c primer programa en c
 
Introduccion mplab
Introduccion mplabIntroduccion mplab
Introduccion mplab
 
Programa c++
Programa c++Programa c++
Programa c++
 
Manual de pseint
Manual de pseintManual de pseint
Manual de pseint
 
Javaintroduccion 2010
Javaintroduccion 2010Javaintroduccion 2010
Javaintroduccion 2010
 
Clase
ClaseClase
Clase
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Tutorial mplab 6x[1]
Tutorial mplab 6x[1]Tutorial mplab 6x[1]
Tutorial mplab 6x[1]
 
PSEINT INTRODUCCION
PSEINT INTRODUCCIONPSEINT INTRODUCCION
PSEINT INTRODUCCION
 
Un proyecto con fujitsu power cobol
Un proyecto con fujitsu power cobolUn proyecto con fujitsu power cobol
Un proyecto con fujitsu power cobol
 
Primer programa en 1
Primer programa en 1Primer programa en 1
Primer programa en 1
 
De algoritmo a programa en c++
De algoritmo a programa en c++De algoritmo a programa en c++
De algoritmo a programa en c++
 
Tabbed pane y excepciones
Tabbed pane y excepcionesTabbed pane y excepciones
Tabbed pane y excepciones
 
Presentación de celda virtual Robotcell / virtual cell using robotcell
Presentación de celda virtual Robotcell / virtual cell using robotcellPresentación de celda virtual Robotcell / virtual cell using robotcell
Presentación de celda virtual Robotcell / virtual cell using robotcell
 
Applets
AppletsApplets
Applets
 
Applets
AppletsApplets
Applets
 
Funciones
FuncionesFunciones
Funciones
 

Similar a Programación AmigoBot

1+ +introduccion+al+code warrior+para+hcs08
1+ +introduccion+al+code warrior+para+hcs081+ +introduccion+al+code warrior+para+hcs08
1+ +introduccion+al+code warrior+para+hcs08Dario Klug
 
Ingeniería inversa básica en android tomo ii
Ingeniería inversa básica en android tomo iiIngeniería inversa básica en android tomo ii
Ingeniería inversa básica en android tomo iiFreelance
 
Como operar con_code...
Como operar con_code...Como operar con_code...
Como operar con_code...Luis TC
 
Como operar con code...
Como operar con  code...Como operar con  code...
Como operar con code...Luis TC
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandboxTensor
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandboxTensor
 
Cuckoosandbox
CuckoosandboxCuckoosandbox
CuckoosandboxTensor
 
Comprometiendo dispositivos con software legal - H-C0N 2018
Comprometiendo dispositivos con software legal - H-C0N 2018Comprometiendo dispositivos con software legal - H-C0N 2018
Comprometiendo dispositivos con software legal - H-C0N 2018Matías Moreno Cárdenas
 
Introducción al curso de C.docx
Introducción al curso de C.docxIntroducción al curso de C.docx
Introducción al curso de C.docxNidia Castro Campo
 
Unidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos movilesUnidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos movileskabis_yadira
 
Meterpreter en android el desembarco en tu smartphone
Meterpreter en android   el desembarco en tu smartphoneMeterpreter en android   el desembarco en tu smartphone
Meterpreter en android el desembarco en tu smartphoneJASENT
 

Similar a Programación AmigoBot (20)

Curso de-mcu-proteus
Curso de-mcu-proteusCurso de-mcu-proteus
Curso de-mcu-proteus
 
53592868 curso-de-mcu-proteus
53592868 curso-de-mcu-proteus53592868 curso-de-mcu-proteus
53592868 curso-de-mcu-proteus
 
Labview & pic
Labview & picLabview & pic
Labview & pic
 
1+ +introduccion+al+code warrior+para+hcs08
1+ +introduccion+al+code warrior+para+hcs081+ +introduccion+al+code warrior+para+hcs08
1+ +introduccion+al+code warrior+para+hcs08
 
Ingeniería inversa básica en android tomo ii
Ingeniería inversa básica en android tomo iiIngeniería inversa básica en android tomo ii
Ingeniería inversa básica en android tomo ii
 
Como operar con_code...
Como operar con_code...Como operar con_code...
Como operar con_code...
 
Como operar con code...
Como operar con  code...Como operar con  code...
Como operar con code...
 
Como operar con code...
Como operar con  code...Como operar con  code...
Como operar con code...
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandbox
 
Cuckoo sandbox
Cuckoo sandboxCuckoo sandbox
Cuckoo sandbox
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
2 poo u1 1 Introduccion
2 poo u1 1 Introduccion2 poo u1 1 Introduccion
2 poo u1 1 Introduccion
 
37975756-Guia-de-C
37975756-Guia-de-C37975756-Guia-de-C
37975756-Guia-de-C
 
Cuckoosandbox
CuckoosandboxCuckoosandbox
Cuckoosandbox
 
Comprometiendo dispositivos con software legal - H-C0N 2018
Comprometiendo dispositivos con software legal - H-C0N 2018Comprometiendo dispositivos con software legal - H-C0N 2018
Comprometiendo dispositivos con software legal - H-C0N 2018
 
Practica adicional
Practica adicionalPractica adicional
Practica adicional
 
Python en Android
Python en AndroidPython en Android
Python en Android
 
Introducción al curso de C.docx
Introducción al curso de C.docxIntroducción al curso de C.docx
Introducción al curso de C.docx
 
Unidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos movilesUnidad 5 Programación de dispositivos moviles
Unidad 5 Programación de dispositivos moviles
 
Meterpreter en android el desembarco en tu smartphone
Meterpreter en android   el desembarco en tu smartphoneMeterpreter en android   el desembarco en tu smartphone
Meterpreter en android el desembarco en tu smartphone
 

Más de jhonsoomelol

Acciones para AmigoBot
Acciones para AmigoBotAcciones para AmigoBot
Acciones para AmigoBotjhonsoomelol
 
Celulas hematopoyeticas
Celulas hematopoyeticasCelulas hematopoyeticas
Celulas hematopoyeticasjhonsoomelol
 
Valoracion soplo cardiaco en pediatria
Valoracion soplo cardiaco en pediatriaValoracion soplo cardiaco en pediatria
Valoracion soplo cardiaco en pediatriajhonsoomelol
 
Anexo II tratamiento farmacológico de las cefaleas primarias y algias faciales
Anexo II tratamiento farmacológico de las cefaleas primarias y algias facialesAnexo II tratamiento farmacológico de las cefaleas primarias y algias faciales
Anexo II tratamiento farmacológico de las cefaleas primarias y algias facialesjhonsoomelol
 
Anexo I Clasificacion internacional de las cefaleas, 2da edicion (IHS,2004)
Anexo I Clasificacion internacional de las cefaleas, 2da edicion (IHS,2004)Anexo I Clasificacion internacional de las cefaleas, 2da edicion (IHS,2004)
Anexo I Clasificacion internacional de las cefaleas, 2da edicion (IHS,2004)jhonsoomelol
 
Neuralgias craneales y dolor facial
Neuralgias craneales y dolor facialNeuralgias craneales y dolor facial
Neuralgias craneales y dolor facialjhonsoomelol
 
Cefaleas secundarias
Cefaleas secundariasCefaleas secundarias
Cefaleas secundariasjhonsoomelol
 
Otras cefaleas primarias
Otras cefaleas primariasOtras cefaleas primarias
Otras cefaleas primariasjhonsoomelol
 
Otras cefaleas trigémino autonómicas
Otras cefaleas trigémino autonómicasOtras cefaleas trigémino autonómicas
Otras cefaleas trigémino autonómicasjhonsoomelol
 
Cefalea en racimos
Cefalea en racimosCefalea en racimos
Cefalea en racimosjhonsoomelol
 
Cefalea de tensión
Cefalea de tensiónCefalea de tensión
Cefalea de tensiónjhonsoomelol
 
Aproximación diagnóstica en la cefalea
Aproximación diagnóstica en la cefaleaAproximación diagnóstica en la cefalea
Aproximación diagnóstica en la cefaleajhonsoomelol
 
Análisis y realización de analizador sintáctico [no programacion]
Análisis y realización de analizador sintáctico [no programacion]Análisis y realización de analizador sintáctico [no programacion]
Análisis y realización de analizador sintáctico [no programacion]jhonsoomelol
 
Instalación de power jack genérico en una laptop
Instalación de power jack genérico en una laptopInstalación de power jack genérico en una laptop
Instalación de power jack genérico en una laptopjhonsoomelol
 
Quimica-Laboratorio Practica Conocimiento del material del laboratorio
Quimica-Laboratorio Practica Conocimiento del material del laboratorioQuimica-Laboratorio Practica Conocimiento del material del laboratorio
Quimica-Laboratorio Practica Conocimiento del material del laboratoriojhonsoomelol
 
Ecuaciones Diferenciales con Aplicaciones 2da.Ed. Dennis G.Zill
Ecuaciones Diferenciales con Aplicaciones  2da.Ed.  Dennis G.ZillEcuaciones Diferenciales con Aplicaciones  2da.Ed.  Dennis G.Zill
Ecuaciones Diferenciales con Aplicaciones 2da.Ed. Dennis G.Zilljhonsoomelol
 

Más de jhonsoomelol (18)

Acciones para AmigoBot
Acciones para AmigoBotAcciones para AmigoBot
Acciones para AmigoBot
 
Cirugia tomo 2
Cirugia tomo 2Cirugia tomo 2
Cirugia tomo 2
 
Celulas hematopoyeticas
Celulas hematopoyeticasCelulas hematopoyeticas
Celulas hematopoyeticas
 
Valoracion soplo cardiaco en pediatria
Valoracion soplo cardiaco en pediatriaValoracion soplo cardiaco en pediatria
Valoracion soplo cardiaco en pediatria
 
Anexo II tratamiento farmacológico de las cefaleas primarias y algias faciales
Anexo II tratamiento farmacológico de las cefaleas primarias y algias facialesAnexo II tratamiento farmacológico de las cefaleas primarias y algias faciales
Anexo II tratamiento farmacológico de las cefaleas primarias y algias faciales
 
Anexo I Clasificacion internacional de las cefaleas, 2da edicion (IHS,2004)
Anexo I Clasificacion internacional de las cefaleas, 2da edicion (IHS,2004)Anexo I Clasificacion internacional de las cefaleas, 2da edicion (IHS,2004)
Anexo I Clasificacion internacional de las cefaleas, 2da edicion (IHS,2004)
 
Neuralgias craneales y dolor facial
Neuralgias craneales y dolor facialNeuralgias craneales y dolor facial
Neuralgias craneales y dolor facial
 
Cefaleas secundarias
Cefaleas secundariasCefaleas secundarias
Cefaleas secundarias
 
Otras cefaleas primarias
Otras cefaleas primariasOtras cefaleas primarias
Otras cefaleas primarias
 
Otras cefaleas trigémino autonómicas
Otras cefaleas trigémino autonómicasOtras cefaleas trigémino autonómicas
Otras cefaleas trigémino autonómicas
 
Cefalea en racimos
Cefalea en racimosCefalea en racimos
Cefalea en racimos
 
Cefalea de tensión
Cefalea de tensiónCefalea de tensión
Cefalea de tensión
 
Migraña
MigrañaMigraña
Migraña
 
Aproximación diagnóstica en la cefalea
Aproximación diagnóstica en la cefaleaAproximación diagnóstica en la cefalea
Aproximación diagnóstica en la cefalea
 
Análisis y realización de analizador sintáctico [no programacion]
Análisis y realización de analizador sintáctico [no programacion]Análisis y realización de analizador sintáctico [no programacion]
Análisis y realización de analizador sintáctico [no programacion]
 
Instalación de power jack genérico en una laptop
Instalación de power jack genérico en una laptopInstalación de power jack genérico en una laptop
Instalación de power jack genérico en una laptop
 
Quimica-Laboratorio Practica Conocimiento del material del laboratorio
Quimica-Laboratorio Practica Conocimiento del material del laboratorioQuimica-Laboratorio Practica Conocimiento del material del laboratorio
Quimica-Laboratorio Practica Conocimiento del material del laboratorio
 
Ecuaciones Diferenciales con Aplicaciones 2da.Ed. Dennis G.Zill
Ecuaciones Diferenciales con Aplicaciones  2da.Ed.  Dennis G.ZillEcuaciones Diferenciales con Aplicaciones  2da.Ed.  Dennis G.Zill
Ecuaciones Diferenciales con Aplicaciones 2da.Ed. Dennis G.Zill
 

Último

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
PRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potenciaPRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potenciazacariasd49
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfIsbelRodrguez
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfrolandolazartep
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Francisco Javier Mora Serrano
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxLuisvila35
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPJosLuisFrancoCaldern
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfpaola110264
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilDissneredwinPaivahua
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023ANDECE
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadANDECE
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfErikNivor
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfMirthaFernandez12
 
Uso y Manejo de Extintores Lucha contra incendios
Uso y Manejo de Extintores Lucha contra incendiosUso y Manejo de Extintores Lucha contra incendios
Uso y Manejo de Extintores Lucha contra incendioseduardochavezg1
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)ssuser6958b11
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUMarcosAlvarezSalinas
 
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfPPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfZamiertCruzSuyo
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAJAMESDIAZ55
 

Último (20)

Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
PRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potenciaPRESENTACION DE CLASE. Factor de potencia
PRESENTACION DE CLASE. Factor de potencia
 
Historia de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdfHistoria de la Arquitectura II, 1era actividad..pdf
Historia de la Arquitectura II, 1era actividad..pdf
 
Linealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdfLinealización de sistemas no lineales.pdf
Linealización de sistemas no lineales.pdf
 
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
Hanns Recabarren Diaz (2024), Implementación de una herramienta de realidad v...
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptxAMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
AMBIENTES SEDIMENTARIOS GEOLOGIA TIPOS .pptx
 
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIPSEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
SEGURIDAD EN CONSTRUCCION PPT PARA EL CIP
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 
CLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civilCLASE - 01 de construcción 1 ingeniería civil
CLASE - 01 de construcción 1 ingeniería civil
 
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
Centro Integral del Transporte de Metro de Madrid (CIT). Premio COAM 2023
 
SOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidadSOUDAL: Soluciones de sellado, pegado y hermeticidad
SOUDAL: Soluciones de sellado, pegado y hermeticidad
 
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdfCONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
CONSTRUCCIONES II - SEMANA 01 - REGLAMENTO NACIONAL DE EDIFICACIONES.pdf
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
 
Uso y Manejo de Extintores Lucha contra incendios
Uso y Manejo de Extintores Lucha contra incendiosUso y Manejo de Extintores Lucha contra incendios
Uso y Manejo de Extintores Lucha contra incendios
 
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
VIRUS FITOPATÓGENOS (GENERALIDADES EN PLANTAS)
 
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERUSesion 02 Patentes REGISTRO EN INDECOPI PERU
Sesion 02 Patentes REGISTRO EN INDECOPI PERU
 
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdfPPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
PPT ASISTENCIA TECNICA PRESENTACIÓN FT- ET.pdf
 
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESAIPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
IPERC Y ATS - SEGURIDAD INDUSTRIAL PARA TODA EMPRESA
 

Programación AmigoBot

  • 1. Manual de Introducción a la Programación para el Robot Amigo Bot
  • 2. Introducción a la Programación del AmigoBot En este documento se redacta la introducción a la programación del AmigoBot en Visual C++ 2008. Pondré los pasos que tuve que seguir según mi experiencia cuando tuve que programar para este tipo de robot. Primero que antes recomiendo leer la documentación acerca del robot. Esta: http://www.mobilerobots.com/ResearchRobots/AmigoBot.aspx Se va a necesitar el siguiente software:  Microsoft Visual C++ 2008 Express Edition. (Plataforma en la cual nos permitirá crear nuestro programa que permitirá manipular el robot AmigoBot) http://download.microsoft.com/download/A/5/4/A54BADB6-9C3F-478D-8657-93B3FC9FE62D/vcsetup.exe  Aria: las versiones ARIA-2.7.5.2 y ARIA-2.7.3. (Software que nos provee de proyectos y ejemplos que permiten manipular el AmigoBot) http://robots.mobilerobots.com/ARIA/download/archives/  MobileSim. (Software que permite simular el robot) http://robots.mobilerobots.com/wiki/MobileSim  Instalar MinGW. (Compilador que provee librerías de c que se usaran para poder compilar correctamente los programas que se deseen probar en el robot). http://sourceforge.net/projects/mingw/files/
  • 3. Instalación: NOTA*: durante la instalación de los programas, es preferible no mover las rutas de los directorios en los cuales se realizara dicha instalación de los programas.  Iniciamos instalando MinGW.  Después continuamos con ARIA-2.7.5.2  Después MobileSim.  Después Microsoft Visual C++ 2008 Express Edition Configuración ARIA-2.7.5.2: En la ruta C:Program FilesMobileRobotsArialib debemos de tener una librería llamada “AriaDebugVC9”, para lo cual tenemos la versión ARIA- 2.7.3 debemos de instalarla en una ruta por ejemplo como el escritorio, una vez instalada. …DesktopARIA 2.7.3lib y copiamos el archivo AriaDebugVC9 de esta versión y la pegamos en la ruta C:Program FilesMobileRobotsArialib. Configuración Microsoft Visual C++ 2008 Express Edition  Abrimos un proyecto o solución:
  • 4.  Vamos a añadir un proyecto dentro de la solución creada, y así poder dentro de ese proyecto crear programas que hagan uso de las librerías de Aria: Que sea aplicación de consola: Presionamos OK,y finalizamos:
  • 5.  Ahora debemos de configurar el proyecto añadido,damos click derecho sobre nuestro proyecto añadido y seleccionamos propiedades: Y aparecerá: Cambiamos la configuración a “All configurations”:
  • 6.  Ahora en la opción General en la opción “Output Directory”, seleccionamos el lugar donde se generara los archivos que generara la compilación de nuestro proyecto: En mi caso lo dejare por defecto:  Ahora vamos a la opción “link” o “Linker”,y buscamos la sección “General”: En “Additional Library Dependencies” damos click: Ubicamos la carpeta en la siguiente ruta “C:Program FilesMobileRobotsArialib”:
  • 7. Presionamos OK y aplicamos,ahora cambiamos la configuración en “Debug”: Ahora vamos a la opción “Input” y en la parte de “Additional Dependencies”,añadimos las siguientes: AriaDebugVC9.lib winmm.lib advapi32.lib ArNetworkingDebugVC9.lib ws2_32.lib
  • 8. Presionamos OK,y aplicamos.Ahora cambiamos la configuración a “Release”,y ahora añadimos las siguientes librerías: AriaVC9.lib winmm.lib advapi32.lib ArNetworkingVC9.lib ws2_32.lib  Ahora cambiamos la configuración a “All Configurations” yen la opción “C/C++” en la parte de General,seleccionamos la opcion “Additional Include Directories”:
  • 9. Selecciónanos la siguiente ruta “C:Program FilesMobileRobotsAriainclude”:  Presionamos OK y aplicamos,ahora solo nos queda configurar la opción de “Code Generation”,la seleccionamos ycambiamos la configuración a “Debug”: Cambiamos la opción de “Multithreaded DLL (/MDd)”, a solo “Multithreaded DLL”,y aplicamos cambios:
  • 10.  Cambiamos la configuración a “Release” y repetimos el anterior proceso:  Con esto finalizamos la parte de configuración.
  • 11. Compilando Primer Programa de Muestra Demo  Se abre el archivo demo.cpp :  La construcción del proyecto es opcional ya que viene el proyecto compilado,si se quiere construir el proyecto nuevamente lo hacemos en la opción: Al finalizar mostrara el siguiente mensaje: Ahora ubicamos la ruta del demoVC9.exe:
  • 12. Solo nos resta abrir el simulador,elegimos el tipo de robot “amigo-sh”: Ahora elegimos cualquier tipo de mapa y lo cargamos:
  • 13. Ahora podemos ejecutar el archivo “demoVC9.exe”, y podemos ver de qué forma actúa el robot en el simulador: Podemos iniciar a mover el robot presionando las teclas de control arriba, abajo, izquierda y derecha.
  • 14. Creando Nuestro Propio Programa Se puede realizar tomando base en el código de demo.cpp. Si queremos que nuestro programa se mueva a una velocidad fija y se detenga cuando detecte un objeto a una cierta distancia se realiza de la siguiente forma. Para determinar el rango de medición de cada sensor debemos de tomar la posición según la siguiente imagen: Se puede determinar el rango de medición de cada sensor sonar del robot con el comando “robot.getSonarReading( Numero del sensor ) -> getRange()”. No hay que olvidar que el robot tiene 8 sensores asignados del 0 al 7, el sensor 0 está ubicado a +90° del robot, el sensor 1 a +44°, el sensor 2 a +12°, el sensor 3 a -12°, el sensor 4 a -44°, el sensor 5 a -90°, el sensor 6 a -144° y el sensor 7 a +144°. Dicho comando retornara el objeto detectado en milímetros. De acuerdo a la documentación del robot, cada sensor puede detectar objetos a una distancia de 5000 milímetros, es decir 5 metros. La velocidad que se puede asignar al robot se asigna por pulsos sobre segundo. A través del comando: “robot.setVel( 100 )” y se asigna los pulsos que se desea que el robot tenga. El código siguiente contiene los comandos básicos que permiten la conexión al robot físico. El simulador contiene fallas en comparación del robotreal.Se debe de tomar en cuenta que el simulador se comunica a través de una red local y el tiempo de comunicación es 0mili segundos. En cambio sí se conecta al robot real el tiempo mínimo esperado es de al menos 200 milisegundos. En caso de que el programa este realizando una acción diferente en un tiempo menor a 200 milisegundos, podría el robot bloquearse, es decir el robot cuando reciba 1 acción, no la podrá ejecutar porque ya recibió otra y asísucesivamente.En caso del simulador si realizar dichas acciones, pero en el robot real no.
  • 15. El código del programa es el siguiente, lo copiamos y lo pegamos en nuestro proyecto ejemplo creado: #include "Aria.h" using namespace std; int main(int argc, char** argv){ Aria::init(); ArArgumentParser parser(&argc, argv); parser.loadDefaultArguments(); ArRobot robot; ArRobotConnector robotConnector(&parser, &robot); ArAnalogGyro gyro(&robot); if (!robotConnector.connectRobot()){ if (!parser.checkHelpAndWarnUnparsed()){ ArLog::log(ArLog::Terse, "Could not connect to robot, will not have parameter file so options displayed later may not include everything"); } // otherwise abort else { ArLog::log(ArLog::Terse, "Error, could not connect to robot."); Aria::logOptions(); Aria::exit(1); } } if(!robot.isConnected()){ ArLog::log(ArLog::Terse, "Internal error: robot connector succeeded but ArRobot::isConnected() is false!"); } ArLaserConnector laserConnector(&parser, &robot, &robotConnector); ArCompassConnector compassConnector(&parser); if (!Aria::parseArgs() || !parser.checkHelpAndWarnUnparsed()) { Aria::logOptions(); Aria::exit(1); return 1; } ArSonarDevice sonarDev; ArKeyHandler keyHandler; Aria::setKeyHandler(&keyHandler); robot.attachKeyHandler(&keyHandler); printf("You may press escape to exitn"); robot.addRangeDevice(&sonarDev); if (!laserConnector.connectLasers(false, false, true)){ printf("Could not connect to lasers... exitingn"); Aria::exit(2); } robot.runAsync(true); // Create and connect to the compass if the robot has one. ArTCM2 *compass = compassConnector.create(&robot); if(compass && !compass->blockingConnect()) { compass = NULL; } ArUtil::sleep(1000); robot.lock(); // turn on the motors robot.comInt(ArCommands::ENABLE, 1); robot.unlock();
  • 16. // Ponemos una velocidad constante al robot. robot.setVel( 100 ); while( true ){ // Se espera 100 milisegundos a que el robot retorne las lecturas // y asi tomar una desicion de que realizar ArUtil::sleep( 100 ); // Si queremos que se detenga el robot cuando detecte un objeto en // en los sensores 2 y 3 a una distancia de 1 metro el comando seria // el siguiente: if( robot.getSonarReading( 2 ) -> getRange() < 1000|| robot.getSonarReading( 3 ) -> getRange() < 1000 ){ robot.setVel( 0 ); } } robot.waitForRunExit(); Aria::exit(0); return 0; }