settings.json
{"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
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;}
}