使用SP Racing F3飞控&ROSflight软件包的无人机自主飞行系统

搭建四旋翼系统

机架: XR215 Plus 328
分线板:XR215 Plus PDB
飞控: SP Racing F3 标准版(Acro) 86
电机: 银燕RS2205 2300KV 400
电调: TYPHEERX XY30A 340
浆: 5寸浆 T5040 T5045 13
防撞圈:KingKong 5寸浆保护罩 12
接收机:RadioLinkR7EH
遥控器:RadioLink T6EHP-E

说明:因为手头我手头上只有一个穿越机,只是拿来调试,实际上这种自主无人机系统,要加一块板载计算机的,所以215的机架肯定不行,如果要实际飞行,至少要450或者650的,要不人放不下,也没法飞。

安装:
接线板焊接示意图
这里写图片描述

焊接:
焊接分线板的电池香蕉头(注意正负极)
焊接分线板上的5V输出(飞控供电端口)
焊接电调与电机的连线【注意焊接电调时,电机的正反转向】
连接:
分线板连接示意图
飞控SP Racing F3连接示意图
这里写图片描述


这里写图片描述


配置:
地面站软件:
这里写图片描述

固件烧写

这里写图片描述

USB连上飞控,但是断开与飞控连接
选择飞控的类型与固件版本
固件可以选择通过Online 和 Local的方式加载固件
可以通过 https://github.com/cleanflight/cleanflight/releases 下载相应固件,然后本地加载的方式。
然后 点击 Flash Firmware烧写固件,如果失败试着把波特率调小一点

初始配置

调试:


参考文档
SP Racing F3飞控安装

SP Racing F3飞控配置

ROSflight—HOME
rosflight/rosflight-gitHub

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
以下是一个简单的C++程序,它使用mavros库向PX4飞控发布指令,让四旋翼无人机向上飞行: ```c++ #include <ros/ros.h> #include <mavros_msgs/CommandBool.h> #include <mavros_msgs/CommandTOL.h> #include <mavros_msgs/OverrideRCIn.h> int main(int argc, char **argv) { // 初始化ROS节点 ros::init(argc, argv, "takeoff"); ros::NodeHandle nh; // 发布mavros命令 ros::Publisher rc_pub = nh.advertise<mavros_msgs::OverrideRCIn>("/mavros/rc/override", 10); ros::Publisher arming_pub = nh.advertise<mavros_msgs::CommandBool>("/mavros/cmd/arming", 10); ros::Publisher takeoff_pub = nh.advertise<mavros_msgs::CommandTOL>("/mavros/cmd/takeoff", 10); // 等待连接到飞控 while(ros::ok() && !ros::service::exists("/mavros/set_mode", true)) { ROS_INFO("Waiting for service /mavros/set_mode to become available"); ros::Duration(1).sleep(); } // 解锁飞控 mavros_msgs::CommandBool arming_cmd; arming_cmd.request.value = true; if(!arming_pub.call(arming_cmd) || !arming_cmd.response.success) { ROS_ERROR("Failed to arm the vehicle"); return -1; } // 起飞 mavros_msgs::CommandTOL takeoff_cmd; takeoff_cmd.request.altitude = 2.0; // 指定起飞高度为2米 if(!takeoff_pub.call(takeoff_cmd) || !takeoff_cmd.response.success) { ROS_ERROR("Failed to takeoff"); return -1; } // 向上飞行 mavros_msgs::OverrideRCIn rc_cmd; rc_cmd.channels[0] = 1500; // 油门通道,1500表示无动作 rc_cmd.channels[1] = 1500; // 副翼通道,1500表示无动作 rc_cmd.channels[2] = 1500; // 方向舵通道,1500表示无动作 rc_cmd.channels[3] = 2000; // 升降舵通道,2000表示向上飞行 rc_cmd.channels[4] = 1500; // 油门自动控制通道,1500表示关闭自动控制 rc_cmd.channels[5] = 1500; // 油门自动控制通道,1500表示关闭自动控制 rc_cmd.channels[6] = 1500; // 油门自动控制通道,1500表示关闭自动控制 rc_cmd.channels[7] = 1500; // 油门自动控制通道,1500表示关闭自动控制 rc_pub.publish(rc_cmd); // 等待5秒钟 ros::Duration(5).sleep(); // 关闭无人机 arming_cmd.request.value = false; if(!arming_pub.call(arming_cmd) || !arming_cmd.response.success) { ROS_ERROR("Failed to disarm the vehicle"); return -1; } return 0; } ``` 这个程序首先通过mavros库初始化ROS节点,并创建了三个发布器,用于发布解锁飞控、起飞和控制指令。接下来,程序进入一个while循环,等待连接到飞控。一旦连接成功,程序发送解锁指令并等待响应。如果解锁成功,则发送起飞指令并等待响应。最后,程序使用mavros库的OverrideRCIn消息类型发布了一个向上飞行的控制指令。这个指令将无人机的升降舵通道设定为2000,表示向上飞行。程序等待5秒钟后,发送一个解锁指令将无人机关闭。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一銤阳光

希望分享的内容对你有帮助

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值