Our Hackathon team:
Rihards Gailums, Pilot Automotive Labs, firstname.lastname@example.org ,
Klāvs Taube, LUMII ,
Pavel Hajek ,
František Kolovský ,
The problem and background of project described here: https://sdi4apps.eu/2016/03/drivenet-maps-open-data-real-time-road-maps-for-autonomous-driving-from-3d-lidar-point-clouds/
Goal during 2 days of Baltic Open (Geo)Data Hackathon were creating of working prototype of cloud based service “Drivenet Maps”- place where to merge LIDAR point cloud data with navigation map.
Existing proprietary solutions: Google Maps, HERE HD maps, TomTom navigation maps. Autoware https://github.com/CPFL/Autoware/ created on Nagoya University with Cloud-based Dynamic Maps (demo here: https://www.youtube.com/watch?v=xZMQTCN9ryc ) Some of existing open source based prototypes:
Data we had:
- Velodyne 32e LIDAR point cloud data of Riga streets in .pcap Wireshark format; Data available here: http://vault.edi.lv/index.php/s/NbEnAfIvHUo2og1
- GPS data packets .in pcap file
After short research we had 2 plans of development:
To create cloud server of Open Street Map (OSM), import LIDAR point cloud data and create 3D editable (to add road marks) layer fro point cloud data.
To create server based on Robot Operating System (ROS), to import OSM layer, convert LIDAR point cloud using SLAM, merge together and provide web interface to access from web.
PLAN A development
Open Street Map support .las format of data to be imported. It is possible to convert. pcap to .pcd and later to .las using ROS. However we succeed to create sequence of .pcd files without geo referenced data. It was possible to import data frame by frame, but difficult to arrange them to map using GPS coordinates. Task seems to be outside of 2 days development time of hackathon, so we turned to PLAN B.
PLAN B development – We use desktop high end server with Nvidia GPU’s, Ubuntu 14.04, ROS Indigo and Autoware.
ROS based Riga map using http://wiki.ros.org/osm_cartography
Commands to replicate
How to import OSM layer:
- roslaunch osm_cartography viz_osm.launch url:=package://osm_cartography/tests/riga.osm;
- rosrun tf static_transform_publisher 325466 6316320 0 0 0 0 1 map local_map 100;
- “rosrun rviz rviz” and load config osm.rviz
How to display point cloud on ROS from .pcap:
- rosrun velodyne_driver velodyne_node _pcap:=/home/Desktop/LIDAR_data/2016-03-14-14-08-59_Velodyne-HDL-32-Data.pcap
- rosrun velodyne_pointcloud gen_calibration.py /home/Desktop/LIDAR_data/DSR_Viewer/32db.xml
- roslaunch velodyne_pointcloud 32e_points.launch calibration:=home/Desktop/LIDAR_data/DSR_Viewer/32db.yaml
- rosrun rviz rviz -f velodyne
- In the “displays” panel, click “Add”, then select “Point Cloud2”, then press “OK”.
- In the “Topic” field of the new “Point Cloud2” tab, enter “/velodyne_points”
- Based on http://wiki.ros.org/velodyne/Tutorials/Getting%20Started%20with%20the%20HDL-32E
How to transform data from .pcap to .bag file:
rosrun rosbag record -O your_vlp16_070815.bag /velodyne_packets
As result we got. bag file with velodyne_packets data, but missing GPS NMEA data
How to SLAM data
Since open source project http://wiki.ros.org/loam_velodyne moved to Commercial http://www.realearth.us/products.html we found fork here: https://github.com/laboshinl/loam_velodyne
rosbag play ~/Downloads/nsh_indoor_outdoor.bag
roslaunch velodyne_pointcloud 32e_points.launch calibration:=/home/laboshinl/calib.yaml pcap:=”/home/laboshinl/Downloads/velodyne.pcap”
We tried both . bag and .pcap data files, but ended up with lack of IMU / GPS data for frames, so SLAM is building all cloud point frames @ one point.
- Velodyne as vendor – no support for / apps / libs for data . Only software – VeloView http://www.paraview.org/Wiki/VeloView – able to capture .pcap files, Export as .csv frames and geolocation file. Useless for SLAM;
- ROS – most advanced platform for data point cloud management – all open source libs around ROS;
- Few and bad documented libs PointClouds – > Geo data;
- Open source -> moved to Comercial http://wiki.ros.org/loam_velodyne to http://www.realearth.us/products.html ;
- No open source Automotive vector map editing tool – .csv files / objects [Autoware];
- Universities do not release autonomous driving libs;
- Drivenet Maps server should be built on ROS server , not OSM;
- For particular case we had not enough data to build 3D map model by SLAM;
- LIDAR data capture should be done by ROS -.bag by including different tracks for LIDAR point cloud and NMEA GPS data from IMU to use SLAM for 3D map creation.
There is a solid and exponentially growing market need for opensource / opendata maps for autonomous driving, so Drivenet Maps should be further developed by academic / private partnership.
PILOT Automotive Labs https://www.f6s.com/pilotautomotivelabs
EDI – Institute of Electronics and Computer Science (Riga, Latvia) http://www.edi.lv/en/home/
Contacts for further development