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š.
- Učitavanje lidar podataka
- Klasterovanje podataka
- Proveravanje dimenzija klastera
- 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
Klasterovanje podataka
Pristup klasterovanja već korišćen od strane ostalih
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
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

