Orientação 1

Onboarding e Sprint Planning 1

Sprint 1

Entendimento do projeto

AGENDA

Encontro 3

  • Segurança da informação

Encontro 4

  • MQTT
  • HiveMQ

Encontro 5

  • BI
  • Introdução ao Metabase

Encontro 6

  • Integração do metabase

encontros

Encontro 1

Configurando e usando o ROS

AGENDA

daily (até 14h15)

conteúdo de comp (até 14h25)

configuração do ubuntu (até14h45)

Relembrando mqtt (até 15h00)

Qual é o principal ramo que utiliza o MQTT?

1. Robótica

2. Machine Learning

3. Ciência de dados

4. IoT

5. Web

Relembrando mqtt (até 15h00)

O MQTT é um protocolo que aplica qual camada do modelo OSI?

1. Física

2. Enlace de dados

3. Transporte

4. Aplicação

5. Rede

Relembrando mqtt (até 15h00)

Qual é o protocolo de transporte a partir do qual o MQTT é implementado?

1. UDP

2. TCP

Relembrando mqtt (até 15h00)

Existe algum software responsável por gerenciar as filas de mensagens do MQTT?

1. Sim

2. Não

Relembrando mqtt (até 15h00)

Por que se usa o MQTT com dispositivos IoT

1. Porque alguém decidiu que ia ser assim

2. Pois é um protocolo que garante uma latência muito baixa

3. Pois é um protocolo muito mais seguro que o HTTPS

4. Pois é um protocolo com especificações simples e compatíveis com dispositivos embarcados

mqtt vs ros (até 15h15)

Qual é o principal ramo que utiliza o ROS?

1. Robótica

2. Machine Learning

3. Ciência de dados

4. IoT

5. Web

mqtt vs ros (até 15h15)

O ROS é um framework que aplica qual camada do modelo OSI?

1. Física

2. Enlace de dados

3. Transporte

4. Aplicação

5. Rede

mqtt vs ros (até 15h15)

Qual é o protocolo de transporte a partir do qual o ROS é implementado?

1. UDP

2. TCP

mqtt vs ros (até 15h15)

Existe algum software responsável por gerenciar as filas de mensagens do ROS?

1. Sim

2. Não

mqtt vs ros (até 15h15)

Por que se usa o ROS com robôs

1. Porque alguém decidiu que ia ser assim

2. Pois é um protocolo que garante uma latência muito baixa

3. Pois é um protocolo muito mais seguro que o HTTPS

4. Pois é um protocolo que torna o stack de rede transparente

5. Pois há um ecossistema de pacotes ROS que podem ajudar a criar sua aplicação

criando um workspace (até 15h30)

mkdir -p meu_workspace/src
pip install setuptools==58.2.0
source install/local_setup.bash #se estiver usando zsh, mude para setup.zsh
ros2 pkg create --build-type ament_python ola_mundo
cd ola_mundo/ola_mundo
touch ola.py
def main():
    print("Ola, mundo!")

if __name__ == "__main__":
    main()
colcon build

Publisher mínimo (até 15h35)

import rclpy
from rclpy.node import Node

from std_msgs.msg import String

class MinimalPublisher(Node):
    def __init__(self):
        super().__init__('minimal_publisher')
        self.publisher_ = self.create_publisher(String, 'topic', 10)
        timer_period = 0.5  # seconds
        self.timer = self.create_timer(timer_period, self.timer_callback)
        self.i = 0
    def timer_callback(self):
        msg = String()
        msg.data = 'Hello World: %d' % self.i
        self.publisher_.publish(msg)
        self.get_logger().info('Publishing: "%s"' % msg.data)
        self.i += 1

def main(args=None):
    rclpy.init(args=args)
    minimal_publisher = MinimalPublisher()
    rclpy.spin(minimal_publisher)
    minimal_publisher.destroy_node()
    rclpy.shutdown()

if __name__ == '__main__':
    main()

subscriber mínimo (Até 15h40)

import rclpy
from rclpy.node import Node

from std_msgs.msg import String

class MinimalSubscriber(Node):

    def __init__(self):
        super().__init__('minimal_subscriber')
        self.subscription = self.create_subscription(
            String,
            'topic',
            self.listener_callback,
            10)
        self.subscription  # prevent unused variable warning

    def listener_callback(self, msg):
        self.get_logger().info('I heard: "%s"' % msg.data)

def main(args=None):
    rclpy.init(args=args)
    minimal_subscriber = MinimalSubscriber()
    rclpy.spin(minimal_subscriber)
    minimal_subscriber.destroy_node()
    rclpy.shutdown()

if __name__ == '__main__':
    main()

turtlesim (até 16h00)

orientação 2

Kickoff com o parceiro

temas

Pessoas e Formação

 

1. Quais são as pessoas envolvidas no processo de limpeza dos canos? Qual sua formação e a área em que atuam? (G1)

 

2. Além de limpar os tubos quais são as outras atividades desenvolvidas por esses colaboradores e qual o nível de letramento digital dos mesmos ? (G1)

 

3. Quais são as habilidades/capacidades necessárias para atuar nessa área? (G1)

 

4. Quais seriam os tipos de funcionários que estarão envolvidos na utilização do robô? ? Qual é a faixa etária, nível de formação e familiarização com a tecnologia? (G3)

 

Processos e Operação

1. Qual a etapa do processo de formação do açúcar que ocorre no tanque? (G1)

 

2. No processo de limpeza atual dos tubos, quais são as melhores formas de identificar se um tubo precisa de uma limpeza ou não?

 

3. Quais as dimensões dos tubos que o robô deve analisar? (G3)

Custos e Logística

1. Qual a principal dor sanada e qual principal ganho que vocês terão com a nossa solução(tempo, custo, etc)? (G2)

 

2. Quanto é gasto no processo de limpeza? (G2)

 

3. Há necessidade de saber quantos litros de água é usado na manutenção dos tubos? (G2)

 

4. Existem variáveis que impactam mais significativamente nos custos de operação além da mão de obra? (G4)


5. O robô será utilizado de fato apenas uma vez ao longo do ano inteiro? (G4)

 

Tecnologia e Dados

1. Já tem alguma base de dados que tem especificando o nível mínimo de sujeira? (G2)

 

2. Quais são os dados importantes para monitorar e como vocês gostariam de visualizá-los? (G2)

 

3. Como é o funcionamento do reboiler? Ou seja, por onde ocorre a entrada do açúcar? (G3)


4. Nessas áreas é possível ter acesso à internet? (G3)

 

Produtividade e Eficiência

1. Vocês tem alguma ideia de quantos % os tubos ficam entupidos? Vocês podem falar um pouco sobre a produtividade relacionada ao entupimento dos tubos? (G5)

 

2. Existem tubos/canos que entopem totalmente? (G5)

 

3. Como os tubos são usados por 9 meses ininterruptos, imaginamos que a maioria deles fique sujo com a crosta. Como podemos definir o grau de impureza para que ele deva ser limpo? (G3)


4. Existem condições específicas dentro dos canos (como temperatura e umidade) que possam afetar o desempenho? (G4)

 

Infraestrutura e Design

1. Como o reboiler capta o melaço? (G2)

 

2. Como está a disposição dos reboilers, na horizontal ou na vertical? (G2)


3. Existe algum acesso à parte de baixo do tanque e do reboiler? (G3)

Competitividade e Mercado

1. Qual o diferencial que vocês buscam com o projeto em relação à concorrência? (G2)

 

2. Com quais empresas/instituições vocês possuem parceria? (G5)


3. Vocês podem citar empresas/instituições que atuam como fornecedores da Atvos? (G5)

 

Orientação 4

Sprint Planning 2

Encontro 3

Sistemas de controle e robótica móvel

objetivos do encontro

  • O que significa um sistema ser controlado?
  • Quais são os tipos de controle que existem?
  • O que as aulas do Geraldo tem a ver com essa?
  • Qual é a dinâmica do controlador e por quê você deveria se importar?
  • Qual é o controlador que na maioria dos casos vai servir para o seu problema?
  • O que faz cada um dos termos do PID?
  • Se eu não consigo/sei modelar um sistema, eu ainda posso controlá-lo?

 

objetivos do encontro

roteiro

o que é um controlador?

malha aberta (feedforward)

Representação de sistemas dinâmicos

domínio do tempo

subdividindo o sistema

o problema do domínio temporal

Em sistemas lineares no domínio do tempo, precisamos fazer um processo de convolução entre o sinal de entrada e a resposta ao impulso do sistema linear para chegar à saída.

solução: domínio dos complexos

função de transferência

Malha fechada (feedback)

objetivos do encontro

controle pid

controlador simples

Características marcantes:

Vantagens:

Desvantagens:

P

Características marcantes:

Vantagens:

Desvantagens:

PI

Características marcantes:

Vantagens:

Desvantagens:

PD

Características marcantes:

Vantagens:

Desvantagens:

PID

Características marcantes:

Vantagens:

Desvantagens:

Identificação de sistemas

sistema genérico 2a ordem

entrada conhecida

Orientação 5

Setup turtlebot

Orientação 7

Sprint planning 3

Orientação 10

Sprint planning 4

Encontro 8

Multi-layer perceptrons e torch

implementação perceptron

implementação perceptron

class Perceptron:
    def __init__(self, weights=None, bias=-1, activation_threshold=0.5):
        if weights == None:
            self.weights = np.array([1, 1])
        else:
            self.weights = np.array(weights)
        self.bias = bias
        self.activation_threshold = activation_threshold

    def _heaviside(self, x):
        return 1 if x >=  self.activation_threshold else 0

    def _sigmoid(self, x):
        return 1/(1 + math.exp(-x))

    def _activation(self, perceptron_output):
        return self._heaviside(perceptron_output)

    def forward_pass(self, data):
        weighted_sum = self.bias + np.dot(self.weights, data)
        return self._activation(weighted_sum)

considerações sobre treinamento

método dos mínimos quadrados

gradiente descendente

gradiente descendente em 3d

implementação (até 15h20)

Modifique a implementação do perceptron, adicionando o método fit, que implementa o gradiente descendente.

o problema do xor

solução 1: eu sei lógica

XOR(A, B) = (A + B) . (NAND(A, B))

PROVE!

solução 2: MLP

solução 2: backpropagation

Orientação 11

Demo Yolo

Encontro 9

LOOK

Sobre correções:

 

  • P1 - Nota amanhã (pt 1 já foi divulgada)
  • Conversa c/ grupos (Sprint 3) - Amanhã
  • PD3 e PD4 - Fim da semana que vem
  • Notas do sprint 3 - Nota de grupo amanhã e lançamento na quarta

Imagem * Filtro = Imagem processada

Convolução

YOLO (v4)

Arquivo YAML

Estrutura de pastas

Arquivo de anotações

<object-class>

CLASSIFICAÇÃO

0

<object-class> <x> <y> <largura> <altura>

 

DETECÇÃO DE OBJETOS

0 45 55 29 67

<object-class> <pontos do polígono>

SEGMENTAÇÃO

No próximo slide...

0 0.03686995913461539 0.9808467740384615 0.03245967788461539 0.9595654110576923 0.030569555288461538 0.9517249110576922 0.03497983894230769 0.9438844086538462 0.0375 0.9304435480769231 0.038130040865384615 0.9203629038461538 0.053251007211538456 0.9091621875 0.057031250000000006 0.9002016129807693 0.05955141105769231 0.8822804663461539 0.060181451923076924 0.8699596778846155 0.06585181490384616 0.85987903125 0.07089213701923078 0.8520385312500001 0.07341229807692308 0.8408378125 0.07341229807692308 0.8307571682692309 0.07782258173076924 0.8195564519230769 0.0765625 0.8128360216346154 0.08034274278846154 0.7926747307692307 0.08790322596153846 0.7769937283653847 0.09294354807692308 0.7691532259615385 0.09420362980769231 0.753472221153846 0.10050403125 0.7310707884615385 0.11499495913461538 0.7153897860576923 0.12444556490384615 0.7086693557692307 0.13641633173076922 0.6974686370192308 0.14523689423076924 0.6851478485576923 0.15090725721153847 0.6717069903846155 0.15342741826923076 0.6593861995192308 0.1572076610576923 0.6448252692307693 0.16224798317307693 0.6302643365384615 0.16980846875 0.6313844086538462 0.17736895192307692 0.6347446225961538 0.18492943509615384 0.6369847668269231 0.1912298389423077 0.6381048389423077 0.1962701610576923 0.6381048389423077 0.20698084615384615 0.6381048389423077 0.22336189423076924 0.6369847668269231 0.22714213701923078 0.6280241947115385 0.22084173317307693 0.6280241947115385 0.2107610889423077 0.6302643365384615 0.20446068509615384 0.6313844086538462 0.19942036298076923 0.6313844086538462 0.18744959615384615 0.6291442644230769 0.1761088701923077 0.6213037644230769 0.16602822596153846 0.6179435480769231 0.15783770192307692 0.6224238341346153 0.1565776201923077 0.6291442644230769 0.1521673389423077 0.6414650528846154 0.14964717788461537 0.6493055552884616 0.14712701682692308 0.6661066298076924 0.1401965721153846 0.6784274182692307 0.13515625 0.684027778846154 0.12822580528846153 0.6896281370192308 0.12192540384615384 0.6952284951923077 0.11814516105769231 0.6985887091346155 0.1131048389423077 0.7041890673076924 0.10617439423076923 0.7097894254807693 0.10050403125 0.71875 0.0935735889423077 0.7310707884615385 0.09042338701923078 0.7422715048076923 0.09042338701923078 0.7545922932692307 0.08853326682692307 0.7657930096153845 0.08286290384615384 0.7736335120192308 0.07719254086538462 0.7837141586538461 0.07467237980769231 0.7926747307692307 0.07215221875 0.8072356634615385 0.06900201682692307 0.8184363798076923 0.06837197596153846 0.8329973125 0.06837197596153846 0.8441980288461538 0.06396169471153847 0.8509184591346154 0.057031250000000006 0.857638889423077 0.053251007211538456 0.8677195336538461 0.053251007211538456 0.8744399639423077 0.055141129807692306 0.884520608173077 0.05451108894230769 0.892361110576923 0.050730846153846154 0.9024417572115385 0.04254032211538462 0.9102822572115384 0.03182963701923077 0.9170026875 0.03182963701923077 0.9270833341346154 0.03182963701923077 0.9338037644230769 0.026789314903846152 0.9405241947115385 0.025529233173076923 0.9483646947115385 0.02741935576923077 0.9662858413461539 0.03245967788461539 0.9819668461538461 0.035609879807692306 0.9920474903846154 0.04632056490384616 0.9998879927884615 0.04191028125 0.9954077067307693 0.03686995913461539 0.9808467740384615

 

  1. Procurem datasets pré-anotados;

SUGESTÕES

  1. Procurem datasets pré-anotados;
  2. Se forem anotar, usem ferramentas para ajudá-los (https://github.com/ofeksadlo/AutoLabelImg)

SUGESTÕES

  1. Procurem datasets pré-anotados;
  2. Se forem anotar, usem ferramentas para ajudá-los (https://github.com/ofeksadlo/AutoLabelImg)
  3. Se quiserem usar segmentação, pensem 2 vezes;

SUGESTÕES

  1. Procurem datasets pré-anotados;
  2. Se forem anotar, usem ferramentas para ajudá-los (https://github.com/ofeksadlo/AutoLabelImg)
  3. Se quiserem usar segmentação, pensem 2 vezes;
  4. Se quiserem anotar datasets de segmentação, pensem 2^10 vezes.

SUGESTÕES

  1. Procurem datasets pré-anotados;
  2. Se forem anotar, usem ferramentas para ajudá-los (https://github.com/ofeksadlo/AutoLabelImg)
  3. Se quiserem usar segmentação, pensem 2 vezes;
  4. Se quiserem anotar datasets de segmentação, pensem 2^10 vezes.
  5. A quantidade de épocas influencia diretamente na qualidade do modelo final. Mexam nesse parâmetro!!!

SUGESTÕES

Orientação 13

Sprint planning 5

Encontro 11

Sistemas operacionais

Encontro 12

Linux e ROS

M6 EC Encontros

By Rodrigo Mangoni Nicola

M6 EC Encontros

Slides dos encontros do módulo 6 de EC - Inteli

  • 10