Upload
kimberly-thornton
View
213
Download
1
Embed Size (px)
Citation preview
50mm Telescope
ACS CourseGarching, 15th to 19th January 2007
January 2007 Garching
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
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
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
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.
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
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
ACS Course,15th to 19th January 2007
50mm Telescope 8
ALMA Project
Users
• Astronomer (Jorge)
• Operator (Gianluca)
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)
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.
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)
ACS Course,15th to 19th January 2007
50mm Telescope 12
ALMA Project
Scheduler Interfaces
• Start (used by Console)
• Stop (used by Console)
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)
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)
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)
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.
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!!!