AirSim 自动驾驶仿真 (8) - AirSim 传感器
发布时间
阅读量:
阅读量
AirSim 自动驾驶仿真 (8) - AirSim 传感器
AirSim当前支持一系传感器。各类传感器均通过一个整数枚举来标识其类型。
- Camera
- Barometer = 1
- Imu = 2
- Gps = 3
- Magnetometer = 4
- Distance Sensor = 5
- Lidar = 6
相机的配置与其它传感器存在差异,在此情况下不具备对应的枚举值。相机相关的配置信息可以通过查阅general settings以及image API来进行查看。
默认传感器 Default sensors
如果没有在settings.json中配置传感器,则基于sim模式下默认可用的传感器有哪些?
载具 Multirotor
- Imu
- Magnetometer
- Gps
- Barometer
车 Car
- Gps
计算机视觉 ComputerVision
- None
场景过后,在C++文件[AirSimSettings.hpp]中定义的函数createDefaultSensorSettings用于配置带有默认参数的传感器,并根据sim模式下的settings.json文件进行参数设置。
配置默认传感器列表 Configuring the default sensor list
默认传感器列表可以在 settings json 配置:
"DefaultSensors": {
"Barometer": {
"SensorType": 1,
"Enabled" : true
},
"Imu": {
"SensorType": 2,
"Enabled" : true
},
"Gps": {
"SensorType": 3,
"Enabled" : true
},
"Magnetometer": {
"SensorType": 4,
"Enabled" : true
},
"Distance": {
"SensorType": 5,
"Enabled" : true
},
"Lidar2": {
"SensorType": 6,
"Enabled" : true,
"NumberOfChannels": 4,
"PointsPerSecond": 10000
}
},
配置汽车专用传感器列表 Configuring vehicle-specific sensor list
如果载具提供其自身的传感器列表,则它应提供完整的传感器列表集合,并拒绝对默认传感器列表进行部分性地增删改。
汽车专用传感器配置可在车辆配置文件中进行设置。
例如,
"Vehicles": {
"Drone1": {
"VehicleType": "SimpleFlight",
"AutoCreate": true,
...
"Sensors": {
"MyLidar1": {
"SensorType": 6,
"Enabled" : true,
"NumberOfChannels": 16,
"PointsPerSecond": 10000,
"X": 0, "Y": 0, "Z": -1,
"DrawDebugPoints": true
},
"MyLidar2": {
"SensorType": 6,
"Enabled" : true,
"NumberOfChannels": 4,
"PointsPerSecond": 10000,
"X": 0, "Y": 0, "Z": -1,
"DrawDebugPoints": true
}
}
}
}
传感器专用设置 Sensor specific settings
每种传感器类型也有它自己的设置.
以雷达专用设定为例,请查看 lidar .
传感器 APIs Sensor APIs
示例程序可以直接跳转到 hello_drone.py 或 hello_drone.cpp 以及下面提供的所有API.
Barometer
C++
msr::airlib::BarometerBase::Output getBarometerData(const std::string& barometer_name, const std::string& vehicle_name);
Python
barometer_data = getBarometerData(barometer_name = "", vehicle_name = "")
IMU
C++
msr::airlib::ImuBase::Output getImuData(const std::string& imu_name = "", const std::string& vehicle_name = "");
Python
imu_data = getImuData(imu_name = "", vehicle_name = "")
GPS
C++
msr::airlib::GpsBase::Output getGpsData(const std::string& gps_name = "", const std::string& vehicle_name = "");
Python
gps_data = getGpsData(gps_name = "", vehicle_name = "")
Magnetometer
C++
msr::airlib::MagnetometerBase::Output getMagnetometerData(const std::string& magnetometer_name = "", const std::string& vehicle_name = "");
Python
magnetometer_data = getMagnetometerData(magnetometer_name = "", vehicle_name = "")
Distance sensor
C++
msr::airlib::DistanceBase::Output getDistanceSensorData(const std::string& distance_sensor_name = "", const std::string& vehicle_name = "");
Python
distance_sensor_name = getDistanceSensorData(distance_sensor_name = "", vehicle_name = "")
Lidar
See lidar for Lidar API.
全部评论 (0)
还没有任何评论哟~
