## 2 Materials and Methods
### Articulated Object Model  
After receiving the point cloud, the node incorporates information about articulated objects into the environment model. The node processes each object individually by reading  
\begin{table}
\begin{tabular}{l c c} \hline \hline
**Dataset** & **Number of Images** & **Number of Axes** \\ \hline Train & 603 & 1771 \\ Validation & 143 & 437 \\ Test & 100 & 313 \\ Sum & 846 & 2521 \\ \hline \hline \end{tabular}
\end{table}
Table 3: Properties of the dataset used to train and verify neural networks for axis detection and segmentation.  
its class and creating a vector of indices for the points within the object's segmentation mask. A smaller point cloud containing only the detected object is extracted based on these indices. Using the RANSAC algorithm and iterative estimation, the node identifies the plane corresponding to the object within the extracted point cloud. It returns the indices of the points belonging to the plane and its coefficients, creating a point cloud solely consisting of points on the plane.  
For translational objects, the node computes the normal to the object's surface, determining its translation axis. This is achieved by utilizing Principal Component Analysis on the nearest neighbors of a given point in the PCL library. The estimation is performed on a selected portion of the point cloud using the OpenMP interface for multi-threaded calculations, improving efficiency. The calculated normal vectors for the selected portion are averaged to obtain a single normal vector representing the object's translation axis.  
Regarding rotational objects, the estimation of the rotation axis occurs when the axis prediction is available. The point cloud representing the frontal plane is assigned a color corresponding to its class and then added to the output point cloud containing the environment model and articulated object information. The estimation of handle positions takes place upon receiving the handle prediction results. Unlike the estimation of frontal positions, handle estimation does not involve calculating normals, and the point clouds with handle planes are not stored separately for later processing. They are directly included in the output point cloud representing the environment model.  
Estimating the rotation axis of rotational objects is performed when the axis prediction on the RGB image becomes available. This estimation is done separately for each axis. A previously stored vector of point clouds containing clouds with rotational front planes is used. The rotation axis is estimated based on the index obtained from the axis prediction. The endpoints of the axis in 3D space are then estimated using the endpoints found in the RGB image. If an endpoint from the RGB image does not have a corresponding point in the point cloud, additional operations are performed to determine its position in space. Each point in the cloud is projected onto the RGB image, allowing for the calculation of the distance between the point and the axis line in the image, as well as the distance between the point and the predicted endpoint. The distances for each point are summed, and the point with the smallest summed distance in the RGB image is selected as the new endpoint of the rotation axis. The two endpoints are connected to form the rotation axis.