Beispiel #1
0
        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;
 }
Beispiel #3
0
        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
        }