## 4 Proposed Model
### Data Processing  
For each agent \(s_{n}\) in \(s_{t}\) at time-step \(t\) the following tuple of state observations is stored:  
\[s_{n}=(l_{t},d_{t},cos(\theta)_{t},sin(\theta)_{t},v_{t-1},\omega_{t-1},x_{t}, y_{t},\alpha_{t}) \tag{2}\]  
Here, \(l\) represents laser observations of the agent, \(d\) is the distance from the goal. \(cos(\theta)\) and \(sin(\theta)\) are cosine and sine expressions of the heading difference between the current robot's heading and heading towards the robot and are calculated as:  
\[cos(\theta)=\frac{\alpha\cdot h_{g}}{|\alpha|\cdot|h_{g}|} \tag{3}\]  
\[sin(\theta)=\frac{\alpha\times h_{g}}{|\alpha|\cdot|h_{g}|} \tag{4}\]  
where \(\alpha\) is the heading vector of the agent, and \(h_{g}\) is the heading vector from the agent towards its goal. The linear velocity \(v\) and angular velocity \(\omega\) at time-step \(t-1\) expresses the action at the previous step. The \(x\) and \(y\) indicate the agents' location in global coordinates. The preparation of a simultaneous observation for all agents in the scene is visualized in Figure 1.  
Figure 1: Preparation schematic visualizing an example of an observation with three agents. Each agent’s individual information is recorded and stored as a part of a single-state observation \(s_{t}\). Afterward, the state observation is stored in the replay buffer as a single entry.  
For an agent to reason about an interaction with other agents in the scene, the information needs to be given relative to its current state. More specifically, the spatial relations need to be given according to the ego agent's pose in its frame of reference. Not only does this explicitly model the relative interaction, but it also allows for the generalization of interaction information independent of global scene information. To achieve this, the information in the recorded observation tuple needs to be processed before it can be used in neural network training. For each agent, the features of other agents need to be transformed in its frame of reference. With slight abuse of notation, we will borrow the terms of node and edge features from graph neural network (GNN) literature, where the node features are the observation features of the ego agent and edge features are other agent features. As node features \(N\) from (2) we use the features that are expressed in ego agents frame:  
\[N=(l_{t},d_{t},cos(\theta)_{t},sin(\theta)_{t},v_{t-1},\omega_{t-1}) \tag{5}\]  
For each agent in the scene, edge features \(E\) are calculated from information in (2) for every other agent:  
\[E_{i}=(v_{i},\omega_{i},d_{i},cos(\theta_{o})_{i},sin(\theta_{o})_{i},cos( \theta_{a})_{i},sin(\theta_{a})_{i})\] \[\forall i=\{1,2,...,n\} \tag{6}\]  
Here, linear and angular velocities are taken directly from the stored tuple from (2). The relative distance is calculated as the Euclidean distance between \(x\) and \(y\) positions of each agent. The heading towards the agent is expressed as \(cos(\theta_{o})\) and \(sin(\theta_{o})\) and calculated with (3) and (4), respectively, by replacing the heading towards goal \(h_{g}\) with the vector towards the agent location \(h_{o}\). A similar method is applied when calculating the difference between the heading of the ego agent and the heading of the other agent. This data processing method prepares all the incoming edge data relative to the ego agent in its frame of reference. This process is visualized in Figure 2.