Hands-On Session: Robotic Control

Similar documents
Programming for Robotics Introduction to ROS

John Hsu Nate Koenig ROSCon 2012

COMP3431 Robot Software Architectures

EE-565-Lab2. Dr. Ahmad Kamal Nasir

ROS : Robot Operating System

Introduction to ROS. Lasse Einig, Dennis Krupke, Florens Wasserfall

Humanoid whole-body motion control with multiple contacts. Francesco Nori Robotics, Brain and Cognitive Sciences

Gazebo. Amirreza Kabiri Fatemeh Pahlevan Aghababa. Autumn 2017

Control Technology. motion controller and power amplifier

3D Simulation in ROS. Mihai Emanuel Dolha Intelligent Autonomous Systems Technische Universität München. November 4, 2010

Programming for Robotics Introduction to ROS

3 Problems You Need to Tackle when Developing Robot Software

ABOUT ME. Gianluca Bardaro, PhD student in Robotics Contacts: Research field: goo.gl/dbwhhc.

ABOUT ME. Gianluca Bardaro, PhD student in Robotics Contacts: Research field:

Adding a Sensor to the PR2. ROS + PR2 Training Workshop Kevin Watts

Introduction to ROS. COMP3431 Robot Software Architectures

Quick Introduction to ROS

Cecilia Laschi The BioRobotics Institute Scuola Superiore Sant Anna, Pisa

Project assignment: 1 student Holze. Fusion of polarized images

INF Introduction to Robot Operating System

INF Introduction to Robot Operating System

Simulink Based Robot Arm Control Workstation. Figure 1-1 High Level Block Diagram

Program your face off

DESIGN, SIMULATION AND CONTROL OF ISOGLIDE T3R1 PARALLEL ROBOT

Teaching Assistant: Roi Yehoshua

Robotics System Toolbox

Click to edit Master title style

Modeling, Design, and Control of Robotic Mechanisms (MathWorks/Kyungnam Univ.) -1-

Lorenzo Natale. Coordination and Communication with the YARP middleware

CS 309: Autonomous Intelligent Robotics FRI I. Lecture 9: Introduction to ROS. Instructor: Justin Hart

CARE-O-BOT-RESEARCH: PROVIDING ROBUST ROBOTICS HARDWARE TO AN OPEN SOURCE COMMUNITY

XBotCore: A Real-Time Cross-Robot Software Platform

AMR 2011/2012: Final Projects

Introduction to Robot Operating System (ROS)

Introduction to Mobile Robotics

Plant modeling: A First Step to Early Verification of Control Systems

Construction of SCARA robot simulation platform based on ROS

ROS-Industrial Basic Developer s Training Class. Southwest Research Institute

The Problem. Robotics is a huge and growing area: research, innovation Lack of standards for robotics. Programming Robots with ROS

Non Linear Control of Four Wheel Omnidirectional Mobile Robot: Modeling, Simulation and Real-Time Implementation

UNMANNED UNDERWATER VEHICLE SIMULATOR ENABLING THE SIMULATION OF MULTI- ROBOT UNDERWATER MISSIONS WITH GAZEBO

Hand. Desk 4. Panda research 5. Franka Control Interface (FCI) Robot Model Library. ROS support. 1 technical data is subject to change

S7316: Real-Time Robotics Control and Simulation for Deformable Terrain Applications Using the GPU

Robotics. SAAST Robotics Robot Arms

Introduction to V-REP

Deterministic, asynchronous message driven task execution with ROS

Courtesy of CMA/Flodyne/Hydradyne Motion Control Hydraulic Pneumatic Electrical Mechanical (800)

: A Fast Symbolic, Dynamic Simulator interfaced with

Simulation-Based Design of Robotic Systems

DESIGN AND IMPLEMENTATION OF VISUAL FEEDBACK FOR AN ACTIVE TRACKING

Robotics Programming Laboratory

Event-based Systems with ROS: Examples from the STAIR Project

NMT EE 589 & UNM ME 482/582 ROBOT ENGINEERING. Dr. Stephen Bruder NMT EE 589 & UNM ME 482/582

Hardware and Software Co-Design for Motor Control Applications

다중센서기반자율시스템의모델설계및개발 이제훈차장 The MathWorks, Inc. 2

The YARP middleware. Lorenzo Natale. icub Facility Istituto Italiano di Tecnologia, Genova, Italy

ArchGenTool: A System-Independent Collaborative Tool for Robotic Architecture Design

High School PLTW Digital Electronics Curriculum

Thomas Bräunl EMBEDDED ROBOTICS. Mobile Robot Design and Applications with Embedded Systems. Second Edition. With 233 Figures and 24 Tables.

CS283: Robotics Fall 2016: Software

Lab Exercise 07 DC motor PI velocity control

Prototyping a Three-link Robot Manipulator

Implementation of an Automated Sorting System with a 2-Link Robotic Arm

Modeling HDL components for FPGAs in control applications

Control 2. Keypoints: Given desired behaviour, determine control signals Inverse models:

Human Machine Interaction

Robotics 2 Information

Communication Interfaces. Motors. Sensors (Feedback)

EtherCAT User Manual. For SS EtherCAT

Robotics 2 Iterative Learning for Gravity Compensation

A Model-Driven Approach to Embedded Control System Implementation

Hardware and Software Co-Design for Motor Control Applications

Implementation of Conventional and Neural Controllers Using Position and Velocity Feedback

Introduction to Control Systems Design

The Montana Toolset: OSATE Plugins for Analysis and Code Generation

Rigid Body Transformations

Introduction to Welding Automation

Cross-platform software development in practice. Object-Oriented approach.

Hexapod Motion Controller with EtherCAT

Digital Servo Amplifier S700

Embedded Motion Control Suggestions for the design of robotic tasks and of their software architectures

Developing Algorithms for Robotics and Autonomous Systems

Using the ikart mobile platform

ROS-Industrial Basic Developer s Training Class

Intelligent Robots Seminar

Linear/Rotary Hexapod Actuators with IMU8420 Motion Capture and Real Time Simulator Tools

SPARTAN ROBOTICS FRC 971

VIRTUAL PROTOTYPING FOR ROBOT CONTROLLERS

Distributed Robotic Architecture

COMP3431 Robot Software Architectures

Course Updates. Website set-up at

A Geometric Approach to Inverse Kinematics of a 3 DOF Robotic Arm

A Modular Software Framework for Eye-Hand Coordination in Humanoid Robots

To Do. History of Computer Animation. These Lectures. 2D and 3D Animation. Computer Animation. Foundations of Computer Graphics (Spring 2010)

Carnegie Mellon University

Introduction to Mobile Robotics

Motor Control Tool Kit for SPC5Studio Overview

Advanced machine automation

PSO based Adaptive Force Controller for 6 DOF Robot Manipulators

icub Courses icub Control Modes & Interaction Modes

Transcription:

: Robotic Control Robotics M.Sc. programme in Computer Science lorenzo.vannucci@santannapisa.it Ugo Albanese ugo.albanese@santannapisa.it Alessandro Ambrosano alessandro.ambrosano@santannapisa.it March 15th, 2017

Goal of this hands-on session 1. How robots can be controlled 2. Robotic simulators 3. Implementation of a low level controller

Goal of this hands-on session 1. How robots can be controlled 2. Robotic simulators 3. Implementation of a low level controller

Controlling robots Sensors Control Algorithm while (true) { read_sensors() compute_motion() actuate() wait() * } * loop should run at a fixed frequency Actuators

Controlling robots Control Algorithm Sensors read_sensors() { read_adc() count_steps() convert_to_angle() } actuate() { convert_angle_to_c() write_dac() } Actuators

Controlling robots (today) Control Algorithm while (true) { actual joint angles, velocities, torques read_sensors() Sensors receive_data() Robotics compute_motion() middleware } send_commands() wait() desired joint angles, velocities, torques actuate() Actuators

Robotics Middlewares There is no standard solution, and in fact, there are many middlewares. However, most of them provide at least: hardware abstraction inter-process communication

ROS: Robot Operating System ROS is a distributed, multi-lingual, open-source robotic middleware. Process Simulation Control Package management Visualization Planning organization Inter-process Graphical user Perception Software communication interface Mapping distribution Device drivers Data logging Manipulation Documentation Tutorials

ROS Nodes The node is the minimal execution element of a ROS architecture: single-purpose, executable program individually executed and managed exchange messages between them ROS Master The ROS Master manages the communication between nodes registration registration and every node registers at startup with the master. messages Node 1 Node 2 Nodes have two way to communicate between them: topics and services.

ROS Topics ROS topics work using the publish-subscribe pattern: one publisher for every topic multiple subscribers single direction messages are typed asynchronous Node 1 (publisher) sensor_msgs/image std_msgs/header header uint32 seq time stamp string frame_id uint32 height uint32 width string encoding uint8 is_bigendian uint32 step uint8[] data Node 2 (subscriber) Node 3 (subscriber) Node 4 (subscriber) Let s try it out!

ROS Services ROS services are remote procedure calls: one node provides a service multiple nodes can use that service information is bidirectional messages are typed synchronous Node 1 (client) request response Node 2 (server) controller/setpidparameters string joint float64 kp float64 ki float64 kd --- bool success Let s try it out!

ROS Enabled Robots A robot that publishes sensors reading an listens for motor commands by subscribing. /right_camera publish /rhip_enc publish /rknee/pos subscribe /rknee/vel subscribe /right_ft publish

Goal of this hands-on session 1. How robots can be controlled 2. Robotic simulators 3. Implementation of a low level controller

Robotic simulators A robotic simulator is a piece of software mimics the robotic system and its surrounding environment to some level of accuracy. It may include: physics engine for more realistic simulations 3d rendering support for a robotic middleware Robotics Toolbox V-REP

Why simulate robots? cheaper: robots are expensive and may not be available rapid prototyping (sw): much faster to test control algorithms rapid prototyping (hw): much faster to test design changes

Why simulate robots? cheaper: robots are expensive and may not be available rapid prototyping (sw): much faster to test control algorithms rapid prototyping (hw): much faster to test design changes avoid these kind of situations However, it is important to remember that simulations are just simplified versions of reality, thus controllers that work in simulation may not work on the physical robot!

Gazebo Gazebo is a robotic simulator (originally) developed as part of ROS. Main features: multiple physics engines supported (ODE, Bullet, Simbody, DART) 3d rendering via OGRE extensible through plugins (i.e. to add ROS/robots support) support for standard robot description formats (URDF, SDF) open source client-server architecture

Gazebo Inside a Gazebo simulation: World Light Cube1 Robot base L1 J0 ROS plugin subscribe publish topic topic Gazebo simulation loop: Cube2 Cube3 Table top J legs L2... Ln J1 J2 Jn-1 while (true) { execute_plugins() apply_forces_bodies() compute_collisions() integration_step() update_visuals() }

e. lessly integrated into the HBP Unified l HD monitors Port al. o high-end SP6 just released a beta version of the cards The each. Neurorobotics portal and Platform the development (NRP) of the neuro - all first, the robotics component of the portal w ill start m direcktly in the follow ing months. challenges: The Neurorobotics Platform is a simulation toolkit that aims at providing synchronized neural and robotic simulations, and data transfer from robot sensors/actors to brain areas rge displays. and vice versa. w the desktop m, using h-fidelity ren - (bottom). More on these kind of control methods in future lessons Neuromorphic Computing

NRP features physical and robotic simulations are provided by Gazebo, via the ROS middleware web-based frontend for visualization and environment creation (replacing the standard Gazebo client) control loop implemented though a set of (transfer) functions that are called at every iteration of the loop includes a robot and environment designer more features will be discussed in future lessons Neuromorphic Computing

Goal of this hands-on session 1. How robots can be controlled 2. Robotic simulators 3. Implementation of a low level controller

PID controller A PID controller is a low level feedback controller for a single joint capable of moving the joint from the current position to a desired position. This is done by converting the desired joint angle into an actuation signal (usually voltage). t V t = K p e t + K i න 0 e τ dτ + K d eሶ t e t = q d (t) q a (t)

PID controller implementation Let s try to do implement a discrete PID controller for the elbow joint of the icub robot simulated in the NRP: simulation loop runs at 50Hz (every 20ms of simulated time) control signal is the elbow joint velocity, not voltage target motion is q d n = 0.8 sin t + 1.1 discrete PID V n = K p e n + K i e i (n) + K d e d n e n = q d n q a (n) e i n = e i n 1 + (e n e(n 1)) t 2 e d n = e n e(n 1) t

Hands-On Resources ROS: www.ros.org Gazebo: gazebosim.org Neurorobotics Platform: neurorobotics.net Others (related): lorenzo.vannucci@santannapisa.it ugo.albanese@santannapisa.it alessandro.ambrosano@santannapisa.it Neuromorphic Computing