settings.json
bash
{
"SeeDocsAt": "https://github.com/Microsoft/AirSim/blob/main/docs/settings.md",
"SettingsVersion": 1.2,
"SimMode": "Multirotor",
"ViewMode": "NoDisplay",
"ClockSpeed": 1.0,
"LocalHostIp": "192.168.35.220",
"ApiServerPort": 41451,
"Vehicles": {
"drone_1": {
"VehicleType": "SimpleFlight",
"DefaultVehicleState": "Armed",
"EnableCollisionPassthrogh": false,
"EnableCollisions": true,
"AllowAPIAlways": true,
"Cameras": {
"front_left_custom": {
"CaptureSettings": [
{
"PublishToRos": 1,
"ImageType": 0,
"Width": 672,
"Height": 376,
"FOV_Degrees": 120,
"TargetGamma": 1.5
}
],
"X": 0.50, "Y": -0.06, "Z": 0.10,
"Pitch": 0.0, "Roll": 0.0, "Yaw": 0.0
},
"front_right_custom": {
"CaptureSettings": [
{
"PublishToRos": 1,
"ImageType": 0,
"Width": 672,
"Height": 376,
"FOV_Degrees": 120,
"TargetGamma": 1.5
}
],
"X": 0.50, "Y": 0.16, "Z": 0.10,
"Pitch": 0.0, "Roll": 0.0, "Yaw": 0.0
}
},
"X": 0,
"Y": 0,
"Z": 0,
"Pitch": 0,
"Roll": 0,
"Yaw": 0
}
}
}
airsim_ros_pkgs/src/airsim_ros_wrapper.cpp
cpp
void AirsimROSWrapper::img_response_timer_cb(const ros::TimerEvent& event)
{
try {
int image_response_idx = 0;
uint64_t kk;
for (const auto& airsim_img_request_vehicle_name_pair : airsim_img_request_vehicle_name_pair_vec_) {
const std::vector<ImageResponse>& img_response = airsim_client_images_.simGetImages(airsim_img_request_vehicle_name_pair.first, airsim_img_request_vehicle_name_pair.second);
// 创建 img_response 的副本,修改副本的时间戳
std::vector<ImageResponse> img_response_copy = img_response;
if (image_response_idx == 0){
kk = img_response_copy[0].time_stamp; // 获取第一个元素的时间戳
}
else {
img_response_copy[0].time_stamp = kk; // 使用保存的时间戳
}
if (img_response_copy.size() == airsim_img_request_vehicle_name_pair.first.size()) {
process_and_publish_img_response(img_response_copy, image_response_idx, airsim_img_request_vehicle_name_pair.second);
image_response_idx += img_response_copy.size();
}
// if (img_response.size() == airsim_img_request_vehicle_name_pair.first.size()) {
// process_and_publish_img_response(img_response, image_response_idx, airsim_img_request_vehicle_name_pair.second);
// image_response_idx += img_response.size();
// }
}
}
catch (rpc::rpc_error& e) {
std::string msg = e.get_error().as<std::string>();
std::cout << "Exception raised by the API, didn't get image response." << std::endl
<< msg << std::endl;
}
}