This section shows how to get sensors values from ALMemory in Python.
To execute them, modify the robot’s IP adress inside the example file.
# -*- encoding: UTF-8 -*-
from naoqi import ALProxy
import sys
def main(robotIP):
PORT = 9559
# Create proxy to ALMemory
try:
memoryProxy = ALProxy("ALMemory", robotIP, PORT)
except Exception, e:
print "Could not create proxy to ALMemory"
print "Error was: ", e
# Get The Left Foot Force Sensor Values
LFsrFL = memoryProxy.getData("Device/SubDeviceList/LFoot/FSR/FrontLeft/Sensor/Value")
LFsrFR = memoryProxy.getData("Device/SubDeviceList/LFoot/FSR/FrontRight/Sensor/Value")
LFsrBL = memoryProxy.getData("Device/SubDeviceList/LFoot/FSR/RearLeft/Sensor/Value")
LFsrBR = memoryProxy.getData("Device/SubDeviceList/LFoot/FSR/RearRight/Sensor/Value")
print( "Left FSR [Kg] : %.2f %.2f %.2f %.2f" % (LFsrFL, LFsrFR, LFsrBL, LFsrBR) )
# Get The Right Foot Force Sensor Values
RFsrFL = memoryProxy.getData("Device/SubDeviceList/RFoot/FSR/FrontLeft/Sensor/Value")
RFsrFR = memoryProxy.getData("Device/SubDeviceList/RFoot/FSR/FrontRight/Sensor/Value")
RFsrBL = memoryProxy.getData("Device/SubDeviceList/RFoot/FSR/RearLeft/Sensor/Value")
RFsrBR = memoryProxy.getData("Device/SubDeviceList/RFoot/FSR/RearRight/Sensor/Value")
print( "Right FSR [Kg] : %.2f %.2f %.2f %.2f" % (RFsrFL, RFsrFR, RFsrBL, RFsrBR) )
if __name__ == "__main__":
robotIp = "127.0.0.1"
if len(sys.argv) <= 1:
print "Usage python sensors_getFsrValues.py robotIP (optional default: 127.0.0.1)"
else:
robotIp = sys.argv[1]
main(robotIp)
# -*- encoding: UTF-8 -*-
from naoqi import ALProxy
import sys
def main(robotIP):
PORT = 9559
# Create proxy to ALMemory
try:
memoryProxy = ALProxy("ALMemory", robotIP, PORT)
except Exception, e:
print "Could not create proxy to ALMemory"
print "Error was: ", e
# Get the Gyrometers Values
GyrX = memoryProxy.getData("Device/SubDeviceList/InertialSensor/GyrX/Sensor/Value")
GyrY = memoryProxy.getData("Device/SubDeviceList/InertialSensor/GyrY/Sensor/Value")
print ("Gyrometers value X: %.3f, Y: %.3f" % (GyrX, GyrY))
# Get the Accelerometers Values
AccX = memoryProxy.getData("Device/SubDeviceList/InertialSensor/AccX/Sensor/Value")
AccY = memoryProxy.getData("Device/SubDeviceList/InertialSensor/AccY/Sensor/Value")
AccZ = memoryProxy.getData("Device/SubDeviceList/InertialSensor/AccZ/Sensor/Value")
print ("Accelerometers value X: %.3f, Y: %.3f, Z: %.3f" % (AccX, AccY,AccZ))
# Get the Compute Torso Angle in radian
TorsoAngleX = memoryProxy.getData("Device/SubDeviceList/InertialSensor/AngleX/Sensor/Value")
TorsoAngleY = memoryProxy.getData("Device/SubDeviceList/InertialSensor/AngleY/Sensor/Value")
print ("Torso Angles [radian] X: %.3f, Y: %.3f" % (TorsoAngleX, TorsoAngleY))
if __name__ == "__main__":
robotIp = "127.0.0.1"
if len(sys.argv) <= 1:
print "Usage python sensors_getInertialValues.py robotIP (optional default: 127.0.0.1)"
else:
robotIp = sys.argv[1]
main(robotIp)
# -*- encoding: UTF-8 -*-
from naoqi import ALProxy
import sys
def main(robotIP):
PORT = 9559
# Create proxy to ALMemory
try:
memoryProxy = ALProxy("ALMemory", robotIP, PORT)
except Exception, e:
print "Could not create proxy to ALMemory"
print "Error was: ", e
# Create proxy to ALSonar
try:
sonarProxy = ALProxy("ALSonar", robotIP, PORT)
except Exception, e:
print "Could not create proxy to ALSonar"
print "Error was: ", e
# Subscribe to sonars, this will launch sonars (at hardware level)
# and start data acquisition.
sonarProxy.subscribe("myApplication")
# Now you can retrieve sonar data from ALMemory.
# Get sonar left first echo (distance in meters to the first obstacle).
memoryProxy.getData("Device/SubDeviceList/US/Left/Sensor/Value")
# Same thing for right.
memoryProxy.getData("Device/SubDeviceList/US/Right/Sensor/Value")
# Unsubscribe from sonars, this will stop sonars (at hardware level)
sonarProxy.unsubscribe("myApplication")
# Please read Sonar ALMemory keys section
# if you want to know the other values you can get.
if __name__ == "__main__":
robotIp = "127.0.0.1"
if len(sys.argv) <= 1:
print "Usage python sensors_sonar.py robotIP (optional default: 127.0.0.1)"
else:
robotIp = sys.argv[1]
main(robotIp)