Primeramente el Robot que se va a utilizar es el P3-DX, se va a trabajar con ARIA que el modulo encargado de los movimientos de robot viéndolo de la manera mas simple como se lo esta utilizando para este ejemplo; el programa tiene algunas fallas en la utilización de API de ARIA ya que puede ser mejorado, pero sirve para mostrar hasta donde se puede encontrar Python "También esta para C y Java de SUN (ORACLE si claro) ".
Foto tomada la de pagina de mobilerobots
Las librerías necesarias se las puede encontrar en
http://robots.mobilerobots.com/wiki/ARIA
No olvidar en el codigo que esta acontinuacion respetar las sangrias en condicionantes if y en las declaraciones de funciones
Mas adelante subire un video de este ejemplo funcionando (Apenas lo encuentre)
from AriaPy import *
import sys
def posicion():
robot.lock()
pose = robot.getPose();
print "La posicion del robot: (", pose.x, ",", pose.y, ",", pose.th, ")"
robot.unlock()
def movimiento(movi):
robot.lock()
print "El robot se va a mover "+str(movi)+" mm"
robot.move(movi)
robot.unlock()
def rotar(rot):
robot.lock()
print "El robot va a rotar "+str(rot)+" grados"
robot.setHeading(rot)
robot.unlock()
def activaMotores():
robot.lock()
robot.enableMotors()
robot.unlock()
# Global library initialization, just like the C++ API:
Aria.init()
# Create a robot object:
robot = ArRobot()
# Create a "simple connector" object and connect to either the simulator
# or the robot. Unlike the C++ API which takes int and char* pointers,
# the Python constructor just takes argv as a list.
print "Connecting..."
con = ArSimpleConnector(sys.argv)
if not con.parseArgs():
con.logOptions()
sys.exit(1)
if not con.connectRobot(robot):
print "Could not connect to robot, exiting"
sys.exit(1)
# Run the robot threads in the background:
print "Running..."
robot.runAsync(1)
print "El voltaje de la vateria es: "+str(robot.getBatteryVoltage())
activaMotores()
posicion()
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(-45)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(-90)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(225)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(180)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000) #Son 5 seg
rotar(135)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000)
rotar(90)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000)
rotar(45)
ArUtil.sleep(5000) #Son 5 seg
movimiento(300)
ArUtil.sleep(5000)
rotar(0)
ArUtil.sleep(5000) #Son 5 seg
posicion()
print "Fin!"
Aria.shutdown()