6 #include <opencv2/highgui/highgui.hpp>
7 #include <opencv2/imgproc/imgproc.hpp>
14 double x_obj,
double y_obj,
double L,
double W,
double obj_yaw,
28 int x1 = -L/2*pix_per_m;
29 int x2 = L/2*pix_per_m;
30 int y1 = -W/2*pix_per_m;
31 int y2 = W/2*pix_per_m;
34 int xt1 = x0 + x_obj*pix_per_m + cos_th*x1+sin_th*y1;
35 int xt2 = x0 + x_obj*pix_per_m + cos_th*x2+sin_th*y1;
36 int xt3 = x0 + x_obj*pix_per_m + cos_th*x2+sin_th*y2;
37 int xt4 = x0 + x_obj*pix_per_m + cos_th*x1+sin_th*y2;
38 int yt1 = y0 - (y_obj*pix_per_m - sin_th*x1+cos_th*y1);
39 int yt2 = y0 - (y_obj*pix_per_m - sin_th*x2+cos_th*y1);
40 int yt3 = y0 - (y_obj*pix_per_m - sin_th*x2+cos_th*y2);
41 int yt4 = y0 - (y_obj*pix_per_m - sin_th*x1+cos_th*y2);
44 pts_bb[0] = cv::Point2i(xt1, yt1);
45 pts_bb[1] = cv::Point2i(xt2, yt2);
46 pts_bb[2] = cv::Point2i(xt3, yt3);
47 pts_bb[3] = cv::Point2i(xt4, yt4);
53 int main(
int argc,
char** argv)
66 unsigned int n_beams = 7;
67 double angle_min = -90.0/180.0*M_PI;
68 double angle_max = 90.0/180.0*M_PI;
72 for (
int i = 1; i<argc; ++i)
76 std::cout <<
"Usage: test_geolib_lrf [NUM_BEAMS] [X Y YAW] [WIDTH DEPTH]" <<
std::endl;
115 ranges.
resize(n_beams, 0);
117 lrf_model.
render(opt, render_result);
120 unsigned int xsize = 501, ysize = 501, pix_per_m = 100;
121 cv::Mat img(ysize, xsize, CV_8UC3, cv::Scalar(255,255,255));
122 unsigned int x0 = xsize/10, y0 = ysize/2;
123 cv::Scalar clr_render(0,0,255);
124 cv::Scalar clr_origin(0,255,0);
129 cv::fillPoly(img, contours, cv::Scalar(150,150,150));
132 cv::Point origin(x0, y0);
133 double th = angle_min;
138 for (
unsigned int i=0; i < render_result.
ranges.
size(); ++i, th += angle_incr)
140 double r_render = render_result.
ranges[i]*pix_per_m;
142 r_render = 10.0*pix_per_m;
145 cv::circle(img, end_point, 2, clr_render, 2);
147 cv::line(img, origin, end_point, cv::Scalar(0,0,0));
153 cv::circle(img, origin, 3, clr_origin, 2);
156 cv::putText(img,
"origin", cv::Point(0,20), cv::FONT_HERSHEY_COMPLEX_SMALL, 0.8, clr_origin);
157 cv::putText(img,
"rendered point", cv::Point(0,40), cv::FONT_HERSHEY_COMPLEX_SMALL, 0.8, clr_render);
158 cv::imshow(
"Rendered data and object", img);