This repository contains code for interfacing multiple **VL53L7CX Time-of-Flight (ToF) sensors** with a robotic system. Each sensor measures distances in an 8x8 grid and communicates via the I2C protocol. The sensor data is collected and formatted into a **JSON object**, which can be decoded in a **ROS2** node and used to generate a PointCloud2 sensor topic for robot navigation, obstacle detection, or mapping.
This GIF demonstrates the initial attempts to use two **VL53L5CX Time-of-Flight (ToF) sensors** to capture distance measurements and visualize them in **RViz2**.

<palign="center">
<imgsrc="/images/rviz2_screencast_2_vl53l5cx_1512025.gif"alt="Sensor in Action"width="400">
</p>
In the following GIF, you can see my first attempt to filter a PointCloud using STL meshes, visualized in **RViz2**, with the robot simulated in **Gazebo Classic**.

This GIF illustrates a dense random PointCloud surrounding a UR10 robot simulated in **Gazebo Classic** and visualized in **RViz2**. Initially, the unfiltered PointCloud is displayed, followed by a filtered view highlighting points close to the robot in red.
<palign="center">
<imgsrc="/images/self_detection_prove_of_conzept.gif"alt="Self Collision Detection Proof of Concept"width="400">
This GIF illustrates a dense random PointCloud surrounding a UR10 robot simulated in **Gazebo Classic** and visualized in **RViz2**. Initially, the unfiltered PointCloud is displayed, followed by a filtered view highlighting pointsclose to the robot in red.
This GIF demonstrates a real robot visualized in **RViz2**, with its goal state represented in orange. The robot attempts to reach the target position but halts due to an obstacle detected in its trajectory.