ROSLab: A High-level Programming Environment for Robotic Co-design

Slides:



Advertisements
Similar presentations
Hardware/ Software Partitioning 2011 年 12 月 09 日 Peter Marwedel TU Dortmund, Informatik 12 Germany Graphics: © Alexandra Nolte, Gesine Marwedel, 2003 These.
Advertisements

ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
A Hierarchical Co-ordination Language for Interacting Real-time Tasks Arkadeb Ghosal, UC Berkeley Thomas A. Henzinger, EPFL Daniel Iercan, "Politehnica"
Simbeeotic: A Simulator and Testbed for Micro-Aerial Vehicle Swarm Experiments Bryan Kate, Jason Waterman, Karthik Dantu and Matt Welsh Presented By: Mostafa.
Parth Kumar ME5643: Mechatronics UAV ATTITUDE AND HEADING HOLD SYSTEM.
Architecture Modeling and Analysis for Embedded Systems Oleg Sokolsky CIS700 Fall 2005.
Reegan Worobec & David Sloan In collaboration with UAARG.
Causality Interface  Declares the dependency that output events have on input events.  D is an ordered set associated with the min ( ) and plus ( ) operators.
Laboratory 5: Introduction to LabVIEW. Overview Objectives Background Materials Procedure Report / Presentation Closing.
Real-Time Control Architecture for SAUVIM T.W.Kim, J.Yuh, S.K.Choi Autonomous Systems Lab. University of Hawaii, U.S.A.
Client: Space Systems & Controls Laboratory (SSCL) Advisor : Matthew Nelson Anders Nelson (EE) Mathew Wymore (CprE)
RaPTEX: Rapid Prototyping of Embedded Communication Systems Dr. Alex Dean & Dr. Mihai Sichitiu (ECE) Dr. Tom Wolcott (MEAS) Motivation  Existing work.
Fuzzy control of a mobile robot Implementation using a MATLAB-based rapid prototyping system.
Embedded Microcomputer Systems Andrew Karpenko 1 Prepared for Technical Presentation February 25 th, 2011.
What is ROS? Robot Operating System
AUTOMATION OF ROBOTIC ARM
1. Introduction 1.1 Background 1.2 Real-time applications 1.3 Misconceptions 1.4 Issues in real-time computing 1.5 Structure of a real-time system.
Sérgio Ronaldo Barros dos Santos (ITA-Brazil)
1 Advanced topics in OpenCIM 1.CIM: The need and the solution.CIM: The need and the solution. 2.Architecture overview.Architecture overview. 3.How Open.
EasyC Programming Workshop January 30, 2008 Hauppauge High School SPBLI - FIRST Mark McLeod Advisor Hauppauge Team 358 Northrop Grumman Corp.
Electronic transmissions Main controls Shift timing is computer controlled Line pressure is computer controlled which controls shift feel Computer can.
ESL and High-level Design: Who Cares? Anmol Mathur CTO and co-founder, Calypto Design Systems.
KDC Arm Project John Kua Kathryn Rivard Benjamin Stephens Katie Strausser.
By: Eric Backman Advisor: Dr. Malinowski.  Introduction  Goals  Project Overview and Changes  Work Completed  Updated Schedule.
Wall Encounter By Made easy by Dwayne Abuel.
Ground Control Station Flight conTrol
1 Model Checking of Robotic Control Systems Presenting: Sebastian Scherer Authors: Sebastian Scherer, Flavio Lerda, and Edmund M. Clarke.
Abstract A Structured Approach for Modular Design: A Plug and Play Middleware for Sensory Modules, Actuation Platforms, Task Descriptions and Implementations.
Automated Maze System Development Group 9 Tanvir Haque Sidd Murthy Samar Shah Advisors: Dr. Herbert Y. Meltzer, Psychiatry Dr. Paul King, Biomedical Engineering.
Mark Randall & Kevin Claycomb Faculty Advisor: David Mitchell Industrial Sponsor: IEEE.
CS 351/ IT 351 Modeling and Simulation Technologies HPC Architectures Dr. Jim Holten.
Instrument Control Systems Seminar 2014, 20 th -24 th October 2014 Instrument Control Systems 2014 J.Knudstrup, ESO/DoE/CSE/CINS 3GTCCD – Detector Control.
1 Introduction to Haptics Introduction to the Hapkit board Allison M. Okamura Stanford University.
Autonomous Quadcopter Andrew Martin, Baobao Lu, Cindy Xin Ting Group 37 TA: Katherine O'Kane.
KNU RTLAB A Real-Time Linux System For Autonomous Navigation And Flight Attitude Control Of An Uninhabited Aerial Vehicle Charles E. Hall, Jr. Mechanical.
Programming Design ROBOTC Software. Behavior-Based Programming A behavior is anything your robot does –Turning on a single motor or servo Three main types.
Experimental Software Engineering Course for Training Practitioners in Embedded Real-Time Systems Real-Time Systems LAB, School of Electronic Engineering,
Automatic manufacturing systems project I. KMAGP12ANC L: András Boráros-Bakucz.
Life in the Atacama, Design Review, December 19, 2003 Carnegie Mellon Software Architecture Life in the Atacama Design Review December 19, 2003 David Wettergreen.
A Compiler for Printable Robots
Programming Design ROBOTC Software Principles Of Engineering
SNS COLLEGE OF ENGINEERING
Obstacle avoiding robot { pixel }
Deterministic Communication with SpaceWire
Simulink Interface Layer (SIL)
TrueTime.
Technological Skills “Flow Charting”
Making Simple Robots Simpler to Make by Making Them Simpler
John Backes, Rockwell Collins Dan DaCosta, Rockwell Collins
ROSLab: a High Level Programming Language for Robotic Applications
ROBOTC for VEX On-Site Professional Development
The JAviator Flight Control System
Customized Effectors for Grasping
RAILWAY TRACK SNAP NOTIFICATION
Real-Time Performance Evaluation of a Genetic-Algorithm-Based Fuzzy Logic Controller for IPM Motor Drives Presented by, K.Aishwarya S.Meenakshi M.Surya.
Directional Driver Hazard Advisory System
Programming Design ROBOTC Software Computer Integrated Manufacturing
The “Ecosystem” Code for Everyone
NC,CNC machines and Control Programming.
Controlling your quadcopter
NC and CNC machines and Control Programming
CS 501: Software Engineering Fall 1999
Introduction To software engineering
Programming Design ROBOTC Software Principles Of Engineering
Soft Haptics Lab, School of Materials Science, JAIST 3/26/ :05 AM Mechatronic Course -Duong, Van Lac Project: Design and control.
John Backes, Rockwell Collins Dan DaCosta, Rockwell Collins
<Your Team # > Your Team Name Here
Robot Operating System (ROS): An Introduction
Anand Bhat*, Soheil Samii†, Raj Rajkumar* *Carnegie Mellon University
Controlling your quadcopter
Presentation transcript:

ROSLab: A High-level Programming Environment for Robotic Co-design Nicola Bezzo, Peter Gebhard, Andrew King, Junkil Park, Oleg Sokolsky, Insup Lee

ELECTRONICS SYNTHESIS Objective 1) Development of a Simplified High-Level Programming Language for Robotic Applications. 2) Complete Robot Synthesis. HL code generation LL code generation Hardware description generation PRINTABLE QUADROTOR ELECTRONICS SYNTHESIS Y. Mulgaonkar, V. Kumar (UPenn) PRINTABLE INSECT M. Piccoli, M. Yim (UPenn) A. Mehta, M. Tolley, D. Rus (MIT) A. Mehta, M. Tolley, D. Rus (MIT)

Graphical Block - ROS Code Pairing #include <messages/encoder.h> void encoderCallback (const messages::encoder_msg::ConstPtr& enc_message) { EncoderVelC = “operation involving number of ticks read by encoder” } ros::Subscriber enc_sub; enc_sub = node.subscribe ("/encoder_topic", 1, encoderCallback); = ENCODER /encoder_topic EncoderVelC

How does ROSLab generate code? Formal Code Generation to C++ / ROS data structure and semantic check port type check Template with “holes” $includes$ $pub_ports$ $sub_port_values$ $sub_port_callbacks$ int main(int argc, char **argv) { //----MAIN ros::init(argc, argv, $node name$); ros::NodeHandle node; $pub_connections$ $sub_callback_setup$ ros::Rate r(100); while(ros::ok()) { //----WHILE ros::spinOnce(); // ***** ADD YOUR CODE HERE ***** // ********************************* r.sleep(); } // --- end while return EXIT_SUCCESS; } // --- end main Advertise Example $port_name$ = node.advertise<$port_type$> ("$port_topic$", 1); port_name port_topic port_type

ROSLab Demo https://www.youtube.com/watch?v=QguFMBYzgTE

SCHEDULING OF CONTROLLERS TF = 2 sec 1 Hz 1 Hz SENSOR 1 CONTROLLER 1 CruiseControl VX WZ SENSOR 2 Controller 2 Obstacle Avoid. Controller 3 Waypoint Nav 2 Hz - Fixed delay

SCHEDULING OF CONTROLLERS TF = 3 sec 1 Hz 1 Hz SENSOR 1 CONTROLLER 1 CruiseControl VX 1 Hz P 2 Hz 2 Hz SENSOR 2 Controller 2 Obstacle Avoid. WZ 2 Hz Controller 3 Waypoint Nav - Planner to decide which controller is active/inactive

TIME CONSTRAINT Freshness constraint: bounds the time it takes for data to flow through the system F(Y|X)=10 Y delivered at time t, then X-value to compute Y is sampled no earlier than t-10 ms Separation constraint: constraints the jitter between consecutive values on a single output channel l(Y)=3  Y delivered at a minimum rate of 3ms u(Y)=13  Y delivered at a maximum rate of 13ms

Control System Scheduling A θ θS v τ RATE TS = ? TC = ? TA = ? freshness / separation freshness: F(τ|θ) = f(θs(t-1)) separation: S(τ) = g(θs(t-1)) STABILITY PROPERTIES

High-level Software Low-level Software Mechanical Hardware Electronics SPECIFICATION: -flight time -payload -speed …. High-level Software Low-level Software Specification (flight time, speed, mission time, etc) affect the dimension of the robot, type of motors, type of microcontroller, sensors, and software design. To build and use a robot we need hardware/mechanical specifications, electronics specification, and low level (microcontroller) and high level (ROS) software programming. Mechanical Hardware Electronics

Robot Codesign – ROSLab Architecture HL-SW SUPERVISOR Joystick CONTROLLER 1 Vicon SWITCH QUADROTOR CONTROLLER 2 SENSOR 1 TRPY Supervisor monitors different controllers and decides which one should be on/off at each time. Example: Controller 1 (manual teleoperation) subscribes to joystick messages and translates them into throttle-roll-pitch-yaw commands Controller 2 gets vicon messages and sends TRPY commands. Controller 2 actuates when the quadrotor is near obstacles to avoid collisions CONTROLLER 3 SENSOR N

HL-SW LL-SW Electronics ROS NODE Switch TRPY CONTROLLER TRPY POSE ESTIMATE PWM PWM PWM PWM Accel/Ang Vel M1 M2 M3 M4 RADIO Low level software and electronics on the quadrotor. LL controller will be uploaded on a microcontroller. Microcontroller receives TRPY information through a radio and sends PWM commands to motors. μC IMU Electronics

Electronics Mechanical M1 M2 M3 M4 RADIO μC IMU LINK LINK BODY LINK At the hardware level the microcontroller, radio, imu, and other electronics will have to fit within the body of the robot. The body will have certain dimensions to fit the electronics. The motors dimensions and specification (torque, rpms) will affect the size of the entire quadrotor. LINK LINK BODY LINK LINK Mechanical

ROSLab – Mechanical Design https://www.youtube.com/watch?v=zWkCnhuEsrU

ROSLab – Electronics Design RADIO μC L0 - ROSLab R.S1 μC.S1 1 1 R S1 μC PA.0.S1.1/S2/S3 L1 – Service/Pins 2 2 S2 PA.1.S2/S3/S4 3 3 S3 PB.0.S1/S2/S3 L2 – Assignment Greedy Algorithm R.S1.1 μC.S1.1/S2/S3.AF0.PA.0 L3 – Low Level μC and Hardware Specification *.h *.xml

Conclusion ROSLab to generate a complete description of a robot. MIT Printable Segway and Penn Quadrotor as reference testbed to demonstrate the complete co-design Scheduling and Real-time analysis Prove Properties Time execution: e.g., response time analysis Information flow: e.g., output depends only on inputs Simulation tool: e.g., power draw given HW setup First release available at: http://precise.github.io/ROSLab/