# Lidar-Scanner # Obrada Lidar podataka Obradu koordinata sam radio po ovom principu. Za kooridnate od lidara sam koristio simulator, taj deo možeš i da preskočiš. 1. Učitavanje lidar podataka 2. Klasterovanje podataka 3. Proveravanje dimenzija klastera 4. Računanje brzine i ubrzanja # Učitavanje lidar podataka Simulator predstavlja jenostavnu puthon skriptu koja ima centralnu tačku i prati njene projekcije na svaku oblast u njenoj okolini. Fomrat učitavanja podataka je (x, y) što bi trebalo da se izmeni da odgovara pravim lidar podacima. Pretpostavke za lidar tačke - Tačke se ciklično prosledjuju - Dve tačke ne mogu imati isti ugao od centra do sebe tj. ne može jedna tačka biti iza druge ![Logo](source/b.png) # Klasterovanje podataka Pristup klasterovanja već korišćen od strane ostalih ![Logo](source/a.jpg) ```c++ bool arePointsInSameCluster(const Point& p1, const Point& p2, double thresholdAngle, double radiusMultiplier) { double angleDifference = std::fabs(p1.angle - p2.angle); if (angleDifference > M_PI) angleDifference = 2 * M_PI - angleDifference; double adaptiveThreshold = std::min(p1.r, p2.r) * std::sin(angleDifference) / std::sin(thresholdAngle - angleDifference); double distance = std::sqrt(std::pow(p2.x - p1.x, 2) + std::pow(p2.y - p1.y, 2)); return distance <= adaptiveThreshold* radiusMultiplier; } ``` Moj pristup samo ne koristimo ugao već razdaljinu ```c++ bool arePointsInSameCluster2(const Point& p1, const Point& p2, double thresholdAngle) { double distance = std::sqrt(std::pow(p2.x - p1.x, 2) + std::pow(p2.y - p1.y, 2)); return distance <= thresholdAngle; } ``` # Proveravanje dimenzija klastera Posle toga odredjujemo da li selektovana erija pripada odredjenom području. U suštini proveravano najdalj tačke u sva četiri smera da li se nalaze u odredjenom pravugaoniku kako bi bili sigurni da se radi o protivniku. # Računanje brzine i ubrzanja Za računanje ubrzanja i brzine prvo pronalazimo centar kruga i čuvamo ga sa trenutnim vremenom. Treba proveriti na pravom primeru kako radi. Čuvamo trenutnu i 2 prošle tačke koje su nam dovoljne da izračunamo ubrzanje i vektor kretanja. # Pokretanje colcon build source install/setup.bash ros2 run lidarProject subscriber_node