public void Set_preference(SensorInfo sensor_info, LidarConfig lidar_config) { //sensor setting m_SensorInfo = sensor_info; m_LidarConfig = lidar_config; //Lidar emulation variable setting m_RayChannelNum = lidar_config.Channels; m_PulseNumPerUpdate = (int)Math.Round(lidar_config.Firing_rate * fixedDeltatime); m_HorzStartAngle = 0f; m_VertInterval = lidar_config.Vertical_fov / (lidar_config.Channels - 1); m_VertStartAngle = -(lidar_config.Vertical_center_angle + (lidar_config.Vertical_fov / 2)); m_HorzInterval = lidar_config.Horizontal_fov / (lidar_config.Firing_rate / lidar_config.Refresh_rate); m_MaxDistance = lidar_config.Range; m_HorzRotationLimit = lidar_config.Horizontal_fov * (lidar_config.Refresh_rate * fixedDeltatime); // Parallel Computing setting m_PointCount = m_PulseNumPerUpdate * m_RayChannelNum; m_Result = new NativeArray <RaycastHit>(m_PointCount, Allocator.Persistent); m_RaycastCommand = new NativeArray <RaycastCommand>(m_PointCount, Allocator.Persistent); m_RayAngles = new NativeArray <Vector2>(m_PointCount, Allocator.Persistent); m_Buffer = new ComputeBuffer(m_PointCount, 16); m_LidarDetectionData = new NativeArray <DetectionData>(m_PointCount, Allocator.Persistent); m_WorldDetectionData = new NativeArray <DetectionData>(m_PointCount, Allocator.Persistent); }
public LidarSensorData(SensorInfo sensor_info, LidarConfig lidar_config, IEnumerable <DetectionData> detection_data) { this.Sensor_info = sensor_info; this.Lidar_config = lidar_config; this.Detection_data = detection_data; }
void SelectLidarType() { if (m_SensorID == 1) // VLP-16 { if (m_isDensePointCloud) { m_LidarConfig = new LidarConfig { Refresh_rate = 10, Channels = 16, Range = 100f, Horizontal_fov = 360f, Vertical_fov = 30f, Vertical_center_angle = 0f, Firing_rate = 18000 }; } else { m_LidarConfig = new LidarConfig { Refresh_rate = 10, Channels = 16, Range = 100f, Horizontal_fov = 360f, Vertical_fov = 30f, Vertical_center_angle = 0f, Firing_rate = 1000 }; } sensor_type = "VLP-16"; UnityEngine.Debug.Log("The selected lidar sensor is " + sensor_type); } else if (m_SensorID == 2) // HDL-32E { if (m_isDensePointCloud) { m_LidarConfig = new LidarConfig { Refresh_rate = 10, Channels = 32, Range = 100f, Horizontal_fov = 360f, Vertical_fov = 41.33f, Vertical_center_angle = 10f, Firing_rate = 18000 }; } else { m_LidarConfig = new LidarConfig { Refresh_rate = 10, Channels = 32, Range = 100f, Horizontal_fov = 360f, Vertical_fov = 41.33f, Vertical_center_angle = 10f, Firing_rate = 1000 }; } sensor_type = "HDL-32E"; UnityEngine.Debug.Log("The selected lidar sensor is HDL-32E"); } #region Logging part UnityEngine.Debug.Log("< Configuration > " + "\n" + "Refresh_rate : " + m_LidarConfig.Refresh_rate + "\n" + "Channel : " + m_LidarConfig.Channels + "\n" + "Range : " + m_LidarConfig.Range + "\n" + "Horizontal Field of View : " + m_LidarConfig.Horizontal_fov + "\n" + "Vertical Field of View : " + m_LidarConfig.Vertical_fov + "\n" + "Firing rate : " + m_LidarConfig.Firing_rate + "\n"); Set_preference(m_SensorInfo, m_LidarConfig); #endregion }