Smarthand


En el impulso por desarrollar sistemas robóticos que puedan sentir e interactuar con su entorno, se han realizado enormes inversiones en visión artificial. Hemos visto los frutos de estas inversiones en una amplia gama de aplicaciones, desde automóviles autónomos hasta la automatización de robots industriales. Si bien estos esfuerzos han tenido mucho éxito, los sensores ópticos no son la solución ideal para todos los casos de uso. Las tareas de manipulación de objetos, por ejemplo, suelen requerir información táctil para manipular con precisión y seguridad los objetos de interés. Puede imaginar un enfoque híbrido en el que los métodos de visión por computadora localicen el objeto y dirijan un robot a la posición correcta. A partir de ahí, los sensores táctiles dentro de una mano robótica brindan información sobre la fragilidad o robustez del objeto y ayudan a crear un plan para llevar a cabo las intenciones del robot.

En comparación con la visión por computadora, se ha dedicado mucha menos atención al desarrollo de sensores táctiles, lo que los hace generalmente menos sofisticados que sus contrapartes ópticas. Esto ha dificultado el desarrollo de robots que sean capaces de generar una comprensión de alta resolución de su entorno mediante la integración de datos de múltiples tipos de sensores.

 En un esfuerzo por comenzar a abordar las deficiencias en la tecnología de detección táctil actual, un equipo de ingenieros de ETH Zürich ha desarrollado un dispositivo que llaman SmartHand .

 SmartHand es un sistema integrado de hardware y software creado para recopilar y procesar información táctil de alta resolución de una matriz de sensores múltiples en forma de mano en tiempo real.

System architecture (📷: X. Wang et al.)

Arquitectura del sistema (📷: X. Wang et al.)

El dispositivo SmartHand utiliza una rejilla sensora táctil resistiva de bajo costo, basada en un compuesto de polímero conductor, que se pega a un guante. Se adjunta una unidad de medición inercial (IMU) en la parte posterior del guante para proporcionar información adicional sobre el movimiento. Los datos de los 1024 sensores táctiles (dispuestos en una cuadrícula de 32 por 32) y la IMU se introducen en una placa de descubrimiento STM32F769NI conectada a la muñeca a través de una serie de cables. Esta placa contiene un núcleo Arm Cortex-M7 que funciona a 216 MHz, con 2 MB de memoria flash y 532 kB de RAM.

Para demostrar SmartHand, los investigadores querían poder detectar qué tipo de objeto sostenía la mano. Para ello, se creó y entrenó una red neuronal convolucional, basada en la arquitectura ResNet-18, para reconocer la relación entre los datos de los sensores y un conjunto de dieciséis objetos cotidianos. Se creó un conjunto de datos usando el dispositivo físico para que sirviera como datos de entrenamiento para el modelo. Recopilando mediciones a 100 cuadros por segundo (13,7 veces más rápido que el trabajo anterior), se generó un conjunto de datos táctiles que consta de 340.000 cuadros.

The sensor grid (📷: X. Wang et al.)

La red de sensores (📷: X. Wang et al.)

Al validar la red neuronal, se encontró que el modelo requiere un orden de magnitud menos de memoria y 15,6 veces menos cálculos, en comparación con los dispositivos actuales. Esto se logró manteniendo la red neuronal lo más compacta posible, sin sacrificar la precisión de las predicciones. Hablando de predicciones, se encontró que la precisión de clasificación top 1 del modelo alcanzó el 98,86% en el reconocimiento de objetos. Al mantener el procesamiento en el límite, el tiempo de inferencia se mantuvo en unos muy razonables 100 milisegundos.

Se observó que, debido a las propiedades inherentes de los materiales que componen la rejilla del sensor táctil, habrá cierto nivel de degradación con el uso repetido. Los primeros indicios sugieren que la degradación puede estabilizarse, lo que permitiría recalibrar el diseño actual después de un período de rodaje inicial sin ningún otro cambio. Actualmente están evaluando si este es el caso, o si la degradación del sensor continúa más allá de la meseta aparente, lo que requeriría más cambios de diseño antes de que sea posible el uso del dispositivo en el mundo real.

El equipo prevé que las técnicas de SmartHand se utilicen en futuras aplicaciones robóticas y protésicas de manos. Con un poco más de esfuerzo, este trabajo puede acercarnos a un mundo en el que los robots no parecen tan robóticos.

Fuente hackester.io

La desagregación busca ganar una parte del pastel de la eficiencia energética.


El mercado de la gestión de la energía en el hogar ha hecho muchas promesas, pero todavía tiene que ofrecer una visión profunda y reducciones significativas en el uso de energía en el hogar.

Microsoft intentó y fracasó con la plataforma de energía Hohm. Por su parte Google.org probó con el famos paquete de energía para el hogar PowerMeter, solo para luego abandonar el esfuerzo en su famosa primavera de limpieza para adquirir la marca de termostato Nest en su lugar.

 Las empresas de administración de energía centradas en hardware, como Tendril, EnergyHub y Onzo, han tenido que hacer cambios drásticos en la estrategia de productos y canales para mantenerse en la búsqueda del cliente. Encontrar un plan de negocios rentable que navegue por los ciclos de gasto de los servicios públicos, los cambios regulatorios y el comportamiento de los clientes de energía ha resultado ser un desafío.

Nest ha trasladado la tecnología de termostatos al año 2008, mientras que Opower, con destino a la oferta pública inicial, ahorra a los clientes de servicios públicos residenciales un promedio de 1,5 a 2,5 por ciento en su factura de electricidad. 

Pero «se acerca el tren de la desagregación», según el director general de Bidgely, Abhay Gupta. La desagregación podría ahorrarle al cliente dinero real y cantidades significativas de energía, cambiar la relación de la empresa de servicios públicos con su cliente e impulsar el mercado de administración de energía para el hogar.

Photo by Constantine Kim on Pexels.com

Datos de energía a nivel de electrodomésticos de Bidgely

El director ejecutivo de Bidgely afirma que su software de «reconocimiento de patrones profundos» puede brindar datos de consumo de energía a nivel de electrodomésticos, utilizando únicamente la señal del medidor inteligente de una casa.

Segun el CEO de Bidgely, Abhay Gupta, se debería mover la retroalimentación de energía de «un nivel de motivación como Opower a un nivel de empoderamiento.

Con datos de Green Button o AMI a intervalos de una hora, Bidgely puede identificar y detectar cargas de calefacción, refrigeración y bombas, así como energía solar en el techo. Los datos de la red de área doméstica del medidor inteligente pueden brindar suficiente información para identificar electrodomésticos adicionales, como calentadores de agua, estufas, secadoras, bañeras de hidromasaje o vehículos eléctricos.

El CEO dijo que «los servicios públicos nos están empujando hacia nuevos usos». Dio un ejemplo de un programa de bomba de piscina de servicios públicos donde Bidgely realiza la medición y verificación de los dispositivos. También sugirió que la empresa de servicios públicos podría identificar las casas en un territorio que tenía bombas de piscina ineficientes.

La empresa financiada por Khosla Ventures obtiene acceso a los datos de uso no de los sensores de nivel de enchufe, sino a través de grandes conjuntos de datos y análisis inteligentes (aunque se asocia con proveedores de hardware como Blue Line Innovations ). Si Bidgely realmente puede analizar los dispositivos individuales del flujo de datos, los consumidores realmente pueden comenzar a comprender su uso y comenzar a tomar decisiones energéticas más significativas. Las empresas de servicios públicos pueden segmentar el mercado como nunca antes. ¿La empresa de servicios públicos necesita apuntar a 1,500 hogares con bombas para piscinas para un programa de eficiencia energética? Bidgely podría identificar potencialmente a esos propietarios de bombas de piscina.

La firma ha trabajado con cinco empresas de servicios públicos no identificadas, y otras ahora están evaluando el software, que ofrece participación del cliente, gestión del lado de la demanda e inteligencia empresarial.

Preston Roper, director de marketing de la empresa, enfatizó el extremo de ventas del negocio y la necesidad de simplificar el despliegue de una solución de extremo a extremo para una empresa de servicios públicos. Roper describió que la empresa se encuentra en la etapa de comercialización y venta agresiva. Dijo que tiene «vendedores hambrientos y clientes hambrientos que quieren hacer más con los datos«. (Cabe destacar que Opower gastó 30,5 millones de dólares en ventas y marketing en 2013, su mayor gasto, justo por delante de I+D, según su S-1).

«Opower ha hecho un trabajo fantástico en eficiencia energética a través de las ciencias del comportamiento», dijo el CEO de Bidgely. Agregó que Opower había «abierto baldes de dólares y abrió el canal, pero lo estamos llevando al siguiente nivel».

PlotWatt desagrega en Wendy’s, KFC y Dunkin’ Donuts

PlotWatt tiene su propio giro en el software de desagregación basado en la nube. El director ejecutivo de la startup, Luke Fishback, le dijo a GTM que «la desagregación en sí misma es menos interesante que el tipo de inteligencia que podemos ofrecer en función de la desagregación».

«Una factura de electricidad detallada está bien, pero en nuestra experiencia, no es [suficiente]. Lo que realmente perturba al sector es toda la inteligencia genial y procesable que se puede derivar de los datos».

En teoría, los datos de un medidor inteligente o de un conjunto de datos de Green Button tienen el potencial de indicar si hay un segundo refrigerador ineficiente en el garaje o una bomba de piscina deshonesta que consume energía por la tarde, o detectar si un restaurante no está abierto. el congelador está a punto de fallar.

El director ejecutivo de PlotWatt nos dijo que la empresa «ya está generando un nivel increíble de ahorros» con «un nivel de compromiso» mucho más allá del estado de cuenta mensual de kilovatios-hora.

Según Fishback, «Opower ha hecho un trabajo brillante al abordar los puntos débiles de las empresas de servicios públicos». Pero mientras que Opower puede obtener ahorros del 2 por ciento, Fishback sugiere que la tecnología de su empresa puede acercarse a niveles de ahorro del 10 al 15 por ciento. Dijo: «No se ven muchos programas que brinden el nivel de eficiencia energética que nosotros podemos. Tal vez el 2 por ciento es la forma en que se incentivan de manera óptima las empresas de servicios públicos. No se les incentiva para brindar ahorros del 5 por ciento o del 10 por ciento».

Si bien Bidgely se enfoca en los servicios públicos, Fishback de PlotWatt habló de ir donde estaban los datos, y en una de las estrategias de mercado de la empresa, PlotWatt descubrió que los franquiciados de las cadenas de comida rápida Wendy’s, KFC y Dunkin’ Donuts son clientes entusiastas, dada la El ROI de un año reclamado por el producto y más del 10 por ciento de ahorro de electricidad. El servicio de suscripción que ofrece PlotWatt puede reducir las facturas, detectar electrodomésticos averiados y averiados, y proporcionar inteligencia comercial, como si una ubicación en particular cierra antes de tiempo o si las entregas se retrasan. PlotWatt utiliza hardware en la caja de interruptores como registrador de datos. No hay participación de las empresas de servicios públicos, según el CEO.

El CEO enfatizó que no son los datos sin procesar los que ahorran un 14 por ciento de electricidad en la ubicación de Wendy’s: es el correo electrónico enviado al gerente de la tienda que le notifica que el horno se dejó encendido a la hora de cerrar o que una cámara frigorífica está a punto de abrirse. fallar.

La estrategia de mercado de PlotWatt se dirige a cualquier nodo donde se agreguen datos de redes inteligentes. Entonces, además de los restaurantes, la empresa se enfoca en flujos de datos residenciales y de servicios públicos.

El CEO dijo que la parte residencial de este mercado es el «gigante dormido» y agregó: «Queremos construir un negocio para que cuando el gigante despierte o cuando sea provocado, estemos listos».

El líder del mercado Opower no se queda quieto

Opower, que domina el mercado, y su motor de participación del cliente con destino a la oferta pública inicial es una historia de éxito de una startup. La compañía de software financiada por VC creó un nuevo mercado con una inclinación de TI y escaló a lo grande y rápido.

Opower buscaba recaudar $110 millones a través de una oferta pública inicial. Como informó Stephen Lacey de GTM, los ingresos de Opower crecieron de $28,7 millones en 2011 a $88,7 millones en 2013. Más del 90 por ciento de sus ingresos en 2013 provinieron de suscripciones con los 93 clientes de servicios públicos de Opower. 

Lacey señala que los ciclos de ventas de Opower van desde tan solo seis meses hasta veinticuatro meses. Muchos de los clientes más importantes de Opower verán expirar sus contratos en 2014 o 2015. Opower identifica a sus competidores como Aclara, C3 Energy, Nest Labs, Oracle, SAP y Tendril, «así como muchos otros proveedores más pequeños». La firma tiene sus propias patentes sobre la desagregación de datos de carga.  

Opower sigue siendo la fuerza a tener en cuenta y probablemente insistiría en que este «Opower 2.0» del que sigo escuchando provendrá del mismo Opower.

Un negocio impulsado por programas de eficiencia de servicios públicos

Los contratos y los ingresos que obtiene Opower y que son el objetivo de Bidgely, PlotWatt y el resto de la industria de eficiencia energética generalmente provienen de programas de respuesta a la demanda o eficiencia energética de servicios públicos exigidos por la PUC de un estado. Estos programas brindan incentivos significativos para las reducciones en el consumo anual de energía, además de imponer sanciones por incumplimiento.

Los programas de eficiencia energética de las empresas de servicios públicos financiados por los contribuyentes se han más que duplicado entre 2006 y 2010 a $ 4.8 mil millones, y se espera que los programas se dupliquen nuevamente para 2025, según un estudio del Laboratorio Nacional Lawrence Berkeley.

Photo by Alex Azabache on Pexels.com

Comportamiento humano

Jeff St. John informó sobre los hallazgos de un estudio de EPRI que analizó cómo las tecnologías de desagregación de energía pueden producir niveles de precisión muy diferentes.  

«Comprender la parte del comportamiento humano y la ciencia humana es tan importante, si no más importante» que los desafíos técnicos involucrados en el desglose de energía, dijo Peter Porteous de Blue Line Innovations en el informe de St. John. «Las empresas que serán exitosos serán los que tengan ambos.”

“Creo que la credibilidad triunfa sobre la precisión” cuando se trata de datos detallados de desglose de viviendas, dijo Porteous. “Lo que quiero decir con eso es que si esta es tu casa, y estás conectado, y de repente los datos regresan y te dicen que estás gastando $10 al mes en un jacuzzi, y tú… Si no tienes un jacuzzi, bueno, nunca volverás a mirar los datos”. Esa comprensión fundamental de la naturaleza humana es la razón por la cual Bidgely o PlotWatt adoptan un «enfoque conservador y muy reacio al riesgo para revelar el uso».

Eso no solo es valioso para los propietarios de viviendas, señaló. “La respuesta de las empresas de servicios públicos, cuando ven que ahora pueden tener acceso a estos datos, realmente cambia las reglas del juego”, dijo. “Esa es su principal frustración: no tienen idea de lo que hacen sus clientes dentro de la casa y dedican grandes cantidades de investigación a tratar de averiguarlo”.

Opower ha tenido una gran ventaja y pronto tendrá acceso a capital público. Los programas de la empresa permiten que las empresas de servicios públicos cumplan con los mandatos de eficiencia sin amenazar el sustento de la empresa de servicios públicos. Como sugirió el director ejecutivo de PlotWatt, «tal vez el 2 por ciento es la forma óptima de incentivar a las empresas de servicios públicos», y un ahorro del 15 por ciento puede ser demasiado perturbador para alentarlo en este momento.

En cualquier caso, esté atento a la convergencia de la ciencia del comportamiento de Opower con la tecnología de los desagregadores en los próximos años. Si el genio de la desagregación es real, no se puede volver a poner en la botella.

Fuente https://www.greentechmedia.com/articles/read/Can-Bidgely-or-PlotWatt-Compte-With-Opower-in-Home-Energy-Engagement

¿Que significa MLE?


Las siglas MLE corresponden al algoritmo de estimación de máxima verosimilitud y se usa por ejemplo para la desagregación de energía.

Es responsable cuando se desea un solo aparato desagregado en lugar de desagregar muchos. Además, el aparato debe ser mayoritariamente resistivo para lograr precisión.

Se basa en eventos emparejados:

- OnPower: valor delta cuando el aparato está encendido. 
- OffPOwer: valor delta cuando el aparato está apagado. 
- Duración: duración entre encendido y apagado.

Además, para descartar muchos eventos poco probables, se establecen tres restricciones:

- PowerNoise: valor delta mínimo por debajo del cual el delta se considera ruido. 
- PowerPair: diferencia máxima entre OnPower y OffPower (considerando electrodomésticos con consumo de energía constante).
 - timeWindow: marco de tiempo máximo entre Onpower y Offpower.

Las características antes mencionadas se modelan con gaussianas, mezclas gaussianas o Poisson. Para cada evento emparejado entrante, el algoritmo extraerá estas tres características y evaluará la probabilidad de máxima verosimilitud de que ese evento emparejado sea un dispositivo determinado.

IMPORTACIONES

import numpy as np
import pandas as pd
from os.path import join
from pylab import rcParams
import matplotlib.pyplot as plt
%matplotlib inline
rcParams['figure.figsize'] = (13, 6)
#plt.style.use('ggplot')
from datetime import datetime as datetime2
from datetime import timedelta

import nilmtk
from nilmtk.disaggregate.maximum_likelihood_estimation import MLE
from nilmtk import DataSet, TimeFrame, MeterGroup, HDFDataStore
from scipy.stats import poisson, norm
from sklearn import mixture
import warnings
warnings.filterwarnings("ignore")

Funciones

def get_all_appliances(appliance):

    # Filtering by appliances: 
    print "Fetching " + appliance + " over data loaded to nilmtk."
    metergroup = nilmtk.global_meter_group.select_using_appliances(type=appliance)
    
    if len(metergroup.appliances) == 0: 
        print "None " + appliance + " found on memory."
        pass

    # Selecting only single meters: 
    print "Filtering to get one meter for each " + appliance

    meters = [meter for meter in metergroup.meters if (len(meter.appliances) == 1)]
    metergroup = MeterGroup(meters)
    print metergroup
    print "Found " + str(len(metergroup.meters)) + " " + appliance

    return metergroup


def get_all_trainings(appliance, train):

    # Filtering by appliances: 
    print "Fetching " + appliance + " over data train data."
    elecs = []
    for building in train.buildings: 
        print "Building " + str(building) + "..."
        elec = train.buildings[building].elec[appliance]
        if len(elec.appliances) == 1: 
            print elec
            print "Fetched elec."
            elecs.append(elec)

        else: 
            print elec
            print "Groundtruth does not exist. Many appliances or None"

    metergroup = MeterGroup(elecs)

    return metergroup

Cargando datos

path = '../../../nilmtk/data/ukdale'
ukdale = train = DataSet(join(path, 'ukdale.h5'))

Y dividir en datos de prueba y de entrenaminento

In [8]:train = DataSet(join(path, 'ukdale.h5'))
test = DataSet(join(path, 'ukdale.h5'))
train.set_window(end="17-5-2013")
test.set_window(start="17-5-2013")
#zoom.set_window(start="17-5-2013")
print('loaded ' + str(len(ukdale.buildings)) + ' buildings')

loaded 5 buildings

Obteniendo los datos de entrenamiento

Es posible que el dispositivo seleccionado no esté entrenado desde ElecMeters donde se presentan otros dispositivos, ya que podemos extraer la verdad básica

# Appliance to disaggregate: 
applianceName = 'kettle'
# Groundtruth from the training data: 
metergroup = get_all_trainings(applianceName,train)

Fetching kettle over data train data.
Building 1...
ElecMeter(instance=10, building=1, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1), Appliance(type='food processor', instance=1), Appliance(type='toasted sandwich maker', instance=1)])
Groundtruth does not exist. Many appliances or None
Building 2...
ElecMeter(instance=8, building=2, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1)])
Fetched elec.
Building 3...
ElecMeter(instance=2, building=3, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1)])
Fetched elec.
Building 4...
ElecMeter(instance=3, building=4, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1), Appliance(type='radio', instance=1)])
Groundtruth does not exist. Many appliances or None
Building 5...
ElecMeter(instance=18, building=5, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1)])
Fetched elec.

Algoritmo MLE

Capacitación

Primero, creamos el modelo

mle = MLE()

Luego, actualizamos el parámetro del modelo con algunos valores de adivinación.

Primero adivine las características: mezclas gaussianas de encendido y apagado y poisson de duración.

# setting parameters in the model: 
mle.update(appliance=applianceName, resistive=True, units=('power','active'), thDelta= 1500, thLikelihood= 1e-10, powerNoise= 50, powerPair= 100, timeWindow= 400, sample_period= '10S', sampling_method='first')

# Settings the features parameters by guessing:  
mle.onpower = {'name':'gmm', 'model': mixture.GMM(n_components=2)}
mle.offpower = {'name':'gmm', 'model': mixture.GMM(n_components=2)}
mle.duration = {'name':'poisson', 'model': poisson(0)}

Updating model
{'resistive': True, 'appliance': 'kettle', 'sampling_method': 'first', 'sample_period': '10S', 'thLikelihood': 1e-10, 'timeWindow': 400, 'units': ('power', 'active'), 'thDelta': 1500, 'powerNoise': 50, 'powerPair': 100}

Entrenando el modelo

Entrenamos el modelo con todas las ocurrencias de ese modelo de dispositivo que se encuentran en los datos de entrenamiento.

mle.train(metergroup)

('kettle', 1)
Training on chunk
Samples of onpower: 214
Samples of offpower: 214
Samples of duration: 214
Training onpower
Training offpower
Training duration
('kettle', 2)
Training on chunk
Samples of onpower: 92
Samples of offpower: 92
Samples of duration: 92
Training onpower
Training offpower
Training duration
('kettle', 3)
Chunk empty

Y luego visualizamos características con featureHist_colors () para ver la distribución y cuántas muestras tenemos para cada dispositivo (el mismo modelo de diferentes casas).

mle.featuresHist_colors()

A veces, tenemos más eventos de algunas casas que de otras, como vemos en la figura de arriba. Por lo tanto, necesitamos recortar información para mantener el mismo número de muestras para cada casa.

mle.no_overfitting()

Retraining onpower
Retraining offpower
Retraining duration

In [15]:mle.featuresHist_colors()

Hay otra herramienta de visualización para ver cómo se ajustan las distribuciones del modelo a los datos:

mle.featuresHist()

Onpower y Offpower parecen encajar bien con los datos, pero necesitamos cambiar el modelo por duración

mle.duration = {'name':'gmm', 'model': mixture.GMM(n_components=10)}

Y luego volvemos a entrenar el modelo y usamos no_overfitting

mle.train(metergroup)
mle.no_overfitting()
mle.featuresHist()

('kettle', 1)
Training on chunk
Samples of onpower: 214
Samples of offpower: 214
Samples of duration: 214
Training onpower
Training offpower
Training duration
('kettle', 2)
Training on chunk
Samples of onpower: 92
Samples of offpower: 92
Samples of duration: 92
Training onpower
Training offpower
Training duration
('kettle', 3)
Chunk empty
Retraining onpower
Retraining offpower
Retraining duration

Una vez que tengamos la distribución del modelo final para cada característica. Necesitamos la integridad de cada distribución. Cada CDF debe estar delimitado por uno.

mle.check_cdfIntegrity(step=10)

Onpower cdf: 0.986177684776
Offpower cdf: 1.0
Duration cdf: 0.987375070732

Desagregación

# Building to disaggregate: 
building = 2
mains = test.buildings[building].elec.mains()

# File to store the disaggregation
filename= '/home/energos/Escritorio/ukdale-disag-ml.h5'
output = HDFDataStore(filename, 'w')

El siguiente paso tomará unos minutos.

mle.disaggregate(mains, output)

25656 events found.
12419 onEvents found
4244 onEvents no paired.
1 chunks disaggregated

También recibimos cierta información, como el número total de eventos, el número de eventos de encendido, el número de eventos que no se han emparejado y los fragmentos desglosados.

Comparando la desagregación con la verdad básica

## Groundtruth
kettle = test.buildings[building].elec.select_using_appliances(type=applianceName)
output.load(mains.key).next().plot()
kettle.plot()
output.close()