The one or more processors 210 is operatively coupled with memory 220 that stores information, such as, for example, instructions executable by the one or more processors 210, non-transitorily at the one or more processors 210. Information about the calibration of the first communication device 200a may be updated and stored at regular intervals in the memory 220a of the first communication device 200a. In addition, information about the calibration of the second communication device 200b may be transmitted to and stored in the memory 220a of the first communication device 200a at regular intervals. Information about the first and second communication devices 200a, 200b may also be stored at regular intervals in the memory 220b of the second communication device 200b. The stored information may include, for example, an updated location, a time of a last location update, a time of last detection of the other communication device, a level of confidence of being in the same location as the last location update, a location of a received beacon, and/or a level of confidence of a location of a last received beacon.
The one or more processors 210 may also be in communication with the transmitter 230 and the receiver 240. The one or more processors 210 may therefore be configured to transmit, via the transmitter 230, communications and data 23 in the form of optical beams, and also may be configured to receive, via the receiver 240, communications and data 23 in the form of optical beams. Received optical beams may be processed by the one or more processors 210 to extract the communications and data 23.