COSMOS core  1.0.2 (beta)
Comprehensive Open-architecture Solution for Mission Operations Systems
Ground Station

A satellite ground station can be operated using COSMOS agents if the antenna and radio are connected to a computer capable of running a standard operating system (Linux, Mac, Win) with an ethernet interface.

TODO: explain how to select the radio and antenna (change drivers?)

There are at least three COSMOS agents running on the ground station computer:

Agent antenna will controll the attitude of the antenna (elevation and azimuth), agent radio will control the transceiver (set frequency, compute doppler shift, etc.) and agent control if the bridge between the other two agents and the outside world, being able to receive and send C&C.

Let's run a ground station demo. First make sure you have the latest COSMOS/core software and COSMOS/nodes (as explained on the COSMOS 101 tutorial: https://bitbucket.org/cosmos/tutorial). We are going to be running the demo using the kauaicc_sim node. Go to the COSMOS/nodes folder (ex: /home/miguel/cosmos/nodes/kauaicc_sim) and check that you have this node installed. Also to facilitate your life make sure you have the COSMOS/bin folder populated with the three agents Agent Antenna, Agent Radio, Agent Control.

1. Agent Radio

Let's start agent radio

1 $ agent_radio kauaicc_sim uhf

Now we are going to check if agent_radio is working. The following command lists all the agents running in the same network.

1 $ agent_client list

the previous command should return a list of the available agents similar to this:

1 [0] 57653.8367122313 kauaicc_sim uhf 192.168.56.1 57047 59996
2  {"agent_pid":24732}[OK]
3 [1] 57653.8383072064 hiakasat nav 192.168.152.40 41311 59996
4  {"agent_pid":4496}[OK]

Agent [0] is running for the 'kauacc_sim' node with the name 'uhf', with the time tag in modified Julian Days (57653.8367122313) on the address 192.168.56.1. The process id (pid) is 24732. Agent [1] is running for the 'hiakasat' node with the name 'nav'.

list of available commands for the radio

1 List of available requests:
2 
3  help
4  list of available requests for this agent
5 
6  shutdown
7  request to shutdown this agent
8 
9  idle
10  request to transition this agent to idle state
11 
12  monitor
13  request to transition this agent to monitor state
14 
15  run
16  request to transition this agent to run state
17 
18  status
19  request the status of this agent
20 
21  getvalue {"name1","name2",...}
22  get specified value(s) from agent
23 
24  setvalue {"name1":value},{"name2":value},...}
25  set specified value(s) in agent
26 
27  listnames
28  list the Namespace of the agent
29 
30  forward nbytes packet
31  Broadcast JSON packet to the default SEND port on local network
32 
33  echo utc crc nbytes bytes
34  echo array of nbytes bytes, sent at time utc, with CRC crc.
35 
36  nodejson
37  return description JSON for Node
38 
39  statejson
40  return description JSON for State vector
41 
42  utcstartjson
43  return description JSON for UTC Start time
44 
45  piecesjson
46  return description JSON for Pieces
47 
48  devgenjson
49  return description JSON for General Devices
50 
51  devspecjson
52  return description JSON for Specific Devices
53 
54  portsjson
55  return description JSON for Ports
56 
57  targetsjson
58  return description JSON for Targets
59 
60  aliasesjson
61  return description JSON for Aliases
62 
63  enable enable
64  Enable active control of the radio frequency
65 
66  disable disable
67  Disable active control of the radio frequency
68 
69  get_state get_state
70  returns the radio frequency
71 
72  get_frequency get_frequency
73  returns the radio frequency
74 
75  get_bandpass get_bandpass
76  returns the radio filter bandpass
77 
78  get_opmode get_opmode
79  returns the radio mode
80 
81  get_powerin get_powerin
82  returns the current RX radio power
83 
84  get_powerout get_powerout
85  returns the current TX radio power
86 
87  set_frequency set_frequency Hz
88  sets the radio frequency
89 
90  set_bandpass set_bandpass Hz
91  sets the radio filter bandpass
92 
93  set_opmode set_opmode {am, amd, fm, fmd, dv, dvd, cw, cwr}
94  sets the radio operating mode
95 
96  set_power set_maxpower watts
97  sets the maximum TX radio power
98 
99  set_offset set_offset Hz
100  sets the radio frequency offset
101 
102 
103 [OK] [2711]

2. Agent Antenna

Now let's start agent antenna

1 $ agent_antenna kauaicc_sim yagi

To print a list of commands for agent antenna execute the following command

1 $ agent_client kauaicc_sim yagi

This will print a large list of available requests (or commands) that can be executed remotelly on the 'yagi' agent

1 List of available requests:
2 
3  help
4  list of available requests for this agent
5 
6  shutdown
7  request to shutdown this agent
8 
9  idle
10  request to transition this agent to idle state
11 
12  monitor
13  request to transition this agent to monitor state
14 
15  run
16  request to transition this agent to run state
17 
18  status
19  request the status of this agent
20 
21  getvalue {"name1","name2",...}
22  get specified value(s) from agent
23 
24  setvalue {"name1":value},{"name2":value},...}
25  set specified value(s) in agent
26 
27  listnames
28  list the Namespace of the agent
29 
30  forward nbytes packet
31  Broadcast JSON packet to the default SEND port on local network
32 
33  echo utc crc nbytes bytes
34  echo array of nbytes bytes, sent at time utc, with CRC crc.
35 
36  nodejson
37  return description JSON for Node
38 
39  statejson
40  return description JSON for State vector
41 
42  utcstartjson
43  return description JSON for UTC Start time
44 
45  piecesjson
46  return description JSON for Pieces
47 
48  devgenjson
49  return description JSON for General Devices
50 
51  devspecjson
52  return description JSON for Specific Devices
53 
54  portsjson
55  return description JSON for Ports
56 
57  targetsjson
58  return description JSON for Targets
59 
60  aliasesjson
61  return description JSON for Aliases
62 
63  track_azel track_azel
64  Supply next azimuth and elevation for tracking.
65 
66  debug debug
67  Toggle debug messages.
68 
69  get_offset get_offset
70  Return a report on the offset of the agent.
71 
72  get_state get_state
73  Return a report on the state of the agent.
74 
75  jog jog {degrees aziumth} {degrees elevation}
76  Jog the antenna azimuth and elevation in degrees.
77 
78  get_horizon get_horizon
79  Return the antennas minimu elevation in degrees.
80 
81  get_azel get_azel
82  Return the antenna azimuth and elevation in degrees.
83 
84  set_azel set_azel aaa.a eee.e
85  Set the antenna azimuth and elevation in degrees.
86 
87  enable enable
88  Enable antenna motion.
89 
90  disable disable
91  Disable antenna motion.
92 
93  pause pause
94  Stop where you are and make it your new target.
95 
96  stop stop
97  Stop where you are, make it your new target AND disable antenna motion.
98 
99  set_offset set_offset aaa.a eee.e
100  Set the antenna azimuth and elevation correction in degrees.
101 
102 
103 [OK] [2806]

3. Agent Control

let's now start agent control

1 $ agent_control kauaicc_sim

4. Example operations

list the available antennas

1 $ agent kauaicc_sim control list_antennas

list the available radios

1 $ agent kauaicc_sim control list_radios
1 $ agent_client kauaicc_sim control list_tracks

now let's follow to another tutorial to understand COSMOS commanding capabilites: COSMOS Commands