Parking detection


The parking_detection package

parking_detection is a package that calculates the coordinates of an empty parking space (If there is one)

That package includes 3 nodes, kinect_freq_mod, pub_transformations and parking_detection


How to use?


This node is responsible to modulate the frequency of the pointclouds publication (ex. kinect pointclouds) and to 'trim' the pointcloud at certain values (ex. z>0.5, which means that only points with a z coordinate bbigger than 0.5m are published)

// This section defines the frequency of publication (10Hz)
ros::Rate loop_rate(10);
// Limitation of the admissible points
for (int i=0;i<(int)pc_cut.points.size();i++)
if (pc_cut.points[i].z>0.6 && pc_cut.points[i].z<1.5)


Here is necessary to define the transformation matrix between the kinect frame and the axis of the robotic vehicle frame

// Coordinates of the kinect frame on the atlasMV vehicle (
float alpha=(38.5)*(3.1415/180);// 38.5 is obtained by multiplying the tillt angle by -1
tf::Transform transform(btMatrix3x3(0,-1,0, cos(alpha),0,sin(alpha), -sin(alpha),0,cos(alpha)),
btVector3(0.236, -0.05, 0.68));


This node is the one that is responsibe to search for an empty parking space. The conditions of what is a parking space are defined with the existance/no existance of points in four diferent volumes (represented by convexhulls); Those convexhulls change their colour from red to green, if the conditions are satisfied.

Launch Files

There are three important launch files on this package, parking_detection_bagplay.launch, parking_detection_bagrecord.launch and parking_detection.launch

The first one is to run the packadge from a recorded point cloud message, the second one is to recor the point cloud message, and the third one is to run the package in live action.

Author(s): Joel Pereira
autogenerated on Mon Mar 2 2015 01:32:31