Cinemática Direta no ROS

Tamanho: px
Começar a partir da página:

Download "Cinemática Direta no ROS"

Transcrição

1 Cinemática Direta no ROS Walter Fetter Lages Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ELE228 Robótica A Copyright (c) Walter Fetter Lages p.1

2 Cinemática Direta no ROS Usando a biblioteca KDL (Kinematics and Dynamics Library) Simples se considerado apenas o robô Para vários objetos tem-se que montar a cadeia cinemática na mão Não depende da infraestrutura de tópicos Real-time ready Só acessível por programa Através do tópico/tf Consulta-se diretamente a transformação de interesse Depende da infraestrutura de tópicos Acessível por programa ou linha de comando Copyright (c) Walter Fetter Lages p.2

3 Exemplo Será usado o pacoteq2d_description Já usado e instalado anteriormente Copyright (c) Walter Fetter Lages p.3

4 Instalação do Pacote Baixar e descompactar o pacote indigo-q2d-description.tgz cd ~/catkin_ws/src wget q2d description.tgz tar xvzpf indigo q2d description.tgz catkin_make source ~/catkin_ws/devel/setup.bash Copyright (c) Walter Fetter Lages p.4

5 Nodorobot_state_publiser Subscreve o tópico/joint_states Obtém a descrição URDF do robô do servidor de parâmetros Parâmetrorobot_description Usa a KDL para calcular as transformações entre os frames Publica as transformaçoes no tópico/tf Por default, a 50 Hz Copyright (c) Walter Fetter Lages p.5

6 Nodojoint_state_publisher Mostra janela com sliders e permite alterar as variáveis de junta Publica as variáveis de junta no tópico /joint_states Não se está simulando a dinâmica do robô É como mover as juntas com a mão Permite movimentar o robô no Rviz sem usar controlador Não serve para movimentar o robô no Gazebo No Gazebo é necessário usar controlador, pois a dinâmica é simulada Copyright (c) Walter Fetter Lages p.6

7 Arqivo de Launch launch/display.launch <launch> <arg name="use_gui" default="false"/> <include file="$(find q2d_description)/launch/q2d.launch" /> <node pkg="tf2_ros" type="static_transform_publisher" name=" q2d_origin_publisher" args=" map origin_link" /> <node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" args="_use_gui:=$(arg use_gui)" /> <node name="robot_state_publisher" pkg=" robot_state_publisher" type="robot_state_publisher" /> <node name="rviz" pkg="rviz" type="rviz" args=" d $(find q2d_description)/rviz/display.rviz" required="true" /> </launch> Copyright (c) Walter Fetter Lages p.7

8 Comando de Launch roslaunch q2d_description display.launch use_gui:=true & Copyright (c) Walter Fetter Lages p.8

9 Visualização no Rviz Copyright (c) Walter Fetter Lages p.9

10 Gráfico de Computação Em outro terminal: source /opt/ros/indigo/setup.bash source $HOME/catkin_ws/devel/setup.bash export DISPLAY=:0 rqt_graph & Visualizar o que é publicado nos tópicos: rostopic echo /joinst_states rostopic echo /tf Copyright (c) Walter Fetter Lages p.10

11 Gráfico de Computação Copyright (c) Walter Fetter Lages p.11

12 Árvore de Transformações view_frames Gera uma descrição em.pdf da árvore de transformações rosrun tf view_frames Copyright (c) Walter Fetter Lages p.12

13 Árvore de Transformações Copyright (c) Walter Fetter Lages p.13

14 Consulta a uma Transformação tf_echo Descrição da garra em relação à base: rosrun tf tf_echo base_link tool_link Copyright (c) Walter Fetter Lages p.14

15 Modelo Cinemático em C++ Pode ser obtido de/tf Neste exemplo será convertida para o tipo KDL::Frame Classe para representar transformação homogênea definida na KDL Atributos são a matriz de rotação e vetor de posição Nodotf2_kdl que mostra o frame na tela Incluído no pacoteeng10026_tf2 Copyright (c) Walter Fetter Lages p.15

16 tf2_kdl.cpp #include <ros/ros.h> #include <geometry_msgs/transformstamped.h> #include <tf2_ros/transform_listener.h> #include <kdl/frames.hpp> #include <kdl/frames_io.hpp> int main(int argc,char argv[]) { ros::init(argc,argv,"tf2_kdl"); ros::nodehandle node; tf2_ros::buffer tfbuffer; tf2_ros::transformlistener tflistener(tfbuffer); Copyright (c) Walter Fetter Lages p.16

17 tf2_kdl.cpp ros::rate loop(10); while(ros::ok()) { geometry_msgs::transformstamped tfstamped; try { tfstamped=tfbuffer.lookuptransform("origin_link","tool_link", ros::time(0),ros::duration(5.0)); //time out is optional } catch(tf2::transformexception &ex) { ROS_WARN("%s",ex.what()); continue; } Copyright (c) Walter Fetter Lages p.17

18 tf2_kdl.cpp KDL::Frame frame( KDL::Rotation::Quaternion(tfStamped.transform.rotation.x, tfstamped.transform.rotation.y, tfstamped.transform.rotation.z, tfstamped.transform.rotation.w), KDL::Vector(tfStamped.transform.translation.x, tfstamped.transform.translation.y, tfstamped.transform.translation.z)); std::cout << "Frame:\n" << frame << std::endl; ros::spinonce(); loop.sleep(); } return 0; } Copyright (c) Walter Fetter Lages p.18

19 Instalação do Pacote Baixar e descompactar o pacote indigo-eng10026-tf2.tgz cd ~/catkin_ws/src wget eng10026 tf2.tgz tar xvzpf indigo eng10026 tf2.tgz cd.. catkin_make source $HOME/catkin_ws/devel/setup.bash Copyright (c) Walter Fetter Lages p.19

20 Execução rosrun eng10026_tf2 tf2_kdl Movendo os sliders para mover o robô a transformação homogênea modifica-se correspondentemente Copyright (c) Walter Fetter Lages p.20

21 Gráfico de Computação Copyright (c) Walter Fetter Lages p.21

22 Modelo Cinemático Usando a KDL Pode ser obtido direto da descrição em URDF Neste exemplo, será otido como um objeto do tipokdl::frame Classe para representar transformação homogênea definida na KDL Atributos são a matriz de rotação e vetor de posição Será criado o nodofwdkin_kdl que mostra o frame na tela Incluído no pacoteeng10026_fwdkin Copyright (c) Walter Fetter Lages p.22

23 ChainFkSolverPos_recursive class ChainFkSolverPos_recursive:public ChainFkSolverPos { public: ChainFkSolverPos_recursive(const Chain &chain); ~ChainFkSolverPos_recursive(); } int JntToCart(const JntArray &q_in,frame &p_out,int segmentnr = 1); int JntToCart(const JntArray &q_in,std::vector<frame> &p_out,int segmentnr= 1); void updateinternaldatastructures(); Copyright (c) Walter Fetter Lages p.23

24 Pacoteeng10026_fwdkin Criar o pacote: cd ~/catkin_ws/src catkin_create_pkg eng10026_fwdkin roscpp kdl_parser sensor_msgs s orocos_kdl package.xml deve ser editado para configurar os detalhes de documentação e incluir dependências Copyright (c) Walter Fetter Lages p.24

25 CMakeLists.txt EditarCMakeLists.txt para descomentar e ajustar as tagsadd_executable e target_link_libraries: add_executable(fwdkin_kdl src/fwdkin_kdl.cpp) target_link_libraries(fwdkin_kdl ) ${catkin_libraries} Copyright (c) Walter Fetter Lages p.25

26 Inclusão no Meta-Pacote O pacoteeng10026_fwdkin será incluido no meta-pacoteeng10026 Editar o arquivopackage.xml do pacote eng10026 e incluir <run_depend>eng10026_fwdkin</run_depend> Copyright (c) Walter Fetter Lages p.26

27 fwdkin_kdl.cpp #include <ros/ros.h> #include <sensor_msgs/jointstate.h> #include <kdl/chainfksolverpos_recursive.hpp> #include <kdl/frames.hpp> #include <kdl/frames_io.hpp> #include <kdl_parser/kdl_parser.hpp> class FwdKinKdl { public: FwdKinKdl(ros::NodeHandle node); ~FwdKinKdl(void); KDL::Frame getframe(void) {return frame;}; Copyright (c) Walter Fetter Lages p.27

28 fwdkin_kdl.cpp private: ros::nodehandle node_; ros::subscriber jointstatessubscriber; KDL::Frame frame; KDL::JntArray jointpositions; KDL::ChainFkSolverPos_recursive fwdkinsolver; }; void jointstatescb(const sensor_msgs::jointstate::constptr & jointstates); Copyright (c) Walter Fetter Lages p.28

29 fwdkin_kdl.cpp FwdKinKdl::FwdKinKdl(ros::NodeHandle node):jointpositions(0) { node_=node; jointstatessubscriber=node_.subscribe("joint_states",1000,& FwdKinKdl::jointStatesCB,this); std::string robotdescription; if(!node.getparam("robot_description",robotdescription)) ROS_ERROR("Could not find robot_description."); KDL::Tree tree; if (!kdl_parser::treefromstring(robotdescription,tree)) ROS_ERROR("Failed to construct KDL tree."); Copyright (c) Walter Fetter Lages p.29

30 fwdkin_kdl.cpp KDL::Chain chain; if (!tree.getchain("origin_link","tool_link",chain)) ROS_ERROR("Failed to get chain from KDL tree."); fwdkinsolver=new KDL::ChainFkSolverPos_recursive(chain); } int njoints=chain.getnrofjoints(); jointpositions.resize(njoints); Copyright (c) Walter Fetter Lages p.30

31 fwdkin_kdl.cpp FwdKinKdl::~FwdKinKdl(void) { jointstatessubscriber.shutdown(); delete fwdkinsolver; } void FwdKinKdl::jointStatesCB(const sensor_msgs::jointstate:: ConstPtr &jointstates) { for(int i=0;i < jointpositions.rows();i++) jointpositions(i)=jointstates >position[i]; if(fwdkinsolver >JntToCart(jointPositions,frame) < 0) ROS_ERROR("Failed to compute forward kinematics."); } Copyright (c) Walter Fetter Lages p.31

32 fwdkin_kdl.cpp int main(int argc,char argv[]) { ros::init(argc,argv,"fwdkin_kdl"); ros::nodehandle node; FwdKinKdl fwdkinkdl(node); ros::rate loop(10); while(ros::ok()) { std::cout << "Frame:\n" << fwdkinkdl.getframe() << std::endl; ros::spinonce(); loop.sleep(); } return 0; } Copyright (c) Walter Fetter Lages p.32

33 Instalação do Pacote Baixar e descompactar o pacote indigo-eng10026-fwdkin.tgz cd ~/catkin_ws/src wget eng10026 fwdkin.tgz tar xvzpf indigo eng10026 fwdkin.tgz cd.. catkin_make source $HOME/catkin_ws/devel/setup.bash Copyright (c) Walter Fetter Lages p.33

34 Execução rosrun eng10026_fwkin fwdkin_kdl Movendo os sliders para mover o robô a transformação homogênea modifica-se correspondentemente Copyright (c) Walter Fetter Lages p.34

35 Gráfico de Computação Copyright (c) Walter Fetter Lages p.35

Cinemática Direta no ROS

Cinemática Direta no ROS Cinemática Direta no ROS Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10026 Robótica

Leia mais

Jacobiano no ROS. Walter Fetter Lages

Jacobiano no ROS. Walter Fetter Lages Jacobiano no ROS Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10026 Robótica A Copyright

Leia mais

Simulador Usando Modelo de Lagrange-Euler

Simulador Usando Modelo de Lagrange-Euler Simulador Usando Modelo de Lagrange-Euler Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia

Leia mais

Assinatura de Mensagens

Assinatura de Mensagens Assinatura de Mensagens Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10026 Robótica

Leia mais

Pacote ROS com o Modelo de um Robô Manipulador

Pacote ROS com o Modelo de um Robô Manipulador Pacote ROS com o Modelo de um Robô Manipulador Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia

Leia mais

Criação de um Pacote ROS com o Modelo de um Robô

Criação de um Pacote ROS com o Modelo de um Robô Criação de um Pacote ROS com o Modelo de um Robô Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e

Leia mais

Pacote ROS para Transformações tf2

Pacote ROS para Transformações tf2 Pacote ROS para Transformações tf2 Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10026

Leia mais

Geração de Trajetórias no ROS

Geração de Trajetórias no ROS Geração de Trajetórias no ROS Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10026 Robótica

Leia mais

Uso de Controladores no ROS

Uso de Controladores no ROS Copyright (c) Walter Fetter Lages p. 1 Uso de Controladores no ROS Manipuladores Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas

Leia mais

Uso de Controladores no ROS

Uso de Controladores no ROS Uso de Controladores no ROS Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10026 Robótica

Leia mais

Implementação de Controladores no ROS

Implementação de Controladores no ROS Implementação de Controladores no ROS Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10051

Leia mais

Robot Operating System (ROS) Introdução e Implementação de Controladores

Robot Operating System (ROS) Introdução e Implementação de Controladores Robot Operating System (ROS) Introdução e Implementação de Controladores Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas

Leia mais

Introdução à Robótica Móvel através do Robot Operating System (ROS)

Introdução à Robótica Móvel através do Robot Operating System (ROS) Universidade Tecnológica Federal do Paraná (UTFPR) Disciplina: CPGEI/PPGCA - Robótica Móvel Introdução à Robótica Móvel através do Robot Operating System (ROS) Prof. André Schneider de Oliveira Prof. João

Leia mais

Introdução ao ROS. Andrey Masiero. 5 de fevereiro de 2016

Introdução ao ROS. Andrey Masiero. 5 de fevereiro de 2016 Introdução ao ROS Andrey Masiero 5 de fevereiro de 2016 Agenda 1 O que é ROS? 2 História 3 Como funciona? Estrutura Publisher e Subscriber 4 Mãos a obra Instalando ROS Indigo Configurando o workspace do

Leia mais

Robot Operating System (ROS)

Robot Operating System (ROS) Robot Operating System (ROS) Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG04479 Robótica

Leia mais

Camera, Kinect e ROS. Andrey Masiero. 5 de fevereiro de 2016

Camera, Kinect e ROS. Andrey Masiero. 5 de fevereiro de 2016 Camera, Kinect e ROS Andrey Masiero 5 de fevereiro de 2016 Agenda 1 Utilizando Webcam e OpenCV Segmentação de Cor Detecção Facial 2 Exercício 3 Utilizando Kinect Controlando a Distância 4 Exercício 5 Apêndice

Leia mais

Robot Operating System (ROS)

Robot Operating System (ROS) Robot Operating System (ROS) Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ELE228 Robótica

Leia mais

Robot Operating System (ROS)

Robot Operating System (ROS) Robot Operating System (ROS) Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10026 Robótica

Leia mais

ROS Robot Operating System. Diones Fischer Felipe Almeida Luan Silveira Matheus Longaray Silvia S. C. Botelho

ROS Robot Operating System. Diones Fischer Felipe Almeida Luan Silveira Matheus Longaray Silvia S. C. Botelho ROS Robot Operating System Diones Fischer Felipe Almeida Luan Silveira Matheus Longaray Silvia S. C. Botelho Introdução Dificuldades na criação de softwares robóticos: Cada robô possui um protocolo de

Leia mais

Universidade Tecnológica Federal do Paraná (UTFPR) Disciplina: CPGEI/PPGCA - Robótica Móvel Experimentação Virtual

Universidade Tecnológica Federal do Paraná (UTFPR) Disciplina: CPGEI/PPGCA - Robótica Móvel Experimentação Virtual Universidade Tecnológica Federal do Paraná (UTFPR) Disciplina: CPGEI/PPGCA - Robótica Móvel Experimentação Virtual Prof. André Schneider de Oliveira Prof. João Alberto Fabro Experimentacao virtual São

Leia mais

Unified Robot Description Format (URDF)

Unified Robot Description Format (URDF) Unified Robot Description Format (URDF) Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia

Leia mais

Universidade Tecnológica Federal do Paraná (UTFPR) Disciplina: CASE004/CSW45 - Robótica Móvel /1. Controle de posição

Universidade Tecnológica Federal do Paraná (UTFPR) Disciplina: CASE004/CSW45 - Robótica Móvel /1. Controle de posição Universidade Tecnológica Federal do Paraná (UTFPR) Disciplina: CASE004/CSW45 - Robótica Móvel - 2017/1 Controle de posição Prof. André Schneider de Oliveira Prof. João Alberto Fabro Estrutura da apresentação

Leia mais

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Roteiro de Laboratório 12 Compilação Cruzada de um Kernel

Leia mais

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores 1 Objetivo Roteiro de Laboratório 2 Ambiente de Desenvolvimento

Leia mais

Unified Robot Description Format (URDF)

Unified Robot Description Format (URDF) Unified Robot Description Format (URDF) Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia

Leia mais

Métodos Sincronizados

Métodos Sincronizados Métodos Sincronizados Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright

Leia mais

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Roteiro de Laboratório 11 Compilação Cruzada de um Kernel

Leia mais

Introdução. Walter Fetter Lages

Introdução. Walter Fetter Lages Introdução Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10051 Dinâmica e Controle

Leia mais

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Roteiro de Laboratório 11 Compilação Cruzada de um Kernel

Leia mais

Diagrama de Classes. Conceitos Básicos. prof. Robinson Vida Monday, April 20, 15

Diagrama de Classes. Conceitos Básicos. prof. Robinson Vida Monday, April 20, 15 Diagrama de Classes Conceitos Básicos prof. Robinson Vida (vida@utfpr.edu.br) 1 Função do Diagrama de Classes Permitir a visualização das classes que comporão o sistema com seus respectivos atributos e

Leia mais

Roteiro de Laboratório 8 Serial Peripheral Interface (SPI) Prof. Walter Fetter Lages 21 de outubro de 2015

Roteiro de Laboratório 8 Serial Peripheral Interface (SPI) Prof. Walter Fetter Lages 21 de outubro de 2015 Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia Curso de Extensão Semana Acadêmica 2015 Engenharia de Controle e Automação 1 Objetivo

Leia mais

ENG1450. Introdução para a tarefa do Braço Robótico. Microcontroladores e Sistemas Embarcados. Autor: Adriano Branco Prof.: Moisés H.

ENG1450. Introdução para a tarefa do Braço Robótico. Microcontroladores e Sistemas Embarcados. Autor: Adriano Branco Prof.: Moisés H. ENG1450 Microcontroladores e Sistemas Embarcados Introdução para a tarefa do Braço Robótico Autor: Adriano Branco Prof.: Moisés H. Szwarcman Cuidado!!!!!! Muito frágil. Não puxar pelo braço. Manusear com

Leia mais

QUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI

QUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TÉCNOLOGIA CURSO DE CIÊNCIA DA COMPUTAÇÃO QUEBRA DE SENHAS MD5 UTILIZANDO MDCRACK E MPI Cicero Augusto de Lara Pahins, Cristiano Reis dos Santos. Professora:

Leia mais

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG04056 Microcontroladores

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG04056 Microcontroladores Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG04056 Microcontroladores 1 Objetivo Roteiro de Laboratório 9 Comunicação Serial

Leia mais

Sistemas Autônomos através do Robot Operating System (ROS)

Sistemas Autônomos através do Robot Operating System (ROS) Sistemas Autônomos através do Robot Operating System (ROS) Prof. André Schneider de Oliveira Prof. João Alberto Fabro Universidade Técnológica Federal do Paraná (UTFPR) Robótica Autonomia see-think-act

Leia mais

Capítulo 6: Linguagens de Programação

Capítulo 6: Linguagens de Programação Capítulo 6: Linguagens de Programação Ciência da Computação: Uma Visão Abrangente 11a Edição by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Capítulo 6: Linguagens de programação 6.1 Perspectiva

Leia mais

Funções. Introdução à Computação para a Engenharia Ambiental

Funções. Introdução à Computação para a Engenharia Ambiental Funções Introdução à Computação para a Engenharia Ambiental Função Agrupa um conjunto de comandos e associa a ele um nome (iden>ficador). O emprego deste nome como um comando corresponde a uma chamada

Leia mais

Orientação a Objetos. Programação em C++

Orientação a Objetos. Programação em C++ OO Engenharia Eletrônica Orientação a Objetos - Programação em C++ Slides 13: A classe Predefinida String. Prof. Jean Marcelo SIMÃO Classe String Uma classe Predefinida. Atribuição e concatenação de strings

Leia mais

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO Nº 006/2016 CONTRATO DE GESTÃO IGAM Nº 002/IGAM/2012 09/2017 1 PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO

Leia mais

Orientação a Objetos - Programação em C++

Orientação a Objetos - Programação em C++ OO Engenharia Eletrônica Orientação a Objetos - Programação em C++ Slides 14: As classes List e Vector da STL (Standard Template Library). Prof. Jean Marcelo SIMÃO Classe List Uma classe Predefinida na

Leia mais

Bravas shield sample app 2017

Bravas shield sample app 2017 Funcionamento A aplicação exemplo executa a leitura de duas entradas digitais da Shield Bravas e escreve nas saídas a relé da seguinte forma: Entrada digital 1 ativa: Reles são acionados, um a um, do relé

Leia mais

Um aluno digitou o código C++ a seguir:

Um aluno digitou o código C++ a seguir: Questão Pai Filha Assunto avaliado: Polimorfismo. Um aluno digitou o código C++ a seguir: #include #include #include #include using namespace std; class Pai Pai()

Leia mais

Programação Orientada a Objetos CLASSES E OBJETOS

Programação Orientada a Objetos CLASSES E OBJETOS Programação Orientada a Objetos CLASSES E OBJETOS Renato Dourado Maia Universidade Estadual de Montes Claros Engenharia de Sistemas Em que Parte do Conteúdo Estamos? Da Unidade III Classes e Objetos, já

Leia mais

Simulado de Linguagem de Programação Java

Simulado de Linguagem de Programação Java Simulado de Linguagem de Programação Java 1. Descreva o processo de criação de programas em Java, desde a criação do código-fonte até a obtenção do resultado esperado, por meio de sua execução. Cite as

Leia mais

Bravas shield light sample app 2017

Bravas shield light sample app 2017 Funcionamento A aplicação exemplo executa a leitura de duas entradas digitais da Shield Bravas e escreve nas saídas a relé da seguinte forma: Entrada digital 1 ativa: Reles 1 acionado. Entrada digital

Leia mais

prim = A ; prim = &A[0];

prim = A ; prim = &A[0]; 57 12 - MAIS SOBRE APONTADOR 12.1 - Ponteiros e arrays Em C, ponteiros e matrizes são tratados de maneira semelhante. 12.1.1 - Nome O nome é um ponteiro, ou seja, aponta (contém o endereço) para o primeiro

Leia mais

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;

Leia mais

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores 1 Objetivo Roteiro de Laboratório 05 Interrupções Prof.

Leia mais

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função .1 JDBC A linguagem Java possui classes que permitem a com um banco de dados. Essas classes fazem parte do pacote JDBC (Java Database Connectivity), uma API (Application Program Interface) que permite

Leia mais

NetRPC. Walter Fetter Lages

NetRPC. Walter Fetter Lages NetRPC Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright (c) Walter Fetter

Leia mais

Robótica. Prof. Reinaldo Bianchi Centro Universitário FEI 2016

Robótica. Prof. Reinaldo Bianchi Centro Universitário FEI 2016 Robótica Prof. Reinaldo Bianchi Centro Universitário FEI 2016 5 a Aula Pós Graduação - IECAT Objetivos desta aula Velocidade e Aceleração de corpo rígido. Matrizes de inércia. Bibliografia Capítulos 5

Leia mais

Introdução. Walter Fetter Lages

Introdução. Walter Fetter Lages Introdução Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10026 Robótica A Copyright (c)

Leia mais

Robótica - utilização, programação, modelagem e controle de robôs industriais

Robótica - utilização, programação, modelagem e controle de robôs industriais Robótica - utilização, programação, modelagem e controle de robôs industriais SÉRIE DE EXERCÍCIOS 16 MODELAGEM CINEMÁTICA DE UM MANIPULADOR COM SEIS GRAUS DE LIBERDADE REVISÃO DE CONCEITOS A seguir são

Leia mais

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores 1 Objetivo Roteiro de Laboratório 8 Serial Peripheral

Leia mais

Introdução à Programação / Programação I

Introdução à Programação / Programação I Introdução à Programação / Programação I Aula 3: Primeiros Programas Rita P. Ribeiro 2018/2019 Departamento de Ciência de Computadores Nesta aula 1. Tipos básicos 2. Variáveis e atribuições 3. Programas

Leia mais

Exame de Admissão. Instituto Nacional de Pesquisas Espaciais 18 de setembro de 2018 A: GABARITO

Exame de Admissão. Instituto Nacional de Pesquisas Espaciais 18 de setembro de 2018 A: GABARITO Exame de Admissão Programa de Pós-Graduação em Computação Aplicada Instituto Nacional de Pesquisas Espaciais 18 de setembro de 2018 A:2018-03 GABARITO Nome: Instruções: Preencha seu nome de forma legível,

Leia mais

Introdução à Programação Aula 3 Primeiros programas

Introdução à Programação Aula 3 Primeiros programas Introdução à Programação Aula 3 Primeiros programas Pedro Vasconcelos DCC/FCUP 2015 Pedro Vasconcelos (DCC/FCUP) Introdução à Programação Aula 3 Primeiros programas 2015 1 / 23 Nesta aula... 1 Tipos básicos

Leia mais

Exame de Ingresso Física Aplicada - Física Computacional Primeiro Semestre de 2018 GABARITO

Exame de Ingresso Física Aplicada - Física Computacional Primeiro Semestre de 2018 GABARITO Exame de Ingresso Física Aplicada - Física Computacional Primeiro Semestre de 2018 GABARITO 1 QUESTÕES DA ÁREA DE FÍSICA 2 Questão 1: Devido à rotação da Terra, há uma aceleração centrípeta em função da

Leia mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETRÔNICA (DAELN) 2 a Prova

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETRÔNICA (DAELN) 2 a Prova UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ DEPARTAMENTO ACADÊMICO DE ELETRÔNICA (DAELN) Curso: Engenharia Eletrônica, Disciplina: Fundamentos de Programação II (IF62C), Turma: S Professores: Hermes Del

Leia mais

Modelo Cinemático Inverso. Prof. Walter Fetter Lages 16 de setembro de 2007

Modelo Cinemático Inverso. Prof. Walter Fetter Lages 16 de setembro de 2007 Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica Programa de Pós-Graduação em Engenharia Elétrica ELE00070-Tópicos Especiais em Controle e Automação I

Leia mais

Escrito por Luís Talora Qui, 19 de Maio de :32 - Última atualização Seg, 11 de Julho de :45

Escrito por Luís Talora Qui, 19 de Maio de :32 - Última atualização Seg, 11 de Julho de :45 O GO-Global, desenvolvido pela GraphOn, é uma solução de Server Based Computing, que permite o acesso remoto à aplicativos publicados em um servidor Windows ou Unix/Linux. A princípio, a GraphOn disponibiliza

Leia mais

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença C++ Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença Primeiro Programa //Primeiro Programa C++ #include int main() { std::cout

Leia mais

Robótica. Linguagens de Programação para Robótica (manipuladores)

Robótica. Linguagens de Programação para Robótica (manipuladores) Linguagens de Programação para (manipuladores) -Orientados para o Robô -Tarefa descrita como sequência de movimentos -Ex: VAL (Puma), AL (IBM) -Orientada para as Tarefas (ou para os Objectos) -Descrição

Leia mais

Leandro Soares de Sousa (DSc.) Página: Aula 02 Revisão e Conceitos C

Leandro Soares de Sousa (DSc.)   Página:   Aula 02 Revisão e Conceitos C Tópicos Especiais Leandro Soares de Sousa (DSc.) e-mail: lsousa@id.uff.br Página: http://www.ic.uff.br/~lsousa Aula 02 Revisão e Conceitos C E essa disciplina? 2 Prover algumas das ferramentas necessárias

Leia mais

Lista de Linguagens de Programação 14

Lista de Linguagens de Programação 14 Lista de Linguagens de Programação 14 Nome: Matrícula: 1. Existem três formas de alocação de memória: memória estática, memória de pilha e alocação em heap. Enquanto endereços estáticos são conhecidos

Leia mais

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos

Leia mais

Física Computacional 3 mem. estática e dinâmica

Física Computacional 3 mem. estática e dinâmica Física Computacional 3 mem. estática e dinâmica 1. Revisão de arrays 2. Revisão de ponteiros e ponteiros para ponteiros 3. Ponteiros para funções 4. Préprocessador: headers 5. Mais à frente: estruturas

Leia mais

Walter Fetter Lages. Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04479 Robótica A

Walter Fetter Lages. Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04479 Robótica A Introdução Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04479 Robótica A Copyright (c) Walter Fetter Lages

Leia mais

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Aula 08 Encapsulamento. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes Aula 08 Encapsulamento Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Projeto Orientado a Objetos Princípios: Abstração; Encapsulamento; Modularidade.

Leia mais

Programação I Aula 3 Primeiros programas

Programação I Aula 3 Primeiros programas Programação I Aula 3 Primeiros programas Pedro Vasconcelos DCC/FCUP 2018 Pedro Vasconcelos (DCC/FCUP) Programação I Aula 3 Primeiros programas 2018 1 / 23 Nesta aula... 1 Tipos básicos 2 Variáveis e atribuições

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Introdução Esse não é um curso de Java! O objetivo é aprender os conceitos da programação orientada a objetos,

Leia mais

ROBÓTICA CINEMÁTICA. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial

ROBÓTICA CINEMÁTICA. Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial SP CAMPUS PIRACICABA ROBÓTICA Prof a. Dra. GIOVANA TRIPOLONI TANGERINO Tecnologia em Automação Industrial CINEMÁTICA https://giovanatangerino.wordpress.com giovanatangerino@ifsp.edu.br giovanatt@gmail.com

Leia mais

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){ UNIVERSIDADE FEDERAL DE SANTA CATARINA - Departamento de Automação e Sistemas PROGRAMAÇÃO DE SISTEMAS AUTOMATIZADOS - 2016/2 - P2 Nome: ------------------------------------------------------------------------------------------------------

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO FOZ DO IGUAÇU 2013 LISTA

Leia mais

Ambiente de Desenvolvimento

Ambiente de Desenvolvimento Ambiente de Desenvolvimento Walter Fetter Lages w.fetter@ieee.org Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Engenharia Elétrica ENG04008 Sistemas de Tempo Real Copyright

Leia mais

JAVA. Professor: Bruno Toledo

JAVA. Professor: Bruno Toledo JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código

Leia mais

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista

Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista Linguagens de Programação Departamento de Engenharia Eletrônica e de Computação - DEL-Poli/UFRJ Prof.: Miguel Elias Mitre Campista == Laboratório 2 == 1. Escreva um programa em C++ para calcular o n-ésimo

Leia mais

Física Computacional 11 Classes

Física Computacional 11 Classes Física Computacional 11 Classes 1. Classes a. Overload de funções b. Parâmetros por omissão c. Overload de operadores d. Exemplos bicudo@tecnico.ulisboa.pt Física Computacional - MEFT 2013/14 P. Bicudo

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados Processo mental através do qual

Leia mais

TE091 Programação Orientada a Objetos Engenharia Elétrica

TE091 Programação Orientada a Objetos Engenharia Elétrica TE091 Programação Orientada a Objetos Engenharia Elétrica Revisão Rápida de Programação em C Prof. Carlos Marcelo Pedroso 2015 Revisão Linguagem C Características principais Modularidade: uso de procedimentos

Leia mais

Galileo Gen2. Walter Fetter Lages

Galileo Gen2. Walter Fetter Lages Galileo Gen2 Walter Fetter Lages fetter@ece.ufrgs.br Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia Semana Acadêmica 2015 Engenharia

Leia mais

Matrizes. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 67

Matrizes. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 67 Matrizes Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 67 Conteúdo Introdução vetores e matrizes Representações de matrizes TADs TAD Vetor TAD Vetor

Leia mais

Instalar o SQL Server 2016 usando um arquivo de configuração

Instalar o SQL Server 2016 usando um arquivo de configuração Instalar o SQL Server 2016 usando um arquivo de configuração Apresentamos a seguir o tutorial passo a passo sobre como instalar uma nova instância do SQL Server 2016 Express Edition usando o arquivo de

Leia mais

SISTEMAS OPERATIVOS I

SISTEMAS OPERATIVOS I Instituto Superior de Engenharia do Porto Departamento de Engenharia Informática SISTEMAS OPERATIVOS I Ficha 6 Abril de 2006 Nuno Malheiro Maria João Viamonte Berta Batista Luis Lino Ferreira Sugestões

Leia mais

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM Curso de C Introdução 1 Introdução Roteiro: Recordando Algoritmos Linguagem de Programação O computador Instruções de Máquina Níveis de Abstração Compilação 2 Algoritmos Recordando: Algoritmo: conjunto

Leia mais

Tutorial para Instalação do dotproject

Tutorial para Instalação do dotproject Tutorial para Instalação do dotproject O objetivo deste tutorial é apresentar o processo de instalação do dotproject. Também serão abordadas informações sobre a instalação do pacote de tradução e possíveis

Leia mais

Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 12 Out/2016.

Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 12 Out/2016. Programação Orientada a Objetos (utilizando C#) Professor Emiliano S. Monteiro Versão 12 Out/2016 4.1.6. Propriedades Como em qualquer linguagem Java ou C++, para acessar campos privados de uma classe,

Leia mais

//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void

//conteúdo do arquivo Matriz.h class Matriz { private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void //conteúdo do arquivo Matriz.h class Matriz private: int *elementos; int numerodelinhas; int numerodecolunas; void setnumerodelinhas(int); void setnumerodecolunas(int); int getnumerodelinhas(); int getnumerodecolunas();

Leia mais

ENG1000 Introdução à Engenharia

ENG1000 Introdução à Engenharia ENG1000 Introdução à Engenharia Aula 09 Vetores e Matrizes Edirlei Soares de Lima Introdução Até agora nós temos usado variáveis simples para armazenar valores usados por nossos

Leia mais

TAD: Tipo Abstrato de Dados (parte 2)

TAD: Tipo Abstrato de Dados (parte 2) TAD: Tipo Abstrato de Dados (parte 2) SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Modularização em C Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c

Leia mais

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio)

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio) Tratamento de Exceção Programação Orientada a Objetos Java (Rone Ilídio) Tratamento de exceção Exceção é uma contração de Evento de Exceção Evento de exceção impede a execução normal de um programa Quando

Leia mais

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores

Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10032 Microcontroladores 1 Objetivo Roteiro de Laboratório 04 Convenções de Chamada

Leia mais