我的这个论文就是基于crazyflies搞一个无人机集群的算法的设计。我现在就是不知道该怎么开始,我看crazyswarm2要搞一个新系统,我也没敢搞,不知道该从哪步开始做,我导师他说他自己也不会,设备说是学院有,就是开头不知道该怎么下手,还有模拟仿真啥的

我的这个论文就是基于crazyflies搞一个无人机集群的算法的设计。我现在就是不知道该怎么开始,我看crazyswarm2要搞一个新系统,我也没敢搞,不知道该从哪步开始做,我导师他说他自己也不会,设备说是学院有,就是开头不知道该怎么下手,还有模拟仿真啥的

下午好🌅🌅🌅
本答案参考通义千问
你目前的情况是:基于Crazyflies的无人机集群算法设计,但对 Crazyswarm2 的具体操作、系统搭建和仿真环境不太熟悉,而且导师也不熟悉这个系统。这种情况下,确实会让人感到迷茫,但没关系,我们可以一步步来。
你现在的任务是:
Crazyswarm2 是一个基于 ROS(Robot Operating System)的 多无人机控制系统,支持 Crazyflie 2.x 无人机集群控制,可以用于:
如果你还没安装 ROS,请先安装 ROS Noetic(适用于 Ubuntu 20.04)。
你可以参考官方文档:https://crazyswarm.readthedocs.io/en/latest/
git clone https://github.com/ethz-asl/crazyswarm.git
cd crazyswarm
sudo apt-get install python3-pip python3-setuptools python3-yaml python3-numpy python3-scipy python3-matplotlib python3-pandas python3-rosdep python3-rosinstall
pip3 install -r requirements.txt
mkdir build && cd build
cmake ..
make
source devel/setup.bash
roslaunch crazyswarm.launch
如果一切正常,你会看到一个 Gazebo 仿真界面,并能看到几架无人机在空中飞行。
crazyswarm/scripts 中的脚本)重点:掌握 ROS 的基本概念是关键!
重点:Crazyswarm2 提供了 Python API,非常方便!
安装 ROS 和 Crazyswarm2 系统
学习 ROS 基础知识
rosnode, rostopic, rviz 等工具学习 Crazyswarm2 的 Python API
crazyswarm/scripts)实现一个简单算法(如编队)
尝试真实飞行测试
撰写论文中的算法部分
| 项目 | 链接 | |------|------| | Crazyswarm2 官方文档 | https://crazyswarm.readthedocs.io/en/latest/ | | ROS 教程 | https://www.ros.org/learning/ | | Crazyflie 官方资料 | https://www.bitcraze.io/ | | Gazebo 教程 | http://gazebosim.org/tutorials |
以下是一个简单的 Python 示例,控制一架无人机飞到目标点:
import rospy
from crazyflie_common.msg import PositionTarget
from crazyflie_common.srv import Setpoint
def move_to_position(cf_name, x, y, z):
rospy.init_node('move_node')
pub = rospy.Publisher(f'/{cf_name}/position_target', PositionTarget, queue_size=10)
rate = rospy.Rate(10)
target = PositionTarget()
target.header.frame_id = "base_link"
target.position.x = x
target.position.y = y
target.position.z = z
target.yaw = 0.0
while not rospy.is_shutdown():
pub.publish(target)
rate.sleep()
if __name__ == '__main__':
try:
move_to_position("crazyflie1", 1.0, 1.0, 1.0)
except rospy.ROSInterruptException:
pass
注意: 你需要根据自己的 Crazyswarm 配置修改
cf_name,并确保 ROS 环境正确设置。
你现在需要的是:
不要怕困难,一步一步来,你一定能完成你的论文!
如果你愿意,我也可以帮你写一个 完整的 Crazyswarm2 开发流程指南,或者提供 具体的算法框架模板。欢迎继续提问!