tracking怎么使用_使用基于Bluemix的Flight Status and Tracking应用程序跟踪空中交通

这是一个使用Bluemix服务和第三方API(如'航班状态'、Google Maps和天气数据)构建的应用,它能在航班接近特定机场时显示实时位置。虽然内容不再更新,但提供了PDF形式的原始资料。

存档日期:2019年5月14日 | 上次更新时间:2014年7月22日 | 首次发布:2014年7月21日

创建此航班跟踪应用程序,以在航班接近Google地图上的特定机场时覆盖航班的实时位置。 它是Bluemix服务和外部第三方API(包括“航班状态” API,Google Maps API和天气数据)的混搭,以创建一个独特的参与系统。

此内容不再被更新或维护。 全文以PDF格式“按原样”提供。 随着技术的飞速发展,某些内容,步骤或插图可能已更改。

翻译自: https://www.ibm.com/developerworks/cloud/library/cl-flighttracker-app/index.html

#ifndef CTRL_FSM_FIX_TRAJECTORY_H #define CTRL_FSM_FIX_TRAJECTORY_H #include <cmath> #include <string> #include <ros/ros.h> #include <ros/callback_queue.h> #include <std_msgs/Bool.h> #include <std_msgs/Int32.h> #include <sensor_msgs/Imu.h> #include <nav_msgs/Odometry.h> #include <geometry_msgs/PoseArray.h> #include <geometry_msgs/PoseStamped.h> #include <mavros_msgs/State.h> #include <common/visual.hpp> #include <common/trajectory.hpp> #include <common/quat_euler_convert.hpp> #include <ctrl/motion_controller_separate.h> class CtrlFSMFixTrajectory { public: // Constructor CtrlFSMFixTrajectory() = delete; CtrlFSMFixTrajectory(const ros::NodeHandle &nh, const ros::NodeHandle &pnh); CtrlFSMFixTrajectory(const CtrlFSMFixTrajectory &rhs) = delete; CtrlFSMFixTrajectory &operator=(const CtrlFSMFixTrajectory &rhs) = delete; CtrlFSMFixTrajectory(CtrlFSMFixTrajectory &&rhs) = delete; CtrlFSMFixTrajectory &operator=(CtrlFSMFixTrajectory &&rhs) = delete; virtual ~CtrlFSMFixTrajectory() {} private: // State Machine enum FSM_EXEC_STATE { INIT, HOVER, CMD_CTRL, WAIT }; FSM_EXEC_STATE exec_state_; std_msgs::Int32 exec_state_int_; float hover_yaw_; Eigen::Vector2f hover_pos_; bool have_odom_; bool have_traj_; bool new_hover_flag_; bool is_ground_; bool follow_traj_finished_; bool is_armed_; // ROS NodeHandle ros::NodeHandle nh_; ros::NodeHandle pnh_; // ROS Subscribers ros::Subscriber odom_sub_; ros::Subscriber run_trigger_sub_; ros::Subscriber flight_status_sub_; ros::Subscriber mavros_state_sub_; // ROS Publishers ros::Publisher attitude_target_pub_; ros::Publisher follow_traj_finished_pub_; ros::Publisher ground_ctrl_fsm_pub_; // ROS Timers ros::Timer run_timer_; // ROS Topics std::string odometry_topic_; std::string run_trigger_topic_; std::string attitude_target_topic_; std::string flight_status_topic_; std::string follow_traj_finished_topic_; std::string ground_ctrl_fsm_topic_; std::string mavros_state_topic_; // Variables common::trajectory::CurEstimate<float> cur_estimate_; double traj_duration_; ros::Time start_time_; minco_utils::Trajectory follow_traj_; common::trajectory::Trajectory<double> follow_traj_visual_; geometry_msgs::PoseStamped run_trigger_msg_; bool loop_tracking_flag_; // PID Controller Parameters PIDParams position_pid_params_; PIDParams velocity_pid_params_; PIDParams pitch_pid_params_; PIDParams yaw_pid_params_; // Common Parameters CommonParams common_params_; // Thrust Parameters float thrust_return_; bool use_thrust_change_; // Minco Trajectory Parameters minco_utils::MincoTrajParams traj_params_; // Visualizer the trajectory common::visual::TrajectoryVisualizer::Ptr traj_visualizer_; // Motion Controller MotionControllerSeparate::Ptr motion_controller_; // Functions void changeFSMExecState(FSM_EXEC_STATE new_state, string pos_call); void printFSMExecState(); // Callback functions void odomCallback(const nav_msgs::Odometry::ConstPtr &msg_ptr); void runTriggerCallback(const geometry_msgs::PoseStamped::ConstPtr &msg_ptr); void flightStatusCallback(const std_msgs::Bool::ConstPtr &msg_ptr); void mavrosStateCallback(const mavros_msgs::State::ConstPtr &msg_ptr); void runTimerCallback(const ros::TimerEvent &event); void publishAttitudeTarget(const std::pair<float, float> &desired_attitude, const float &feedforward_pitch_rate, const float &feedforward_yaw_rate); }; #endif // CTRL_FSM_FIX_TRAJECTORY_H 补充注释上述代码
09-20
#ifndef CTRL_FSM_WAYPOINTS_H #define CTRL_FSM_WAYPOINTS_H #include <cmath> #include <string> #include <ros/ros.h> #include <ros/callback_queue.h> #include <std_msgs/Bool.h> #include <std_msgs/Int32.h> #include <sensor_msgs/Imu.h> #include <nav_msgs/Odometry.h> #include <geometry_msgs/PoseArray.h> #include <geometry_msgs/PoseStamped.h> #include <mavros_msgs/State.h> #include <common/visual.hpp> #include <common/trajectory.hpp> #include <common/quat_euler_convert.hpp> #include <ctrl/motion_controller_separate.h> class CtrlFSMWaypoints { public: // Constructor CtrlFSMWaypoints() = delete; CtrlFSMWaypoints(const ros::NodeHandle &nh, const ros::NodeHandle &pnh); CtrlFSMWaypoints(const CtrlFSMWaypoints &rhs) = delete; CtrlFSMWaypoints &operator=(const CtrlFSMWaypoints &rhs) = delete; CtrlFSMWaypoints(CtrlFSMWaypoints &&rhs) = delete; CtrlFSMWaypoints &operator=(CtrlFSMWaypoints &&rhs) = delete; virtual ~CtrlFSMWaypoints() {} private: // State Machine enum FSM_EXEC_STATE { INIT, HOVER, CMD_CTRL, WAIT }; FSM_EXEC_STATE exec_state_; std_msgs::Int32 exec_state_int_; float hover_yaw_; Eigen::Vector2f hover_pos_; bool have_odom_; bool have_traj_; bool new_hover_flag_; bool is_ground_; bool follow_traj_finished_; bool is_armed_; bool emergency_stop_flag_; // ROS NodeHandle ros::NodeHandle nh_; ros::NodeHandle pnh_; // ROS Subscribers ros::Subscriber odom_sub_; ros::Subscriber run_trigger_sub_; ros::Subscriber flight_status_sub_; ros::Subscriber mavros_state_sub_; ros::Subscriber waypoints_list_sub_; ros::Subscriber goal_sub_; ros::Subscriber emergency_stop_sub_; // ROS Publishers ros::Publisher attitude_target_pub_; ros::Publisher follow_traj_finished_pub_; ros::Publisher ground_ctrl_fsm_pub_; // ROS Timers ros::Timer run_timer_; // ROS Topics std::string odometry_topic_; std::string run_trigger_topic_; std::string attitude_target_topic_; std::string flight_status_topic_; std::string follow_traj_finished_topic_; std::string waypoints_list_topic_; std::string ground_ctrl_fsm_topic_; std::string goal_topic_; std::string emergency_stop_topic_; // Variables common::trajectory::CurEstimate<float> cur_estimate_; double traj_duration_; ros::Time start_time_; minco_utils::Trajectory follow_traj_; geometry_msgs::PoseStamped run_trigger_msg_; bool loop_tracking_flag_; int eight_count_; // Only used in subscribe waypoints_list_callback int eight_count_expected_; double eight_length_; double eight_width_; bool adding_eight_traj_; // PID Controller Parameters PIDParams position_pid_params_; PIDParams velocity_pid_params_; PIDParams pitch_pid_params_; PIDParams yaw_pid_params_; // Common Parameters CommonParams common_params_; // Thrust Parameters float thrust_return_; bool use_thrust_change_; // Waypoints Parameters int waypoint_num_; double interpolation_dis_; bool using_waypoints_params_; Eigen::MatrixXd final_state_; std::vector<Eigen::Vector3d> Q_; std::vector<Eigen::Vector3d> waypoints_; // Minco Trajectory Parameters minco_utils::MincoTrajParams traj_params_; // Visualizer the trajectory common::visual::TrajectoryVisualizer::Ptr traj_visualizer_; // Motion Controller MotionControllerSeparate::Ptr motion_controller_; // Functions void changeFSMExecState(FSM_EXEC_STATE new_state, string pos_call); void printFSMExecState(); // Callback functions void odomCallback(const nav_msgs::Odometry::ConstPtr &msg_ptr); void runTriggerCallback(const geometry_msgs::PoseStamped::ConstPtr &msg_ptr); void flightStatusCallback(const std_msgs::Bool::ConstPtr &msg_ptr); void mavrosStateCallback(const mavros_msgs::State::ConstPtr &msg_ptr); void waypointsListCallback(const geometry_msgs::PoseArray::ConstPtr &msg_ptr); void goalCallback(const geometry_msgs::PoseStamped::ConstPtr &msg_ptr); void emergencyStopCallback(const std_msgs::Bool::ConstPtr &msg_ptr); void runTimerCallback(const ros::TimerEvent &event); void publishAttitudeTarget(const std::pair<float, float> &desired_attitude, const float &feedforward_pitch_rate, const float &feedforward_yaw_rate); }; #endif // CTRL_FSM_WAYPOINTS_H 注释上述代码
最新发布
09-20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值