# swiftwing-internal-test **Repository Path**: superboySB/swiftwing-internal-test ## Basic Information - **Project Name**: swiftwing-internal-test - **Description**: No description available - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: internal_test - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2024-11-29 - **Last Updated**: 2024-12-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 迅翼仿真内测 ## SB复现笔记 参考[公众号](https://mp.weixin.qq.com/s?__biz=MzkxOTU5NjM1OQ==&mid=2247485010&idx=1&sn=1f75f8de3307a5e9803c7f19339987f4&chksm=c052b6949d18c6424fdb3dd524a5115f0e74e583661b43e1e86041d61de6f5ac93e495d2f2e4&mpshare=1&srcid=1126GZxWo6utXeAWczSDrGXo&sharer_shareinfo=e16211120546abdcaf6d1343b7d3f51c&sharer_shareinfo_first=e16211120546abdcaf6d1343b7d3f51c&from=groupmessage&scene=1&subscene=10000&sessionid=1733206288&clicktime=1733208689&enterid=1733208689&ascene=1&fasttmpl_type=0&fasttmpl_fullversion=7498251-zh_CN-zip&fasttmpl_flag=0&realreporttime=1733208689276&devicetype=android-34&version=2800353f&nettype=cmnet&abtest_cookie=AAACAA%3D%3D&lang=zh_CN&countrycode=CN&exportkey=n_ChQIAhIQ9abF7THYKRH3a82yJMJtXBLxAQIE97dBBAEAAAAAAOWsBguJGQMAAAAOpnltbLcz9gKNyK89dVj02POP6jQ6ja5i8hIr4sFa%2FG9Az91FPAYPDXXTeaHK9ZT1u4tA4XYehjsH0nedZAjeZZoUrw83E1eHLqeNKj1fMlKqJSkqiceSjVZ1PA6XWgYChINN3%2BhHYEKItCuC1YkPQpsNOMjIdB66UtVPxbsNpUcvtNn%2FJh2QLTDWShcjBnKQ05EJhU0cYD55C95D8LLRP0KCuEMFPe4ATAZQCc6ugJ%2BnujvxVPX8%2BCJtHb714Y7bzrVmrooOI6aWuaidT9chod5cqxovT7LeMmc%3D&pass_ticket=TOpocgOaY4jfpignylLKGUdyln0YFwuwEKQPJiF5vdyCx2zjzRL2axV9PI3UJ3xe&wx_header=3)学到了很多,感谢博主分享这么好的一个项目 ![](demo1.png) ### 安装简化 这里简化一下这个库安装过程,需要先安装nvidia-docker ```sh docker build -f docker/simulation.dockerfile -t swiftwing_image:sim --network=host --progress=plain . docker run --name swiftwing-sim -itd --privileged --gpus all --network=host \ -v /tmp/.X11-unix:/tmp/.X11-unix:ro \ -e DISPLAY=$DISPLAY \ -e LOCAL_USER_ID="$(id -u)" \ swiftwing_image:sim /bin/bash xhost + docker exec -it swiftwing-sim /bin/bash ``` 代码容器的在`/workspace/`路径下,因为我个人是做深度学习相关的,所以我的镜像里包含了对cuda的支持以及python3.9(适用一些像stable-baselines3等库中的新代码风格),然后下载项目就行 ```sh cd /workspace && git clone https://gitee.com/superboySB/swiftwing-internal-test ``` ### 在ros项目中导入两个包(可选) 在容器内已经预先准备好了一个mavros测试用的空项目,如果在博主后面的教程里你一定要用rosrun方式启动,那就需要在这里直接导入本项目关键代码 ```sh cd /workspace/catkin_ws/src/ catkin_create_pkg single_control rospy std_msgs cp -r /workspace/swiftwing-internal-test/px4_launch /workspace/catkin_ws/src/single_control/launch cp -r /workspace/swiftwing-internal-test/single_control/scripts /workspace/catkin_ws/src/single_control/scripts cp -f /workspace/swiftwing-internal-test/single_control/CMakeLists.txt /workspace/catkin_ws/src/single_control/ cp -f /workspace/swiftwing-internal-test/single_control/package.xml /workspace/catkin_ws/src/single_control/ catkin_create_pkg leader_follower_vtol rospy std_msgs cp -r /workspace/swiftwing-internal-test/leader_follower_vtol/launch /workspace/catkin_ws/src/leader_follower_vtol/launch cp -r /workspace/swiftwing-internal-test/leader_follower_vtol/scripts /workspace/catkin_ws/src/leader_follower_vtol/scripts cp -f /workspace/swiftwing-internal-test/leader_follower_vtol/CMakeLists.txt /workspace/catkin_ws/src/leader_follower_vtol/ cp -f /workspace/swiftwing-internal-test/leader_follower_vtol/package.xml /workspace/catkin_ws/src/leader_follower_vtol/ cd /workspace/catkin_ws/ find /workspace/catkin_ws/ -type f -name "*.py" -exec chmod +x {} \; find /workspace/catkin_ws/ -type f -name "*.py" -exec ls -l {} \; catkin_make ``` 后续就可以走下面的官方教程进行正常内测了,如果只需要python方式运行就不用这么麻烦了。 ## 简介 - 包含两个ros功能包:single_control和leader_follower_control - single_control为单固定一无人机控制,飞行控制基于TECS和GVF。 - leader_follower_control为多垂起固定翼编队,基于LQR和leader_follower控制。 - 创建你自己的工作空间和功能包名,将提供的功能包内的launch文件和scripts文件放入对应文件夹内即可。 - 将px4_launch文件夹内的launch文件复制到PX4-Autopilot/launch目录下。 ## 单机控制 1. 启动px4软件在环环境:roslaunch px4 single_plane.launch 2. 启动单机控制文件: 1. 可以直接在文件夹目录下启动py脚本:python3 circle_track.py。 2. 若需要使用rosrun启动方式,需要在工作空间下进行catkin_make,且将py文件权限设置为可执行文件。 3. 可视化绘图文件在scripts/tools目录下。 1. 可以直接启动py脚本:python3 plottrajectory3d.py。 2. 若需要使用rosrun启动方式,需要在CMakeLists文件中添加tools路径,将该功能包提供的CMakeLists覆盖到你的功能包目录下。 3. 切换显示的轨迹和坐标轴大小参考plottrajectory3d.py文件中的start_plotting()函数。 4. 创建你自己的单机飞行控制,参考empty_template.py模板。 ## 多机编队 1. 若地面站切换到哪个飞机才起飞,就在PX4-Autopilot/build/px4_sitl_default/etc/init.d-posix/px4-rc.params 文件中添加一行: param set-default COM_RCL_EXCEPT 4 该操作为设置无遥控信号情况下,飞机仍然可以进入offboard模式 2. 启动px4软件在环环境:roslaunch px4 8_vtol.launch 3. 启动多机编队launch文件:roslaunch leader_follower_vtol 8_swarm.launch 4. 若要修改架次,修改对应launch文件中的无人机数量即可,最多不超过10架。(后续更多架次待开发) ## 总结 1. 内测版本:本版本仅供内测用户进行初步体验,后续会发布更稳定的大版本,包含更多功能和优化。 2. 反馈与改进:欢迎用户提供宝贵的意见和建议,您的反馈将帮助我们改进和完善功能。