Implementação de Controladores no ROS
|
|
|
- Matheus Henrique Regueira Sintra
- 7 Há anos
- Visualizações:
Transcrição
1 Implementação de Controladores 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 ENG10051 Dinâmica e Controle de Robôs Copyright (c) Walter Fetter Lages p.1
2 Introdução Implementação de controladores no ROS Exemplo: Controlador por torque calculado τ = M(q) [ q r + K d ( q r q) + K p (q r q)]+v (q, q)+g(q) Modelo do robô calculado através da classe ChainIdSolver_RNE class da KDL Copyright (c) Walter Fetter Lages p.2
3 Controle de Juntas interface com o usuário infraestrutura do ROS comando do usuário planejamento (MoveIt!) geração de trajetória navegação action server referência controlador de junta ação de controle realimentação hardware do robô Copyright (c) Walter Fetter Lages p.3
4 Arquitetura de Controladores Copyright (c) Walter Fetter Lages p.4
5 Laço de Tempo Real /joint_states JointHandle getvelocity() getposition() geteffort() setcommand() getvelocity() getposition() Controller unlockandpublish() JointStatePublisher *cmd *vel *pos *eff update() update() Gazebo setforce() getangle() getvelocity() cmd vel pos RobotHW eff ControllerManager commandcb() readsim() writesim() /controller/command update() GazeboRosControlPlugin update() Copyright (c) Walter Fetter Lages p.5
6 computed_torque_controller computed_torque_controller/ CMakeLists.txt computed_torque_controller_plugins.xml include/ computed_torque_controller/ computed_torque_controller.h package.xml src/ computed_torque_controller.cpp Copyright (c) Walter Fetter Lages p.6
7 Dependências ros_control control_toolbox controller_interface controller_manager hardware_interface joint_limits_interface transmission_interface realtime_tools sudo apt get install ros indigo ros control Copyright (c) Walter Fetter Lages p.7
8 Dependências robot_model kdl_parser Já instalado no ROS desktop orocos_kdl Já instalado no ROS desktop gazebo_ros_pkgs gazebo_ros_control sudo apt get install ros indigo gazebo ros pkgs ros indigo gazebo ros control Copyright (c) Walter Fetter Lages p.8
9 Criação do Pacote source /opt/ros/indigo/setup.bash source $HOME/catkin_ws/devel/setup.bash cd ~/catkin_ws/src catkin_create_pkg computed_torque_controller controller_interface controller_manager trajecotry_msgs urdf kdl_parser orocos_kdl cmake_modules s Eigen Copyright (c) Walter Fetter Lages p.9
10 package.xml Editar o arquivopackage.xml Descrição Mantenedor Licença Autor Dependências Exportações controller_interface Copyright (c) Walter Fetter Lages p.10
11 Plugin nopackage.xml <export> <controller_interface plugin="${prefix}/ computed_torque_controller_plugins.xml"/> </export> Copyright (c) Walter Fetter Lages p.11
12 computed_torque_controller_plugins.xml <library path="lib/libcomputed_torque_controller"> <class name="effort_controllers/computedtorquecontroller" type="effort_controllers::computedtorquecontroller" base_class_type="controller_interface::controllerbase"> <description> The ComputedTorqueController implements a computed torque controller in joint space for a robot with open chain dynamic model. The reference inputs (command in the ROS nomenclature) are joint positions, velocities and accelerations. This type of controller expects an EffortJointInterface type of hardware interface. </description> </class> </library> Copyright (c) Walter Fetter Lages p.12
13 AjustarCMakeLists.txt CMakeLists.txt deve ser editado para configurar os detalhes de compilação e linkagem EditarCMakeLists.txt para descomentar: catkin_package( ) INCLUDE_DIRS include LIBRARIES computed_torque_controller Copyright (c) Walter Fetter Lages p.13
14 AjustarCMakeLists.txt include_directories( include ${catkin_include_dirs} ) add_library(${project_name} ) src/computed_torque_controller.cpp target_link_libraries(${project_name} ${catkin_libraries} ${Eigen_LIBRARIES} ) Copyright (c) Walter Fetter Lages p.14
15 AjustarCMakeLists.txt install(targets ${PROJECT_NAME} ARCHIVE DESTINATION ${ CATKIN_PACKAGE_LIB_DESTINATION} LIBRARY DESTINATION ${ CATKIN_PACKAGE_LIB_DESTINATION} RUNTIME DESTINATION ${ CATKIN_PACKAGE_BIN_DESTINATION} ) Copyright (c) Walter Fetter Lages p.15
16 computed_torque_controller.h #ifndef COMPUTED_TORQUE_CONTROLLER_COMPUTED_TORQUE_CONTROLLER #define COMPUTED_TORQUE_CONTROLLER_COMPUTED_TORQUE_CONTROLLER #include <cstddef> #include <vector> #include <string> #include <ros/node_handle.h> #include <hardware_interface/joint_command_interface.h> #include <controller_interface/controller.h> #include <trajectory_msgs/jointtrajectorypoint.h> #include <Eigen/Core> #include <kdl/frames.hpp> #include <kdl_parser/kdl_parser.hpp> #include <kdl/chainidsolver_recursive_newton_euler.hpp> Copyright (c) Walter Fetter Lages p.16
17 computed_torque_controller.h namespace effort_controllers { class ComputedTorqueController: public controller_interface:: Controller<hardware_interface::EffortJointInterface> { ros::nodehandle node_; hardware_interface::effortjointinterface hw_; std::vector<hardware_interface::jointhandle> joints_; int njoints_; ros::subscriber sub_command_; KDL::ChainIdSolver_RNE idsolver_; Copyright (c) Walter Fetter Lages p.17
18 computed_torque_controller.h KDL::JntArray q_; KDL::JntArray dq_; KDL::JntArray v_; KDL::JntArray qr_; KDL::JntArray dqr_; KDL::JntArray ddqr_; KDL::JntArray torque_; KDL::Wrenches fext_; Eigen::MatrixXd Kp_; Eigen::MatrixXd Kd_; Copyright (c) Walter Fetter Lages p.18
19 computed_torque_controller.h void commandcb(const trajectory_msgs::jointtrajectorypoint:: ConstPtr &referencepoint); public: ComputedTorqueController(void); ~ComputedTorqueController(void); } bool init(hardware_interface::effortjointinterface hw, ros::nodehandle &n); void starting(const ros::time& time); void update(const ros::time& time,const ros::duration& duration ); }; #endif Copyright (c) Walter Fetter Lages p.19
20 computed_torque_controller.cpp #include <sys/mman.h> #include <computed_torque_controller/computed_torque_controller.h > #include <pluginlib/class_list_macros.h> namespace effort_controllers { Copyright (c) Walter Fetter Lages p.20
21 Construtor e Destrutor ComputedTorqueController::ComputedTorqueController(void): q_(0),dq_(0),v_(0),qr_(0),dqr_(0),ddqr_(0),torque_(0),fext_(0) { } ComputedTorqueController::~ComputedTorqueController(void) { sub_command_.shutdown(); } Copyright (c) Walter Fetter Lages p.21
22 init() bool ComputedTorqueController:: init(hardware_interface::effortjointinterface hw,ros:: NodeHandle &n) { node_=n; hw_=hw; std::vector<std::string> joint_names; if(!node_.getparam("joints",joint_names)) { ROS_ERROR("No joints in controller. (namespace: %s)", node_.getnamespace().c_str()); return false; } Copyright (c) Walter Fetter Lages p.22
23 init() njoints_=joint_names.size(); for(int i=0; i < njoints_;i++) { try { joints_.push_back(hw >gethandle(joint_names[i])); } catch(const hardware_interface::hardwareinterfaceexception& e) { ROS_ERROR_STREAM("Exception thrown: " << e.what()); return false; } } Copyright (c) Walter Fetter Lages p.23
24 init() sub_command_=node_.subscribe("command",1, &ComputedTorqueController::commandCB, this); std::string robot_desc_string; if(!node_.getparam("/robot_description",robot_desc_string)) { ROS_ERROR("Could not find /robot_description."); return false; } Copyright (c) Walter Fetter Lages p.24
25 init() KDL::Tree tree; if (!kdl_parser::treefromstring(robot_desc_string,tree)) { ROS_ERROR("Failed to construct KDL tree."); return false; } std::string chainroot; if(!node_.getparam("chain/root",chainroot)) { ROS_ERROR("Could not find chain_root parameter."); return false; } Copyright (c) Walter Fetter Lages p.25
26 init() std::string chaintip; if(!node_.getparam("chain/tip",chaintip)) { ROS_ERROR("Could not find chain/tip parameter."); return false; } KDL::Chain chain; if (!tree.getchain(chainroot,chaintip,chain)) { ROS_ERROR("Failed to get chain from KDL tree."); return false; } Copyright (c) Walter Fetter Lages p.26
27 init() KDL::Vector g; node_.param("gravity/x",g[0],0.0); node_.param("gravity/y",g[1],0.0); node_.param("gravity/z",g[2], 9.8); if((idsolver_=new KDL::ChainIdSolver_RNE(chain,g)) == NULL ) { ROS_ERROR("Failed to create ChainIDSolver_RNE."); return false; } Copyright (c) Walter Fetter Lages p.27
28 init() q_.resize(njoints_); dq_.resize(njoints_); v_.resize(njoints_); qr_.resize(njoints_); dqr_.resize(njoints_); ddqr_.resize(njoints_); torque_.resize(njoints_); fext_.resize(chain.getnrofsegments()); Kp_.resize(nJoints_,nJoints_); Kd_.resize(nJoints_,nJoints_); Copyright (c) Walter Fetter Lages p.28
29 init() std::vector<double> KpVec; if(!node_.getparam("kp",kpvec)) { ROS_ERROR("No Kp in controller %s.",node_.getnamespace ().c_str()); return false; } Kp_=Eigen::Map<Eigen::MatrixXd>(KpVec.data(),nJoints_, njoints_).transpose(); Copyright (c) Walter Fetter Lages p.29
30 init() std::vector<double> KdVec; if(!node_.getparam("kd",kdvec)) { ROS_ERROR("No Kd in controller %s.",node_.getnamespace ().c_str()); return false; } Kd_=Eigen::Map<Eigen::MatrixXd>(KdVec.data(),nJoints_, njoints_).transpose(); } return true; Copyright (c) Walter Fetter Lages p.30
31 starting() void ComputedTorqueController::starting(const ros::time& time) { for(unsigned int i=0;i < njoints_;i++) { q_(i)=joints_[i].getposition(); dq_(i)=joints_[i].getvelocity(); } qr_=q_; dqr_=dq_; SetToZero(ddqr_); Copyright (c) Walter Fetter Lages p.31
32 starting() struct sched_param param; if(!node_.getparam("priority",param.sched_priority)) { ROS_WARN("No priority configured for controller %s. Using highest possible priority.",node_.getnamespace().c_str()); param.sched_priority=sched_get_priority_max(sched_fifo); } if(sched_setscheduler(0,sched_fifo,¶m) == 1) { ROS_WARN("Failed to set real time scheduler."); return; } if(mlockall(mcl_current MCL_FUTURE) == 1) ROS_WARN("Failed to lock memory."); } Copyright (c) Walter Fetter Lages p.32
33 update() void ComputedTorqueController::update(const ros::time& time, const ros::duration& duration) { for(unsigned int i=0;i < njoints_;i++) { q_(i)=joints_[i].getposition(); dq_(i)=joints_[i].getvelocity(); } for(unsigned int i=0;i < fext_.size();i++) fext_[i].zero(); v_.data=ddqr_.data+kp_ (qr_.data q_.data)+kd_ (dqr_.data dq_.data); if(idsolver_ >CartToJnt(q_,dq_,v_,fext_,torque_) < 0) ROS_ERROR("KDL inverse dynamics solver failed."); Copyright (c) Walter Fetter Lages p.33
34 update() } for(unsigned int i=0;i < njoints_;i++) joints_[i].setcommand(torque_(i)); Copyright (c) Walter Fetter Lages p.34
35 Callback } void ComputedTorqueController::commandCB(const trajectory_msgs:: JointTrajectoryPoint::ConstPtr &referencepoint) { for(unsigned int i=0;i < njoints_;i++) { qr_(i)=referencepoint >positions[i]; dqr_(i)=referencepoint >velocities[i]; ddqr_(i)=referencepoint >accelerations[i]; } } Copyright (c) Walter Fetter Lages p.35
36 Exportação da Classe PLUGINLIB_EXPORT_CLASS(effort_controllers:: ComputedTorqueController, controller_interface::controllerbase) Copyright (c) Walter Fetter Lages p.36
37 Instalação source /opt/ros/indigo/setup.bash source $HOME/catkin_ws/devel/setup.bash cd ~/catkin_ws/src wget computed torque_controller.tgz tar xvzf indigo computed torque_controller.tgz cd.. catkin_make source $HOME/catkin_ws/devel/setup.bash Para utilizar é necessário criar os arquivos de configuração (.yaml) e de launch Estes arquivos devem ser criados em pacotes específicos para cada robô Copyright (c) Walter Fetter Lages p.37
38 Pacotewam_bringup wam_bringup/ CMakeLists.txt config/ computed_torque_controller.yaml pid_plus_gravity_controller.yaml launch/ gazebo.launch package.xml scripts/ set_home.sh step.sh step_home.sh step_zero.sh Copyright (c) Walter Fetter Lages p.38
39 computed_torque_controller.yaml joint_state_controller: type: joint_state_controller/jointstatecontroller publish_rate: 100 computed_torque_controller: type: effort_controllers/computedtorquecontroller joints: wam_joint_1 wam_joint_2 wam_joint_3 wam_joint_4 wam_joint_5 wam_joint_6 wam_joint_7 Copyright (c) Walter Fetter Lages p.39
40 computed_torque_controller.yaml Kp: [25.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 25.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 25.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 25.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 25.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 25.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 25.0] Kd: [10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0] Copyright (c) Walter Fetter Lages p.40
41 computed_torque_controller.yaml gravity: {x: 0.0, y: 0.0, z: 9.8} chain: {root: "wam_origin", tip: "wam_tool_plate"} priority: 99 Copyright (c) Walter Fetter Lages p.41
42 step.sh #!/bin/bash if [ "$#" ne 7 ]; then echo "Error: There should be 7 parameters." exit 1; fi; rostopic pub /controller/command \ trajectory_msgs/jointtrajectorypoint \ "[$1, $2, $3, $4, $5, $6, $7]" \ "[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]" \ "[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]" \ "[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]" \ "[0.0, 0.0]" " 1" Copyright (c) Walter Fetter Lages p.42
43 Instalação source /opt/ros/indigo/setup.bash source $HOME/catkin_ws/devel/setup.bash cd ~/catkin_ws/src wget wam description.tgz tar xvzf indigo wam_description.tgz wget wam bringup. tgz tar xvzf indigo wam_bringup.tgz cd.. catkin_make source $HOME/catkin_ws/devel/setup.bash Copyright (c) Walter Fetter Lages p.43
44 Simulação no Gazebo roslaunch wam_bringup gazebo.launch controller:=computed_torque_controller Copyright (c) Walter Fetter Lages p.44
45 Gráfico de Computação rqt_graph & Copyright (c) Walter Fetter Lages p.45
46 Mover o Robô rosrun wam_bringup step.sh Copyright (c) Walter Fetter Lages p.46
47 Exercícios Usar orqt_graph para fazer o gráfico da posição das juntas Verificar o gráfico da posição juntas movendo o robô Adaptar o pacoteq2d_bringup para usar o controlador por torque calculado Fazer o arquivo de configuração do controlador Fazer um arquivo de launch para carregar o controlador que possa ser chamado pelo gazebo.launch quando passado o parâmetro com o nome do controlador Copyright (c) Walter Fetter Lages p.47
48 PID com Compensação de Gravidade É o controlador default do WAM e da maioria dos robôs industriais Instalação source /opt/ros/indigo/setup.bash source $HOME/catkin_ws/devel/setup.bash cd ~/catkin_ws/src wget pid plus gravity controller.tgz tar xvzf indigo pid plus gravity controller.tgz cd.. catkin_make source $HOME/catkin_ws/devel/setup.bash Copyright (c) Walter Fetter Lages p.48
49 pid_plus_gravity_controller.yaml joint_state_controller: type: joint_state_controller/jointstatecontroller publish_rate: 250 pid_plus_gravity_controller: type: effort_controllers/pidplusgravitycontroller joints: wam_joint_1 wam_joint_2 wam_joint_3 wam_joint_4 wam_joint_5 wam_joint_6 wam_joint_7 Copyright (c) Walter Fetter Lages p.49
50 pid_plus_gravity_controller.yaml # PID parameters from /etc/barrett/wam7w.conf wam_joint_1: {p: 900.0, i: 2.5, d: 10.0, i_clamp: 25.0} wam_joint_2: {p: , i: 5.0, d: 20.0, i_clamp: 20.0} wam_joint_3: {p: 600.0, i: 2.0, d: 5.0, i_clamp: 15.0} wam_joint_4: {p: 500.0, i: 0.5, d: 2.0, i_clamp: 15.0} wam_joint_5: {p: 50.0, i: 0.5, d: 0.5, i_clamp: 5.0} wam_joint_6: {p: 50.0, i: 0.5, d: 0.5, i_clamp: 5.0} wam_joint_7: {p: 8.0, i: 0.1, d: 0.05, i_clamp: 5.0} gravity: {x: 0.0, y: 0.0, z: 9.8} chain: {root: "wam_origin", tip: "wam_tool_plate"} priority: 99 Copyright (c) Walter Fetter Lages p.50
51 Simulação no Gazebo roslaunch wam_bringup gazebo.launch controller:=pid_plus_gravity_controller Copyright (c) Walter Fetter Lages p.51
52 Gráfico de Computação Copyright (c) Walter Fetter Lages p.52
53 Mover o Robô rosrun wam_bringup step.sh Copyright (c) Walter Fetter Lages p.53
54 Exercícios Usar orqt_graph para fazer o gráfico da posição das juntas Verificar o gráfico da posição juntas movendo o robô Adaptar o pacoteq2d_bringup para usar o controlador por PID com compensação de gravidade Fazer o arquivo de configuração do controlador Fazer um arquivo de launch para carregar o controlador que possa ser chamado pelo gazebo.launch quando passado o parâmetro com o nome do controlador Usar odynamic_reconfigure para ajustar os ganhos do controlador Copyright (c) Walter Fetter Lages p.54
55 Exercícios Usando o robô Quanser 2DSFJE, comparar o desempenho da resposta ao salto para os controladores: PID independene por junta PID com compensação de gravidade Torque calculado Copyright (c) Walter Fetter Lages p.55
Jacobiano no ROS. Walter Fetter Lages
Jacobiano no ROS Walter Fetter Lages [email protected] 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
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 [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e
Geração de Trajetórias no ROS
Geração de Trajetórias no ROS Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10026 Robótica
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
Robot Operating System (ROS)
Robot Operating System (ROS) Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG04479 Robótica
Robot Operating System (ROS)
Robot Operating System (ROS) Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ENG10026 Robótica
Robot Operating System (ROS)
Robot Operating System (ROS) Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia ELE228 Robótica
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
Unified Robot Description Format (URDF)
Unified Robot Description Format (URDF) Walter Fetter Lages [email protected] Universidade Federal do Rio Grande do Sul Escola de Engenharia Departamento de Sistemas Elétricos de Automação e Energia
GLPI Gestão total e gratuita do seu parque informático
GLPI Gestão total e gratuita do seu parque informático Date : 20 de Maio de 2016 Quando se é administrador de um parque informático de escala média/grande é importante possuir as melhores plataformas para
Engenharia de Controle e Automação: ENG03316 Mecanismos I Engenharia Elétrica: ENG10017 Sistemas e Sinais e ENG04475 Microprocessadores I
UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL ESCOLA DE ENGENHARIA DEPARTAMENTO DE SISTEMAS ELÉTRICOS DE AUTOMAÇÃO E ENERGIA PLANO DE ENSINO PERÍODO LETIVO 2018/2 DISCIPLINA: ROBÓTICA A ENG10026 Créditos:
Teorias do Módulo da Satisfatibilidade (Satisfiability Modulo Theories - SMT)
Universidade Federal do Amazonas Faculdade de Tecnologia PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA Teorias do Módulo da Satisfatibilidade (Satisfiability Modulo Theories - SMT) Lucas C. Cordeiro
Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.
Computação L2 Linguagem C++ [email protected] Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);
Aplicação MVC com Class Library
Aplicação MVC com Class Library Vamos considerar uma Class Library com o modelo de dados e com acesso à base de dados através do Entity Framework. Uma Class Library nunca funciona sozinha. Vamos usá-la
Backup do Samba 4. Introdução. Backup do samba4
Backup do Samba 4 Introdução Este documento visa a orientação para a configuração de backup dos dados de configurações do Samba4. Porém, não é uma solução para backup dos arquivos dos usuários, servidor
PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 6: Polimorfismo
PCS3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 6: Polimorfismo Escola Politécnica da Universidade de São Paulo Conceito de polimorfismo 2 Polimorfismo A palavra vem
PCS Laboratório de Programação Orientada a Objetos 1a. Prova. 02 de Setembro de 2015
PCS - 3111 Laboratório de Programação Orientada a Objetos 1a. Prova 02 de Setembro de 2015 Questão 1 (2,6) Deseja-se implementar um programa que recebe um mês e um dia atual de um ano e o mês e o dia de
Aprenda a instalar o GLPI no Centos 6.5
Aprenda a instalar o GLPI no Centos 6.5 Date : 31 de Janeiro de 2014 Solução fantástica para Gestão total do seu parque informático: Experimente já aqui Quando se é administrador de um parque informático
Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes. Ciência da Computação da PUC Minas
Construindo Aplicações com ASP.NET MVC 2.0 Aula 03 Luiz Alberto Ferreira Gomes Ciência da Computação da PUC Minas 2 Camada responsável por armazenar em um repositório de dados e reconstituir objetos de
Introdução ao OpenCV
Instituto Federal Sul-rio-grandense Campus Pelotas Engenharia Elétrica Processamento de Imagens Digitais Introdução ao OpenCV (Parte I) Glaucius Décio Duarte Atualizado em: 20 ago. 2018 OpenCV (Open Source
Laboratório 2. Configurando o Serviço DHCP
Neste laboratório iremos falar sobre o serviço DHCP (Dynamic Host configuration Protocol). O DHCP faz com que as máquinas clientes da rede recebam os endereços IP, máscara de subrede, gateway, servidores
Palavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
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
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
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: ------------------------------------------------------------------------------------------------------
Gerência de Redes de Computadores Zabbix Instalação. Prof. Alex Furtunato
Gerência de Redes de Computadores Zabbix Instalação Prof. Alex Furtunato [email protected] Introdução Sistema de monitoramento de rede enterprise open source, com solução de monitoramento distribuído
MONITORAMENTO COM ZABBIX
Faculdade de Tecnologia SENAC Goiás Gestão da Tecnologia da Informação MONITORAMENTO COM ZABBIX Alunos: Desiron Gonçalves Costa Filho Iury Neres Santana Jader Figueiredo de Oliveira Jefferson Mendes DEZEMBRO
Pilhas. Profa Morganna Diniz
Pilhas Profa Morganna Diniz Pilhas Geralmente pilhas são úteis em situações em que dados devem ser recuperados em ordem inversa a do armazenamento É uma estrutura de dados linear que permite acesso por
Envio de alertas por utilizando SMTP autenticado
Envio de alertas por e-mail utilizando SMTP autenticado INTRODUÇÃO: O Zabbix tem suporte a envio de e mails, porém sem autenticação, para utilizar o recurso de autenticação é preciso recorrer a scritps
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
# Estrutura de Dados # Aula - Revisão de C/C++ na Prática. Prof. Leinylson Fontinele Pereira
# Estrutura de Dados # Aula - Revisão de C/C++ na Prática Prof. Leinylson Fontinele Pereira Na aula anterior... Ponteiros Funções Introdução 3 O que vamos aprender? Preparação do ambiente de testes Conceitos
Prof. Jhonatan Fernando
Prof. Jhonatan Fernando Métodos Programação OO Instâncias de variáveis (objetos) Mensagens Classes Herança Polimorfismo Encapsulamento Abstração Programação Estruturada Procedimentos e funções Variáveis
CONTEÚDO PROGRAMÁTICO
CONTEÚDO PROGRAMÁTICO Python Básico Carga horária: 24 horas TreinaWeb Tecnologia LTDA CNPJ: 06.156.637/0001-58 Av. Paulista, 1765 - Conj 71 e 72 São Paulo - SP CONTEÚDO PROGRAMÁTICO 1 - Introdução Introdução
Administração de Redes Linux
Administração de Redes Linux Alberto Felipe Friderichs Barros [email protected] Users As contas de usuário são projetados para fornecer segurança no sistema operacional Linux. Cada pessoa no sistema
Crie a sua Wikipedia com o MediaWiki em 15 minutos
Crie a sua Wikipedia com o MediaWiki em 15 minutos Date : 15 de Junho de 2013 Porque continuamos a construir sites? Esta é a questão que coloco depois de nos últimos tempos terem aparecido tantas ferramentas/plataformas,
Introdução à linguagem C++
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 2: Introdução à linguagem C++ Introdução à linguagem C++ Conceitos básicos: variáveis, tipos de dados, constantes, I/O, etc. Estruturas
Configuração do Apache Cordova Lab. 13. Prof. Bruno C. Vani
Configuração do Apache Cordova Lab. 13 Prof. Bruno C. Vani [email protected] Apache Cordova Visão Geral [1/2] Permite acessar funcionalidades nativas dos dispositivos móveis (como câmera, GPS, etc.)
Configuração. Ubuntu Server Sistemas Distribuídos Engenharia da Computação
+ Sistemas Distribuídos Engenharia da Computação Prof. Jairson Rodrigues Universidade Federal do Vale do São Francisco Ubuntu Server 14.04 Configuração + Ubuntu Server 14.04 AGENDA Login Remoto Samba Server
Linguagens de Programação
Linguagens de Programação Paradigma Imperativo Matheus Hafner Tiago Xavier CET 087 - Conceitos de Linguagens de Programação (CLP) 17 de novembro de 2011 Aula Prática Instalação Fortran sudo apt-get install
osticket Aprenda como instalar no Ubuntu
osticket Aprenda como instalar no Ubuntu Date : 17 de Julho de 2015 O osticket é uma plataforma Web opensource direccionada para o registo de pedidos de Help Desk (ex. pedidos de suporte, ou pedidos de
Criação de uma aplicação Web ASP.NET MVC 4
Criação de uma aplicação Web ASP.NET MVC 4 usando Code First, com Roles (VS2012) Baseado no artigo de Scott Allen Roles in ASP.NET MVC4 : http://odetocode.com/blogs/scott/archive/2012/08/31/seeding membership
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
Linguagens de Programação Conceitos e Técnicas. Amarrações
Linguagens de Programação Conceitos e Técnicas Amarrações Conceituação Amarração (ou binding) é uma associação entre entidades de programação, tais como entre uma variável e seu valor ou entre um identificador
Programação Estruturada e Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected]
U.C. (21093) Programação por Objetos. XX de Julho de INSTRUÇÕES --
Ministério da Educação e Ciência p-fólio U.C. (21093) Programação por Objetos XX de Julho de 2015 -- INSTRUÇÕES -- O estudante deverá responder à prova na folha de ponto e preencher o cabeçalho e todos
Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas
Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany [email protected] ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include
Instalação Apache Tomcat 8.5 no Debian 8
O Software Apache Tomcat é uma implementação de código aberto do Java Servlet, JavaServer Pages, Java Expression Language e Java WebSocket technologies. O software Apache Tomcat é desenvolvido em um ambiente
Manual de instalação do Maple para Linux
Manual de instalação do Maple para Linux Antes de começar tenha em mente que este software só poderá ser ativado em um único computador, uma vez ativado não será possível a reativação em outro computador.
PCS Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 5: Encapsulamento e Tipo Abstrato de Dados
PCS 3111 Laboratório de Programação Orientada a Objetos para Engenharia Elétrica Aula 5: Encapsulamento e Tipo Abstrato de Dados Escola Politécnica da Universidade de São Paulo Agenda Questões Típicas
Dicas PET-Tele. Instalação do módulo CGILua no Apache 2.2
Universidade Federal Fluminense UFF Escola de Engenharia TCE Curso de Engenharia de Telecomunicações TGT Programa de Educação Tutorial PET Grupo PET-Tele Dicas PET-Tele Instalação do módulo CGILua no Apache
Alertas por e-mail utilizando SMTP autenticado
Alertas por e-mail utilizando SMTP autenticado INTRODUÇÃO: O Zabbix tem suporte a envio de e mails, porém sem autenticação, para utilizar o recurso de autenticação é preciso recorrer a scritps externos,
Gerência de Redes de Computadores MRTG. Prof. Alex Furtunato
Gerência de Redes de Computadores MRTG Prof. Alex Furtunato [email protected] Introdução Multi Router Traffic Grapher Script criado para monitorar o tráfego em um site, com link de 64kbps, em
Criando um servidor de log
Criando um servidor de log Date : Outubro 30, 2013 Vejo que um grande problema de muitos servidores é não saber administrar corretamente a rede, seus logs e acessos. Por este motivo vou ensinar neste post
Uso de PLC code display para monitoramento de lógica do PLC
WinCC V1X Uso de PLC code display para monitoramento de lógica do PLC Denilson Pegaia Objetivo: indicar os passos necessários para configurar o objeto PLC code display no WinCC Professional V1X de modo
