大疆Onboard-SDK-ROS-3.6.1代码解读(一)

demo_flight_control.cpp

大致观察代码运行的流程,每一部分后面后详细补充说明

设置全局变量,程序在任意时刻都会调用到,具体会在 int main() 主函数中定义。

/* 服务的客户端 */
ros::ServiceClient set_local_pos_reference;     // 惯性坐标
ros::ServiceClient sdk_ctrl_authority_service;  // SDK控制权限
ros::ServiceClient drone_task_service;          // 起飞、悬停、降落任务
ros::ServiceClient query_version_service;       // 

/* 发布者 */
ros::Publisher ctrlPosYawPub;                   // 位置(x,y,z)偏航角(yaw) 
ros::Publisher ctrlBrakePub;                    // 刹车

/* 订阅话题的全局变量 */
uint8_t flight_status = 255;
uint8_t display_mode  = 255;

/* 
    * 全局变量 
*/

/* 当前GPS坐标 */
sensor_msgs::NavSatFix current_gps;

/* 当前姿态 */
geometry_msgs::Quaternion current_atti;

/* 当前惯性坐标 */
geometry_msgs::Point current_local_pos;

/* 任务 */
Mission square_mission;

在main() 函数中完成定义和初始化一些变量

消息订阅者:姿态角、GPS、惯性坐标、飞行状态

消息发布者:控制量(x、y、z、yaw)、控制类型(flag 这个会在后面详细介绍)

服务客户端:请求控制权限、请求飞行任务、未知(待补充)、请求设置惯性参考系。(这些服务由 dji_sdk_node 节点开启)


  /* 
        * 消息订阅
  */

  /* 姿态角(欧拉角) */
  ros::Subscriber attitudeSub = nh.subscribe("dji_sdk/attitude", 10, &attitude_callback);
  /* GPS */
  r
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值