Onboarding e Sprint Planning 1
Entendimento do projeto
Configurando e usando o ROS
Qual é o principal ramo que utiliza o MQTT?
1. Robótica
2. Machine Learning
3. Ciência de dados
4. IoT
5. Web
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
Qual é o protocolo de transporte a partir do qual o MQTT é implementado?
1. UDP
2. TCP
Existe algum software responsável por gerenciar as filas de mensagens do MQTT?
1. Sim
2. Não
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
Qual é o principal ramo que utiliza o ROS?
1. Robótica
2. Machine Learning
3. Ciência de dados
4. IoT
5. Web
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
Qual é o protocolo de transporte a partir do qual o ROS é implementado?
1. UDP
2. TCP
Existe algum software responsável por gerenciar as filas de mensagens do ROS?
1. Sim
2. Não
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
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
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()
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()
Kickoff com o parceiro
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)
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)
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)
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)
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)
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)
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)
Sprint Planning 2
Sistemas de controle e robótica móvel
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.
Características marcantes:
Vantagens:
Desvantagens:
Características marcantes:
Vantagens:
Desvantagens:
Características marcantes:
Vantagens:
Desvantagens:
Características marcantes:
Vantagens:
Desvantagens:
Características marcantes:
Vantagens:
Desvantagens:
Setup turtlebot
Sprint planning 3
Sprint planning 4
Multi-layer perceptrons e torch
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)
Modifique a implementação do perceptron, adicionando o método fit, que implementa o gradiente descendente.
XOR(A, B) = (A + B) . (NAND(A, B))
PROVE!
Demo Yolo
LOOK
Sobre correções:
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
SUGESTÕES
SUGESTÕES
SUGESTÕES
SUGESTÕES
SUGESTÕES
Sprint planning 5
Sistemas operacionais
Linux e ROS