17
50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007 Garching

50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

Embed Size (px)

Citation preview

Page 1: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

50mm Telescope

ACS CourseGarching, 15th to 19th January 2007

January 2007 Garching

Page 2: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 2

ALMA Project

Project objectives

• As main exercise for the course we want to:– Develop a complete project, with all lifecycle steps.

Obviously compressed in 4 days.– It will be a distributed development and distributed

deployment– Various aspects of ACS will be put to test, for example:

• deployment, • language transparency, • Component/Container concepts.• reuse

– Very important will be the final integration and testing

Page 3: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 3

ALMA Project

The 50mm Telescope project

• We have to implement the Control and Data flow system for the 50mm telescope

• The telescope consists of the following HW:– Telescope Mount built with Lego Robotic Kit blocks: it

uses the RCX control processor, two motors, limit sensors and position encoders

– WebCam to capture images

– Joystick to manually control the position of the telescope

Page 4: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 4

ALMA Project

Requirements

• Astronomers submit proposals by interfacing with a telescope database

• A scheduling system retrieves queued proposals from the database and performs automatic observations.

• Observations consist of pointing the telescope and acquiring images

• Astronomers retrieve the images resulting from the observations from the database

• Operators can control the telescope and the acquisition camera in manual mode

Page 5: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 5

ALMA Project

Project challenges

• Requirements collection:– The development team has to collect detailed requirements from the stakeholders

(astronomer and operator)• Distribution

– Distributed development: we will identify subsystems and subsystems will be implemented by separate teams

– Distributed deployment: the system will be distributed on many machines. For example each piece of hardware is connected to a different machine. The Database and the Scheduler are also in “separate locations”.

• Interface definition– External interfaces (to astronomer, operator and hardware) have to be defined early

and in detail)– Once subsystems will have been identified, interfaces between subsystems will

have to be decided and discussed.– Internal (but sometimes also external) interfaces will have to be re-discussed

between the teams during development. A good job will mean few integration problems related to misunderstood or misaligned interfaces.

Page 6: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 6

ALMA Project

Project Challenges 2

• Multiple languages:– Every subsystem is free to select the language(s) they prefer for the implementation,

based on their experience and on the problem to be solved.• Reuse:

– We provide ready made ACS Components to control the hardware. – They have been implemented by other projects.– This means also that their interfaces are fixed.

• Integration:– The final result of the project will depend on the easiness of the final integration– To share code between the distributed teams, a CVS code configuration repository

is used.– Every group has to take care of archiving their code as often as possible and get the

updated from the other subsystems as often as possible. This allows to spot soon integration problems.

• Deadlines– The deadline for the delivery of a functional system is FIXED– The teams have to discuss and agree de-scoping, if necessary, to meet the deadline

Page 7: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 7

ALMA Project

Architecture

Reused components

Implemented componentsAstronomer

Database

storeProposal()getProposals()storeImage()getImage()

storeProposal

getImage

cameraOff() also stores the image in the DataBase

Scheduler

start()stop()

getProposals

hptWebCam::WebCam AltAzModule::AltAz hptPad::Pad

Telescope

observe()moveTo()getActualPosition()

observe

interact with mount

instrument

cameraOn()cameraOff()getImage()

storeImage

cameraOn

cameraOff

interact with camera

Operator

Console

setModeAuto()cameraOn()cameraOff()moveTelescope()getTelescopeStatus()getCameraImage()

start/stop

interact with joystick

drive telescope in manual mode

drive instrument in

manual mode

Uses console to drive system and start/stop

scheduling of observations

Page 8: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 8

ALMA Project

Users

• Astronomer (Jorge)

• Operator (Gianluca)

Page 9: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 9

ALMA Project

External interfaces

• Astronomer:– Store proposal– Get images

• Operator– Set mode– Manual mode

• Open/close camera• Move telescope with Joystick

– Automatic mode• Start scheduler• Stop scheduler

– Status display• Status of telescope• Telescope position• Image from camera (GUI available)

Page 10: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 10

ALMA Project

Subsystems

• Scheduler (Paola)– Implemented in Python– Challenges: multithreaded.

• Console (Randy) – Implemented in CPP– Challenges: reuse of Joystick component, needed asynchronous calls and callbacks to do it.

• DataBase (Jens) – Implemented in Python– Challenges: definition of data structures and Python mapping

• Instrument (Arne) – Implemented in Python– Challenges: reuse of WebCam component.

• Telescope (Jose) – Implemented in Python and also in Java– Reuse of Lego Mount component

• Integration (Gianluca)– Definition of the distributed deployment.– Challenges: deployment configuration database.

Page 11: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 11

ALMA Project

DB Interfaces

• storeProposal(filename) (used by Astronomer)file: 1 record per target[tid, ra, dec, expTime]

• getProposals()(used by Scheduler)returns list of targets

• getImage(tid)(used by Astronomer)

• storeImage(tid, image)(used by Instrument)

Page 12: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 12

ALMA Project

Scheduler Interfaces

• Start (used by Console)

• Stop (used by Console)

Page 13: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 13

ALMA Project

Telescope Interfaces

• status observe(tid, ra,dec, expTime)(used by Scheduler)

• moveTo(az, el)(used by Console)

• getActualPosition(used by console)

Page 14: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 14

ALMA Project

Instrument Interfaces

• cameraOn() (used by Console and Telescope)

• cameraOff()(used by Console)

• cameraOff(tid)This also saves the image in the DataBase(used by Console and Telescope)

Page 15: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 15

ALMA Project

Operator Interfaces

– setMode(Auto/Manual)– Manual mode

• Open/close camera• Move telescope with Joystick

– Automatic mode• Start scheduler• Stop scheduler

– Status display• Status of telescope• Telescope position• Image from camera (GUI available)

Page 16: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 16

ALMA Project

Project CVS Structure

• 50MM – Subsystems/modules– ICD

Here we store all Interfaces, separate from the implementation modules.This makes clear to everybody what are the area where changes need to be discussed and agreed with the users

– Scheduler– DataBase– Telescope– OperatorConsole– Instrument– Integration

This is where we put the deployment information to integrate the system and the integration tests and procedures.

Page 17: 50mm Telescope ACS Course Garching, 15 th to 19 th January 2007 January 2007Garching

ACS Course,15th to 19th January 2007

50mm Telescope 17

ALMA Project

Conclusions

• We managed to get a working system “released” in time• We had to do some de-scoping in the user interfaces. All functionality

was available on command line, object explorer and/or scripts. But convenient GUIs were quite limited.

• Most interface problems have been resolved during development, by interactions between subsystems and stakeholders.

• Nevertheless, a number of interface problems appeared only at final integration time.

• Simulation of subsystems has been very useful to test the clients and to identify interface problems. We should have done more

• We discovered some system problems: good feedback for ACS

All in all: a success!!!