RTS2 FAQ - Frequently Asked Questions (with bit of troubleshooting)

Completly revisited (and writen in english) for new RTS2 release (code named 0.5.0)

*) How do I start it/restart it/stop the beast to allow me do some work on
telescope?

To park it - rts2-mon, F2 (switch to off). Read "How do I switch it on/off?"
for more info.

Note that RTS2 is designed to run forever without need to restart it.  Windows
ways of solving problems (press ctrl+alt+del, reboot, try again) will most
probably not produce sensible results - they will only worsen posibility of
discovering exact cause of problem, and most probably failed exactly same way
as before (because you haven't found some random errors, you have found a real
bug in the system, at most cases).

So when you encounter some strange behaviour of whole system, please consider
submiting bug to authors. If I have access on machine running RTS2, I can
(using gdb attach functionality) get some more information why it failed and so
find a generic solution, which is better then constant rebooting.

To start RTS2 - as root issue:

rts2-start

That in my case leads to:

omega:/home/petr# /etc/init.d/rts2 start
Starting RTS2 centrald daemon:rts2-centrald.
Starting RTS2 deamons: rts2-camd-dummy(C0) rts2-camd-dummy(C1) rts2-focusd-dummy(F1) rts2-teld-dummy(T0) rts2-phot-dummy(PHOT) rts2-mirror-dummy(M0).
Starting RTS2 services: rts2-imgproc(IMGP) rts2-grbd(GRBD) rts2-executor(EXEC) rts2-selector(SEL).
omega:/home/petr# 

To stop it:

rts2-stop

To restart it:

rts2-stop && rts2-start

*) What does RTS2 stands for? What is its history? And future?

It stands for Remote Telescope System 2. As name suggest, there was Remote
Telescope System, which was later renamed to RTS1. It was writen in Python,
which was discovered as pretty stupid idea, as project at the Mathematical and
Physical Faculty of Prague Charles Univerzity for telescope BART.

RTS2 was firstly written in pure C as my diploma thesis. After I finish degree,
it was (almost completly) rewritten to C++. Rewrites enabled me to
realize ideas I gather during writing C code - primary objectiv was selector
and executor separation, but there were more issues (memory leaks...).

The main author (Petr Kubanek) is currently working on network extension, so
the RTS2 telescopes will collaborate on new discoveries. Please write him for
details (there is a paper presented in Astronomische Nachrichten on the issue,
but most probably you will have to pay for it - I can send you personal copy
for free).

*) Does it run? Where?

Yes, currently it runs on those telescopes:

BART - Ondrejov, Czech Republic

BOOTES - Two telescopes in Huelva station, Spain, one (Bootes IR) on
http://www.osn.iaa.es, Bootes 2 near Malaga, Spain, Bootes 3 at New Zealand

FRAM - monitoring telescope at Argentina, build by Physical Institute of the
Czech Republic

Watcher - Boyden observatory, South Africa

BNL, NY and LPNHE Paris, LSST(.org) testing labs - used as master controller for CCD tests (without telescope).

D50 - new Ondrejov 50cm

1.23m CAHA, Spain

Scheduling for 1.2m FLWO, AZ, USA

ObsVermes, Switzerland

CHASE 500, CTIO, Chile

And future plans: BOOTES 4 (most probably China), 1.5m SPM, Mexico. Plus there
is plan to finally make from it a network - work in progress.

*) Can I use it?

Yes, you can use the software, as long as you agree with it's licence (GNU
licence - see COPYING).

*) How do I switch it on/off?

We define some three basic modes for RTS2:

- off
- standby
- on

Let's see what they mean:

"off" is mean for safe state of the telescope. When telescope is off, no
observations will be carried, telescope should't move, cameras will not be
cooled etc.. It's similar to your car staying without fuel.

"standby" means everything is prepared for observation, except dome, which
remains closed. Standby is used when you are unsure about weather state and
don't know, if it clears out or if it will turn to worsest snow storm within
over last 40 years within next few hours. As you have to cool cameras, that
state is there primarly for keeping cameras cooled. RTS2 is put to standby by
weather station, when weather is unfavorable for obseravation. RTS2 can carry
some dark observation while in standby mode - so when you feel you need to
repair something on telescope, it's better to put RTS2 to off mode, so you will
be sure it will not try to operate any device (which can lead to device
damage).

It's equivalent to your car engine running, but you are not riding the car.

"on" is for carring observations. Mount is running, door/roof will open when
you switch from to on. If you have meteo station, you will not be able to
switch to on if weather doesn't cooperate - if it's raining or too windy,
depending on your local setup.

It's equivalent to you car on a highway.

To switch between states, use rts2-mon. Run it, and either press F keys for switch:

- F2 for off
- F3 for standby
- F4 for on

and confirm with pressing y key, or write "on", "standby" or "off" and hit enter
(text will apear at top left corner of the screen). Text commands are there for
terminals, which don't have F keys (or don't support them).

*) I opened the dome but the telescope is like crazy going from object ID xxx
to yyy  every few seconds...  Anyone around knows what to do?

Most probably you don't have any camera. System is programed to point telescope
and then execute exposition on camera. If no camera is founded, or no camera is
running, it ends observation and start a new one, resulting in new slew.

Most probably some new version will not have this problem and will not produce
that crazy slew.

*) How can I tell it's doing something?

The overall best way is to go to the telescope, check that it's pointing
somewhere, it's moving ocassionally, and check that you find latest images
focused, with stars and hopefully with astrometry (read on about where to find
images).

Second best way is to watch monitor (run by rts2-mon). Let's examine various parts
- they begin with green top. They represent informations about various programs,
that have to work together to keep telescope running and camera exposing:

EXEC is the executor. It's resposibility is to take input what should be
observed, run the observation, write images to disk, take care about images
beiing delivered for processing and end obsertvation. When system is running,
you should see some number > 0 at Curr: entry. That number denotes current
observation beeing performed.

Next is then identifier of next scheduled observations. When it's filled, it
testify that selector is working properly (more on selector later).

Prio: is used only for priority interruption. When you see there an entry for
longer time (more then 1 minute), it marks a problem in code and should be
repoted as bug.

Then you have devices - the most important are cameras and mount.

All devices have state field. Rule of thumb, which can be followed, is that at
any time, at least one state of at least one device shouldn't be zero. It can
only blink to zero and then turn to something else (or some other device should
awaken from sleep and swith it's state from 0 to some number).

If you observe, that state of cameras and mount remain at 0 for longer time
(more then 10 seconds), you should note that as suspicious and (most probably)
issue a bug report. Please take screenshot of rts2-mon and send it with
bug-report as clue to what happened.

*) How can I focus it?

You can use manual focusing mode. On bootes IR it works following way:

- as root, issue:
killall rts2-executor

Then issue (prefereably in your home directory, and even better in some subdirectory):
rts2-focusc -F /etc/rts2/sex -Q -A -d sbig

Yor console should start to look like this:

Get conn: sbig
State changed (sbig): img_chip value:65536
State changed (sbig): mg_chip value:65536
State changed (sbig): g_chip value:65536
State changed (sbig): priority value:1
State changed (sbig): img_chip value:1
State changed (sbig): img_chip value:4
State changed (sbig): img_chip value:2
Camera sbig image_type:dark
State changed (sbig): img_chip value:0
State changed (sbig): img_chip value:1
State changed (sbig): img_chip value:4
State changed (sbig): img_chip value:2
Camera sbig image_type:object
State changed (sbig): img_chip value:0
Measuring from: "Unnamed" / 1530 x 1020 / 16 bits INTEGER data
(M+D) Background: 120.634    RMS: 8.21888    / Threshold: 41.0944
Objects: detected 3        / sextracted 2
> All done
Sex added (356.641, 197.072, 5563.68, 6.32)
Sex added (408.058, 654.733, 6677.7, 8.28)
=======================
# stars | focPos | fwhm
      67|    7128| 8.73343
=======================
Focusing algorithm for camera sbig did not converge.
Write new value, otherwise hit enter for no change
20

Now write some value change, and after while, you will end with:

Sex added (663.349, 415.322, 255983, 5.78)
Sex added (954.144, 917.04, 1717.61, 5.9)
Sex added (1353.35, 776.675, 656346, 6.11)
Sex added (939.765, 193.297, 2331.69, 6.23)
Sex added (356.641, 197.072, 5563.68, 6.32)
Sex added (408.058, 654.733, 6677.7, 8.28)
=======================
# stars | focPos | fwhm
      67|    7128| 8.73343
      72|    7152| 7.50417
      66|    7143| 8.05485
      71|    7152| 7.61155
      76|    7163| 6.74474
      76|    7172| 5.94592
      75|    7182| 5.6392
      81|    7192| 5.0679
      79|    7202| 5.10709
      79|    7197| 5.14481
      77|    7193| 5.51117
      79|    7192| 5.25241
      74|    7191| 5.79514
      78|    7188| 5.48
      80|    7198| 5.75188
      80|    7208| 5.28238
      84|    7217| 5.16929
      81|    7217| 5.16654
      81|    7228| 5.59025
      84|    7218| 5.18881
      79|    7213| 5.21127
      83|    7217| 4.62241
      79|    7217| 5.47025
      81|    7217| 5.72975
      79|    7217| 5.5143
      13|    7217| 6.45231
      73|    7217| 4.98205
      77|    7217| 4.70532
      78|    7217| 4.74526
      72|    7212| 5.12361
      72|    7202| 4.95306
      75|    7202| 4.71067
      73|    7197| 5.45699
      72|    7208| 5.05861
      65|    7207| 5.77031
      76|    7212| 4.70316
      74|    7212| 5.10257
      82|    7207| 4.41659
      75|    7207| 4.99627
      71|    7212| 5.69113
      76|    7212| 5.05039
      72|    7207| 5.15903
      73|    7203| 4.95658
      74|    7200| 5.33027
      79|    7204| 4.56114
      80|    7204| 4.54662
      75|    7207| 5.20053
      77|    7205| 5.03922
      79|    7203| 4.57063
      78|    7202| 4.69821
      79|    7201| 4.7238
      78|    7207| 4.86628
=======================
Focusing algorithm for camera sbig did not converge.
Write new value, otherwise hit enter for no change 

When you are happy with results, hit ctrl+c and start executor to take charge
of observation.

*) How can I test that GCN reception is working?

Start monitor, locate GRBD entry. By L Pac (Last Packet) you should see time >
- 1 minute (e.g less then -0:00:59.9). When time show there is greater, it
means that most probably we lost connection to GCN server.

*) How can I test that GRB observation will be correctly executed?

GRB OT observation is quite hard. Althought it seems pretty easy (get the
comps, connect them, write software..and voila, we will have detections), after
more deep study it evolves, that it's not so easy. But anyway, it's feasible.

To be sure that you catch GRB you should test system reaction to GRB events.
Here we will describe path packet must take before observation will start.

GCN packet arrives at GRBD, it's decoded, and writen to database. When it's GRB
notice, GRBD execute grb command on EXECutor. It pass only target ID as
reference, so EXECutor have to retrieve target from database, where it was
previously written by GRBD.

EXECutor takes target_id, make target, calculate it's horizontal position, and
when that target is above horizont (alt > 0), it clears it for futher
execution. When target is close to current target (distance is entered in
degrees in rts2.ini, in seplimit entry, and defaults to 0), target becomes
priority target.

EXECutor sends interruption command to all devices. When it get reply from
telescope, that it gets interuption command, it start slew on telescope. While
telescope is slewing, it prepares execution script for cameras. When telescope
finished slewing, and executor knows, that cameras stoped current exposure, it
starts exposure on cameras - otherwise it wait till it get clearance from
cameras, that they are ready to expose.

You got two options here how to test system performace - either you can accept
HETE test-notices and wait for them (-T switch added to rts2-grbd command line
will do that), or, if you don't like to wait for HETE test, you can start own
observation in GRB mode. For that:

- start rts2-mon
- issue GRBD.test <target_id>

where target_id is ID of some target. You should see as your target is entered
to Prio: entry in EXECutor, and Curr: and Next: are nulled, then it's entered
as Curr: and telescope slew starts. You can check if you get images at right
place, processed for you.

If that sounds complicated to you and you think that it will take too much time
for GCN observation to reach telescope, don't worry. Measured difference
between packet arrives and telescope slew started (telescope slew is the primary
thinks that block observation, and we would like to start slew as soon as
possible - cameras can be resolved while we move to new location) shows, that
we spend less then 1 second in RTS2 overhead, and I hope we even spend less -
something like 0.2 sec is value I expected. Running on moderate HW (PC Pentium
800 Mhz with 256 MB RAM).

*) Where will I find images?

Images are in:                                                                                                                           
/images/<epoch>/que/<camera_name>  - there is temporaly storage for                                                                       
images, which haven't been processed yet. Nothing should remains here on                                                                  
morning.                                                                                                                                  
/images/<epoch>/archive/<target_id>/<camera_name>/object - images with astrometry. So                                                     
for example, as GRB050724 get target_id 49999 on Bootes IR, images with
astrometry were put to /images/<epoch>/archive/49999/<camera_name>/object/<date+time>.fits                                                                
/images/<epoch>/trash/<target_id>/<camera_name> - images without
astrometry are put there.                                                                                                                 
                                                                                                                                          
In previous lines:                                                                                                                        
                                                                                                                                          
<epoch> is 002 for BIR now. Should be changed to 3, after we gain some
experience/change instruments..                                                                                                           
                                                                                                                                          
<camera_name> is sbig on BIR (now).                                                                                                       
                                                                                                                                          
So /images/<epoch>/archive/<target_id>/<camera_name>/object resolves to:                                                                  
                                                                                                                                          
/images/002/archive/49999/sbig/object                                                                                                     
                                                                                                                                          
Let's see it:
petr@ir1:/images/002/archive/49999/sbig/object$ ls
20050810200400-0432.fits  20050810203158-0745.fits ....

*) If I need to put images to other directory than /images, how do I do it?

Now you cannot specify where RTS2 will store images, as this is hardcoded
(using expansion mechanism described in man rts2.ini, but still hardcoded). But
you can use soft links to change that. Suppose that you would like to place
images in /storage/images, do as root:

ln -s /storage/images /images

That will of course succeed only if you do not have /images directory on your
system.

*) When setting priority for targets, what is the range of values and how is
priority ranked? In other words is priority 1 higher than 2?  What is the
priority hierarchy?

Higher priority - higher chances to observe the target. So if there are two
targets, one with priority 1, other with priority 2, the target with priority 2
will be picked up.

===============================================================================

Most questions contributed by BOOTES staff, most of the answers were written by
Petr Kubanek.  Please feel free to drop an email to petr@kubanek.net in case
you feel something is missing there.
