Occupancy Grid Generation from 3D SLAM Map

To test our ability to generate an accurate occupancy grid, we will utilize the data-set collected in the green house on 10/3/17. For now, we are only concerned with a 2d occupancy grid to simplify the planning algorithms. To construct a 2d occupancy grid we can compress the 3d structure generated by our SLAM algorithm, as shown in the first video, into a 2d occupancy grid.




SLAM solution with new greenhouse dataset


Initially we tried to compress the whole 3d structure to generate an occupancy grid as provided in the second video. As can be seen, the quality of the generated occupancy grid is of poor quality.




First attempt at occupancy grid generation


In an attempt to generate a higher fidelity occupancy grid, we can restrict the amount of the 3d structure that we compress (i.e., we know that robot’s height, so we don’t need to be concerned about occupied grid points above it). Using this technique the cost map was generated again, as provided in the third video. As can be seen, this map is much high fidelity.




Second attempt at occupancy grid generation


Next Steps :

Next, I will try to do some clustering over the occupancy grid and calculate the convex hull of each blob to make it an easier environment for path planning.

GNSS Data

In addition to lidar, we also have a NovAtel SPAN system on board, which collectes GNSS/INS observables. To extract the NovAtel data from the ROS bag, the following three commands can be utilized, where the final file, gps.bin, can be converted to a RINEX file with NovAtels conversion software.

$ rostopic echo -b ~/path/to/file -p /gps_data > gps.data
$ cd $WVUPNG
$ ./bin/rosBagToBin.py -i gps.data -o gps.bin

For some reason, on this data collect, we did not get a GNSS fix; however, we did collect INS data.

 photo imgonline-com-ua-twotoone-XEN5fUgMoaSc_zpsliygmo1g.jpg

Fig 1 :: GNSS Data Extraction