## Complete Calibration and Detection Procedure ### Step 1: Setup Configuration Files 1. Create `arena_config.yml` with fixed marker positions: ```yaml markers: - id: 1 position: [0, 0] - id: 2 position: [0, 1] - id: 3 position: [0, 2] ``` 2. Create `arena_transformation.yml` with an initial transformation matrix (example identity matrix): ```yaml transformation_matrix: !!opencv-matrix rows: 3 cols: 3 dt: d data: [1, 0, 0, 0, 1, 0, 0, 0, 1] ``` ### Step 2: Calibrate the Camera 1. Run the `calibration_webcam` node to capture frames and calibrate the camera: ```bash rosrun your_package calibration_webcam ``` 2. Follow the on-screen instructions to capture at least 10 frames of the chessboard pattern from different angles and positions. 3. The calibration parameters will be saved to `camera_parameters.yml`. ### Step 3: Calibrate the Arena 1. Run the `arena_calibration` node to detect ArUco markers and calibrate the arena: ```bash rosrun your_package arena_calibration ``` 2. The detected marker positions and transformation matrix will be saved to `arena_config.yml` and `arena_transformation.yml` respectively. ### Step 4: Run the Main Node 1. Run the `aruco_detector` node to detect ArUco markers and display their positions in the arena: ```bash rosrun your_package aruco_detector ``` 2. The node will process frames from the camera, detect ArUco markers, and display their positions in the arena frame. ### Additional Information #### Dependencies Ensure you have the following dependencies installed: - ROS - OpenCV - yaml-cpp #### Building the Package 1. Navigate to your catkin workspace: ```bash cd ~/catkin_ws ``` 2. Build the package: ```bash catkin build test ``` 3. Source the workspace: ```bash source devel/setup.bash ``` #### Running the Nodes 1. Start the ROS master node: ```bash roscore ``` 2. In a new terminal, run the desired node as described in the steps above. #### Troubleshooting - If the camera is not detected, ensure it is properly connected and recognized by the system. - If not enough markers are detected, try adjusting the lighting conditions or the camera position. - Ensure all configuration files (`camera_parameters.yml`, `arena_config.yml`, `arena_transformation.yml`) are correctly formatted and located in the appropriate directory. #### Example Configuration Files `camera_parameters.yml`: ```yaml camera_matrix: !!opencv-matrix rows: 3 cols: 3 dt: d data: [fx, 0, cx, 0, fy, cy, 0, 0, 1] distortion_coefficients: !!opencv-matrix rows: 1 cols: 5 dt: d data: [k1, k2, p1, p2, k3] ``` `arena_config.yml`: ```yaml markers: - id: 1 position: [0, 0] - id: 2 position: [0, 1] - id: 3 position: [0, 2] ``` `arena_transformation.yml`: ```yaml transformation_matrix: !!opencv-matrix rows: 3 cols: 3 dt: d data: [1, 0, 0, 0, 1, 0, 0, 0, 1] ```