added send of trackers infos
This commit is contained in:
+12
-8
@@ -126,6 +126,8 @@ int main(int argc, char *argv[])
|
|||||||
Communicator Comm(SOCK_DGRAM);
|
Communicator Comm(SOCK_DGRAM);
|
||||||
Comm.open_client_socket("127.0.0.1", 8888);
|
Comm.open_client_socket("127.0.0.1", 8888);
|
||||||
Message *m = new Message;
|
Message *m = new Message;
|
||||||
|
m->cam_idx = CAM_IDX;
|
||||||
|
m->lights.clear();
|
||||||
|
|
||||||
/*Conversion for tracker, from gps to meters and viceversa*/
|
/*Conversion for tracker, from gps to meters and viceversa*/
|
||||||
geodetic_converter::GeodeticConverter gc;
|
geodetic_converter::GeodeticConverter gc;
|
||||||
@@ -153,7 +155,6 @@ int main(int argc, char *argv[])
|
|||||||
(int)cap.get(cv::CAP_PROP_FRAME_HEIGHT));
|
(int)cap.get(cv::CAP_PROP_FRAME_HEIGHT));
|
||||||
outputVideo.open("test.avi", static_cast<int>(cap.get(cv::CAP_PROP_FOURCC)), cap.get(cv::CAP_PROP_FPS), S, true);*/
|
outputVideo.open("test.avi", static_cast<int>(cap.get(cv::CAP_PROP_FOURCC)), cap.get(cv::CAP_PROP_FPS), S, true);*/
|
||||||
|
|
||||||
|
|
||||||
while (gRun)
|
while (gRun)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -202,8 +203,6 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (objClass < 6)
|
if (objClass < 6)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
convert_coords(coords, x0 + b.w / 2, y1, objClass, H, adfGeoTransform, frame_nbr);
|
convert_coords(coords, x0 + b.w / 2, y1, objClass, H, adfGeoTransform, frame_nbr);
|
||||||
|
|
||||||
//std::cout<<objClass<<" ("<<prob<<"): "<<x0<<" "<<y0<<" "<<x1<<" "<<y1<<"\n";
|
//std::cout<<objClass<<" ("<<prob<<"): "<<x0<<" "<<y0<<" "<<x1<<" "<<y1<<"\n";
|
||||||
@@ -226,7 +225,7 @@ int main(int argc, char *argv[])
|
|||||||
for (size_t i = 0; i < coords.size(); i++)
|
for (size_t i = 0; i < coords.size(); i++)
|
||||||
{
|
{
|
||||||
gc.geodetic2Enu(coords[i].lat_, coords[i].long_, 0, &east, &north, &up);
|
gc.geodetic2Enu(coords[i].lat_, coords[i].long_, 0, &east, &north, &up);
|
||||||
cur_frame.push_back(Data(east, north, frame_nbr));
|
cur_frame.push_back(Data(east, north, frame_nbr, coords[i].class_));
|
||||||
}
|
}
|
||||||
if (frame_nbr == 0)
|
if (frame_nbr == 0)
|
||||||
{
|
{
|
||||||
@@ -241,6 +240,15 @@ int main(int argc, char *argv[])
|
|||||||
TIMER_STOP
|
TIMER_STOP
|
||||||
std::cout << "There are " << trackers.size() << " trackers" << std::endl;
|
std::cout << "There are " << trackers.size() << " trackers" << std::endl;
|
||||||
|
|
||||||
|
|
||||||
|
//prepare message with tracker info
|
||||||
|
addRoadUserfromTracker(trackers, m, gc);
|
||||||
|
//prepare the message with detection info
|
||||||
|
//prepare_message(m, coords, CAM_IDX);
|
||||||
|
//send message
|
||||||
|
Comm.send_message(m);
|
||||||
|
|
||||||
|
|
||||||
if (to_show)
|
if (to_show)
|
||||||
{
|
{
|
||||||
frame_top = original_frame_top.clone();
|
frame_top = original_frame_top.clone();
|
||||||
@@ -280,8 +288,6 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (to_show)
|
if (to_show)
|
||||||
{
|
{
|
||||||
sem.lock();
|
sem.lock();
|
||||||
@@ -302,8 +308,6 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
frame_nbr++;
|
frame_nbr++;
|
||||||
prepare_message(m, coords, CAM_IDX);
|
|
||||||
Comm.send_message(m);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+47
-2
@@ -17,6 +17,8 @@
|
|||||||
#include "gdal/gdal_priv.h"
|
#include "gdal/gdal_priv.h"
|
||||||
#include "gdal/cpl_conv.h"
|
#include "gdal/cpl_conv.h"
|
||||||
|
|
||||||
|
#include "tracker.h"
|
||||||
|
|
||||||
#include <yaml-cpp/yaml.h>
|
#include <yaml-cpp/yaml.h>
|
||||||
|
|
||||||
#include "../masa_protocol/include/send.hpp"
|
#include "../masa_protocol/include/send.hpp"
|
||||||
@@ -76,8 +78,6 @@ void pixel2coord(int x, int y, double &lat, double &lon, double *adfGeoTransform
|
|||||||
|
|
||||||
lon = a * x + b * y + xoff;
|
lon = a * x + b * y + xoff;
|
||||||
lat = d * x + e * y + yoff;
|
lat = d * x + e * y + yoff;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
void coord2pixel(double lat, double lon, int &x, int &y, double *adfGeoTransform)
|
void coord2pixel(double lat, double lon, int &x, int &y, double *adfGeoTransform)
|
||||||
{
|
{
|
||||||
@@ -176,6 +176,51 @@ unsigned long long time_in_ms()
|
|||||||
return t_stamp_ms;
|
return t_stamp_ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void addRoadUserfromTracker(const std::vector<Tracker>& trackers, Message *m, geodetic_converter::GeodeticConverter& gc)
|
||||||
|
{
|
||||||
|
m->t_stamp_ms = time_in_ms();
|
||||||
|
m->num_objects = trackers.size();
|
||||||
|
m->objects.clear();
|
||||||
|
double lat, lon, alt;
|
||||||
|
|
||||||
|
for (auto t : trackers)
|
||||||
|
{
|
||||||
|
if (t.pred_list_.size() > 0)
|
||||||
|
{
|
||||||
|
Categories cat;
|
||||||
|
switch (t.class_)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
cat = Categories::C_person;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
cat = Categories::C_car;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
cat = Categories::C_car;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
cat = Categories::C_bus;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
cat = Categories::C_motorbike;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
cat = Categories::C_bycicle;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
//std::cout << t.pred_list_.size() << std::endl;
|
||||||
|
gc.enu2Geodetic(t.pred_list_.back().x_, t.pred_list_.back().y_, 0, &lat, &lon, &alt);
|
||||||
|
//std::cout << "lat: " << lat << " lon: " << lon << std::endl;
|
||||||
|
uint8_t velocity = uint8_t(std::abs(t.pred_list_.back().vel_ * 3.6 / 2));
|
||||||
|
uint8_t orientation = uint8_t((int((t.pred_list_.back().yaw_ * 57.29 + 360)) % 360) * 17 / 24);
|
||||||
|
RoadUser r{static_cast<float>(lat), static_cast<float>(lon), velocity, orientation, cat};
|
||||||
|
std::cout << std::setprecision(10) << r.latitude << " , " << r.longitude << " " << int(r.speed) << " " << int(r.orientation) << " " << r.category << std::endl;
|
||||||
|
m->objects.push_back(r);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void prepare_message(Message *m, const std::vector<ObjCoords> &coords, int idx)
|
void prepare_message(Message *m, const std::vector<ObjCoords> &coords, int idx)
|
||||||
{
|
{
|
||||||
m->cam_idx = idx;
|
m->cam_idx = idx;
|
||||||
|
|||||||
+1
-1
Submodule tracker_CLASS updated: 9d2e8d3bcc...38b1c670dc
Reference in New Issue
Block a user