[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-uzh-rpg--agile_autonomy":3,"tool-uzh-rpg--agile_autonomy":65},[4,23,32,40,49,57],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":22},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",85092,2,"2026-04-10T11:13:16",[13,14,15,16,17,18,19,20,21],"图像","数据工具","视频","插件","Agent","其他","语言模型","开发框架","音频","ready",{"id":24,"name":25,"github_repo":26,"description_zh":27,"stars":28,"difficulty_score":29,"last_commit_at":30,"category_tags":31,"status":22},5784,"funNLP","fighting41love\u002FfunNLP","funNLP 是一个专为中文自然语言处理（NLP）打造的超级资源库，被誉为\"NLP 民工的乐园”。它并非单一的软件工具，而是一个汇集了海量开源项目、数据集、预训练模型和实用代码的综合性平台。\n\n面对中文 NLP 领域资源分散、入门门槛高以及特定场景数据匮乏的痛点，funNLP 提供了“一站式”解决方案。这里不仅涵盖了分词、命名实体识别、情感分析、文本摘要等基础任务的标准工具，还独特地收录了丰富的垂直领域资源，如法律、医疗、金融行业的专用词库与数据集，甚至包含古诗词生成、歌词创作等趣味应用。其核心亮点在于极高的全面性与实用性，从基础的字典词典到前沿的 BERT、GPT-2 模型代码，再到高质量的标注数据和竞赛方案，应有尽有。\n\n无论是刚刚踏入 NLP 领域的学生、需要快速验证想法的算法工程师，还是从事人工智能研究的学者，都能在这里找到急需的“武器弹药”。对于开发者而言，它能大幅减少寻找数据和复现模型的时间；对于研究者，它提供了丰富的基准测试资源和前沿技术参考。funNLP 以开放共享的精神，极大地降低了中文自然语言处理的开发与研究成本，是中文 AI 社区不可或缺的宝藏仓库。",79857,1,"2026-04-08T20:11:31",[19,14,18],{"id":33,"name":34,"github_repo":35,"description_zh":36,"stars":37,"difficulty_score":29,"last_commit_at":38,"category_tags":39,"status":22},5773,"cs-video-courses","Developer-Y\u002Fcs-video-courses","cs-video-courses 是一个精心整理的计算机科学视频课程清单，旨在为自学者提供系统化的学习路径。它汇集了全球知名高校（如加州大学伯克利分校、新南威尔士大学等）的完整课程录像，涵盖从编程基础、数据结构与算法，到操作系统、分布式系统、数据库等核心领域，并深入延伸至人工智能、机器学习、量子计算及区块链等前沿方向。\n\n面对网络上零散且质量参差不齐的教学资源，cs-video-courses 解决了学习者难以找到成体系、高难度大学级别课程的痛点。该项目严格筛选内容，仅收录真正的大学层级课程，排除了碎片化的简短教程或商业广告，确保用户能接触到严谨的学术内容。\n\n这份清单特别适合希望夯实计算机基础的开发者、需要补充特定领域知识的研究人员，以及渴望像在校生一样系统学习计算机科学的自学者。其独特的技术亮点在于分类极其详尽，不仅包含传统的软件工程与网络安全，还细分了生成式 AI、大语言模型、计算生物学等新兴学科，并直接链接至官方视频播放列表，让用户能一站式获取高质量的教育资源，免费享受世界顶尖大学的课堂体验。",79792,"2026-04-08T22:03:59",[18,13,14,20],{"id":41,"name":42,"github_repo":43,"description_zh":44,"stars":45,"difficulty_score":46,"last_commit_at":47,"category_tags":48,"status":22},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,3,"2026-04-04T04:44:48",[17,13,20,19,18],{"id":50,"name":51,"github_repo":52,"description_zh":53,"stars":54,"difficulty_score":46,"last_commit_at":55,"category_tags":56,"status":22},519,"PaddleOCR","PaddlePaddle\u002FPaddleOCR","PaddleOCR 是一款基于百度飞桨框架开发的高性能开源光学字符识别工具包。它的核心能力是将图片、PDF 等文档中的文字提取出来，转换成计算机可读取的结构化数据，让机器真正“看懂”图文内容。\n\n面对海量纸质或电子文档，PaddleOCR 解决了人工录入效率低、数字化成本高的问题。尤其在人工智能领域，它扮演着连接图像与大型语言模型（LLM）的桥梁角色，能将视觉信息直接转化为文本输入，助力智能问答、文档分析等应用场景落地。\n\nPaddleOCR 适合开发者、算法研究人员以及有文档自动化需求的普通用户。其技术优势十分明显：不仅支持全球 100 多种语言的识别，还能在 Windows、Linux、macOS 等多个系统上运行，并灵活适配 CPU、GPU、NPU 等各类硬件。作为一个轻量级且社区活跃的开源项目，PaddleOCR 既能满足快速集成的需求，也能支撑前沿的视觉语言研究，是处理文字识别任务的理想选择。",75334,"2026-04-10T23:08:27",[19,13,20,18],{"id":58,"name":59,"github_repo":60,"description_zh":61,"stars":62,"difficulty_score":29,"last_commit_at":63,"category_tags":64,"status":22},3215,"awesome-machine-learning","josephmisiti\u002Fawesome-machine-learning","awesome-machine-learning 是一份精心整理的机器学习资源清单，汇集了全球优秀的机器学习框架、库和软件工具。面对机器学习领域技术迭代快、资源分散且难以甄选的痛点，这份清单按编程语言（如 Python、C++、Go 等）和应用场景（如计算机视觉、自然语言处理、深度学习等）进行了系统化分类，帮助使用者快速定位高质量项目。\n\n它特别适合开发者、数据科学家及研究人员使用。无论是初学者寻找入门库，还是资深工程师对比不同语言的技术选型，都能从中获得极具价值的参考。此外，清单还延伸提供了免费书籍、在线课程、行业会议、技术博客及线下聚会等丰富资源，构建了从学习到实践的全链路支持体系。\n\n其独特亮点在于严格的维护标准：明确标记已停止维护或长期未更新的项目，确保推荐内容的时效性与可靠性。作为机器学习领域的“导航图”，awesome-machine-learning 以开源协作的方式持续更新，旨在降低技术探索门槛，让每一位从业者都能高效地站在巨人的肩膀上创新。",72149,"2026-04-03T21:50:24",[20,18],{"id":66,"github_repo":67,"name":68,"description_en":69,"description_zh":70,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":104,"forks":105,"last_commit_at":106,"license":107,"difficulty_score":108,"env_os":109,"env_gpu":110,"env_ram":111,"env_deps":112,"category_tags":126,"github_topics":80,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":22,"created_at":127,"updated_at":128,"faqs":129,"releases":159},6576,"uzh-rpg\u002Fagile_autonomy","agile_autonomy","Repository Containing the Code associated with the Paper: \"Learning High-Speed Flight in the Wild\"","agile_autonomy 是一个源自苏黎世大学机器人感知组（RPG）的开源项目，核心代码复现了发表在《Science Robotics》上的研究成果“在野外学习高速飞行”。它主要解决无人机在复杂、未知的自然环境中进行高速自主飞行的难题。传统方法往往依赖高精度地图或受限环境，而 agile_autonomy 利用深度强化学习，让无人机仅凭机载传感器即可在森林等无结构化场景中灵活避障并高速穿梭。\n\n该项目特别适合机器人学研究人员、自动驾驶算法开发者以及高校科研团队使用。其独特的技术亮点在于结合了仿真训练与现实迁移能力：通过高保真仿真器 Flightmare 进行大规模策略训练，并将学到的飞行策略成功部署到真实四旋翼无人机上，实现了从虚拟到现实的无缝跨越。代码库提供了完整的训练、测试及仿真流程，支持用户在 Ubuntu 和 ROS 环境下快速复现论文中的高速飞行效果。无论是想探索端到端飞行控制的前沿学者，还是希望验证强化学习在动态环境中应用效果的工程师，agile_autonomy 都提供了一个坚实且经过验证的技术基线。","# Learning High-Speed Flight in the Wild\n\nThis repo contains the code associated with the paper Learning Agile Flight in the Wild.\nFor more information, please check the [project webpage](http:\u002F\u002Frpg.ifi.uzh.ch\u002FAgileAutonomy.html).\n\n![Cover](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fuzh-rpg_agile_autonomy_readme_8b922384e020.gif)\n\n#### Paper, Video, and Datasets\n\nIf you use this code in an academic context, please cite the following publication:\n\nPaper: [Learning High-Speed Flight in the Wild](http:\u002F\u002Frpg.ifi.uzh.ch\u002Fdocs\u002FLoquercio21_Science.pdf)\n\nVideo (Narrated): [YouTube](https:\u002F\u002Fyoutu.be\u002Fm89bNn6RFoQ)\n\nDatasets: [Zenodo](https:\u002F\u002Fzenodo.org\u002Frecord\u002F5517791#.YV2zkGNfhhE)\n\nScience Paper: [DOI](https:\u002F\u002Fwww.science.org\u002Fdoi\u002F10.1126\u002Fscirobotics.abg5810)\n\n```\n@inproceedings{Loquercio2021Science,\n  title={Learning High-Speed Flight in the Wild},\n    author={Loquercio, Antonio and Kaufmann, Elia and Ranftl, Ren{\\'e} and M{\\\"u}ller, Matthias and Koltun, Vladlen and Scaramuzza, Davide},\n      booktitle={Science Robotics}, \n      year={2021}, \n      month={October}, \n} \n```\n\n## Installation\n\n### Requirements\n\nThe code was tested with Ubuntu 20.04, ROS Noetic, Anaconda v4.8.3., and `gcc\u002Fg++` 7.5.0.\nDifferent OS and ROS versions are possible but not supported.\n\nBefore you start, make sure that your compiler versions match `gcc\u002Fg++` 7.5.0. To do so, use the following commands:\n\n```\nsudo update-alternatives --install \u002Fusr\u002Fbin\u002Fg++ g++ \u002Fusr\u002Fbin\u002Fg++-7 100\nsudo update-alternatives --install \u002Fusr\u002Fbin\u002Fgcc gcc \u002Fusr\u002Fbin\u002Fgcc-7 100\n```\n\n\n### Step-by-Step Procedure\n\nUse the following commands to create a new catkin workspace and a virtual environment with all the required dependencies.\n\n```bash\nexport ROS_VERSION=noetic\nmkdir agile_autonomy_ws\ncd agile_autonomy_ws\nexport CATKIN_WS=.\u002Fcatkin_aa\nmkdir -p $CATKIN_WS\u002Fsrc\ncd $CATKIN_WS\ncatkin init\ncatkin config --extend \u002Fopt\u002Fros\u002F$ROS_VERSION\ncatkin config --merge-devel\ncatkin config --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-fdiagnostics-color\ncd src\n\ngit clone git@github.com:uzh-rpg\u002Fagile_autonomy.git\nvcs-import \u003C agile_autonomy\u002Fdependencies.yaml\ncd rpg_mpl_ros\ngit submodule update --init --recursive\n\n#install extra dependencies (might need more depending on your OS)\nsudo apt-get install libqglviewer-dev-qt5\n\n# Install external libraries for rpg_flightmare\nsudo apt install -y libzmqpp-dev libeigen3-dev libglfw3-dev libglm-dev\n\n# Install dependencies for rpg_flightmare renderer\nsudo apt install -y libvulkan1 vulkan-utils gdb\n\n# Add environment variables (Careful! Modify path according to your local setup)\necho 'export RPGQ_PARAM_DIR=\u002Fhome\u002F\u003Cpath\u002Fto\u002F>catkin_aa\u002Fsrc\u002Frpg_flightmare' >> ~\u002F.bashrc\n```\n\nNow open a new terminal and type the following commands.\n\n```bash\n# Build and re-source the workspace\ncatkin build\n. ..\u002Fdevel\u002Fsetup.bash\n\n# Create your learning environment\nroscd planner_learning\nconda create --name tf_24 python=3.7\nconda activate tf_24\npip install tensorflow-gpu==2.4\npip install rospkg==1.2.3 pyquaternion open3d opencv-python\n```\n\nNow download the flightmare standalone available at [this link](https:\u002F\u002Fzenodo.org\u002Frecord\u002F5517791\u002Ffiles\u002Fstandalone.tar?download=1), extract it and put in the [flightrender](https:\u002F\u002Fgithub.com\u002Fantonilo\u002Fflightmare_agile_autonomy\u002Ftree\u002Fmain\u002Fflightrender) folder.\n\n\n## Let's Fly!\n\nOnce you have installed the dependencies, you will be able to fly in simulation with our pre-trained checkpoint. You don't need necessarily need a GPU for execution. Note that if the network can't run at least at 15Hz, you won't be able to fly successfully.\n\nLaunch the simulation! Open a terminal and type:\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nroslaunch agile_autonomy simulation.launch\n```\n\nRun the Network in an other terminal:\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nconda activate tf_24\npython test_trajectories.py --settings_file=config\u002Ftest_settings.yaml\n\n```\n\n\n## Change execution speed or environment\n\nYou can change the average speed at which the policy will fly as well as the environment type by changing the following files.\n\nEnvironment Change: \n```\nrosed agile_autonomy flightmare.yaml\n```\nSet either the `spawn_trees` or `spawn_objects` to true. Doing both at the same time is possible but would make the environment too dense for navigation. Also adapt the `spacings` parameter in [test\\_settings.yaml](planner_learning\u002Fconfig\u002Ftest_settings.yaml) to the environment. \n\nSpeed Change:\n```\nrosed agile_autonomy default.yaml\n```\nEdit the `test_time_velocity` and `maneuver_velocity` to the required speed. Note that the ckpt we provide will work for all speeds in the range `[1,10] m\u002Fs`. However, to reach the best performance at a specific speed, please consider finetuning the ckpt at the desired speed (see code below). \n\n\n\n## Train your own navigation policy\n\nThere are two ways in which you can train your own policy. One easy and one more involved.\nThe trained checkpoint can then be used to control a physical platform (if you have one!).\n\n### Use pre-collected dataset\n\nThe first method, requiring the least effort, is to use a dataset that we pre-collected. The dataset can be found at [this link](https:\u002F\u002Fzenodo.org\u002Frecord\u002F5517791\u002Ffiles\u002Fagile_autonomy_dataset.tar.xz?download=1). This dataset was used to train the model we provide and collected at an average speed of 7 m\u002Fs. To do this, adapt the file [train\\_settings.yaml](planner_learning\u002Fconfig\u002Ftrain_settings.yaml) to point to the train and test folder and run:\n\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nconda activate tf_24\npython train.py --settings_file=config\u002Ftrain_settings.yaml\n```\nFeel free to ablate the impact of each parameter!\n\n### Collect your own dataset\n\nYou can use the following commands to generate data in simulation and train your model on it. Note that training a policy from scratch could require a lot of data, and depending on the speed of your machine this could take several days. Therefore, we always recommend finetuning the provided checkpoint to your use case. As a general rule of thumb, you need a dataset with comparable size to ours to train a policy from scratch, but only 1\u002F10th of it to finetune.\n\n\n### Generate data\n\nTo train or finetune a policy, use the following commands:\nLaunch the simulation in one terminal\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nroslaunch agile_autonomy simulation.launch\n```\n\nLaunch data collection (with dagger) in an other terminal\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nconda activate tf_24\npython dagger_training.py --settings_file=config\u002Fdagger_settings.yaml\n```\n\nIt is possible to change parameters (number of rollouts, dagger constants, tracking a global trajectory, etc. ) in the file [dagger\\_settings.yaml](planner_learning\u002Fconfig\u002Fdagger_settings.yaml). Keep in mind that if you change the network or input, you will need to adapt the file [test\\_settings.yaml](planner_learning\u002Fconfig\u002Ftest_settings.yaml) for compatibility.\n\n\nWhen training from scratch, follow a pre-computed global trajectory to give consistent labels. To activate this, you need to put to true the flag `perform_global_planning` in [default.yaml](data_generation\u002Fagile_autonomy\u002Fparameters\u002Fdefault.yaml) and [label\\_generation.yaml](data_generation\u002Ftraj_sampler\u002Fparameters\u002Flabel_generation.yaml). Note that this will make the simulation slower (a global plan has to be computed at each iteration). The network will not have access to this global plan, but only to the straight (possibly in collision) reference.\n\n\n### Visualize the Data\n\nYou can visualize the generated trajectories in open3d using the [visualize\\_trajectories.py](data_generation\u002Fviz_utils\u002Fvisualize_trajectories.py) script.\n\n```\npython visualize_trajectories.py --data_dir \u002FPATH\u002FTO\u002Frollout_21-09-21-xxxx --start_idx 0 --time_steps 100 --pc_cutoff_z 2.0 --max_traj_to_plot 100\n```\nThe result should more or less look as the following:\n\n![Labels](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fuzh-rpg_agile_autonomy_readme_eab62819d3fc.png)\n\n\n### Test the Network\n\nTo test the network you trained, adapt the [test\\_settings.yaml](planner_learning\u002Fconfig\u002Ftest_settings.yaml) with the new checkpoint path. You might consider putting back the flag `perform_global_planning` in [default.yaml](data_generation\u002Fagile_autonomy\u002Fparameters\u002Fdefault.yaml) to false to make the simulation faster. Then follow the instructions in the above section (Let's Fly!) to test.\n\n\n## Ackowledgements\n\nWe would like to thank Yunlong Song and Selim Naji for their help with the implementations of the simulation environment. The code for global planning is strongly inspired by the one of [Search-based Motion Planning for Aggressive Flight in SE(3)](https:\u002F\u002Fgithub.com\u002Fsikang\u002Fmpl_ros).\n","# 在野外学习高速飞行\n\n此仓库包含与论文《在野外学习敏捷飞行》相关的代码。更多信息请访问[项目网页](http:\u002F\u002Frpg.ifi.uzh.ch\u002FAgileAutonomy.html)。\n\n![封面](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fuzh-rpg_agile_autonomy_readme_8b922384e020.gif)\n\n#### 论文、视频和数据集\n\n如果您在学术环境中使用此代码，请引用以下出版物：\n\n论文：[在野外学习高速飞行](http:\u002F\u002Frpg.ifi.uzh.ch\u002Fdocs\u002FLoquercio21_Science.pdf)\n\n视频（带解说）：[YouTube](https:\u002F\u002Fyoutu.be\u002Fm89bNn6RFoQ)\n\n数据集：[Zenodo](https:\u002F\u002Fzenodo.org\u002Frecord\u002F5517791#.YV2zkGNfhhE)\n\nScience期刊论文：[DOI](https:\u002F\u002Fwww.science.org\u002Fdoi\u002F10.1126\u002Fscirobotics.abg5810)\n\n```\n@inproceedings{Loquercio2021Science,\n  title={在野外学习高速飞行},\n    author={洛奎尔西奥，安东尼奥；考夫曼，埃利亚；兰夫特尔，勒内；穆勒，马蒂亚斯；科尔图恩，弗拉德伦；斯卡拉穆扎，达维德},\n      booktitle={Science Robotics}, \n      year={2021}, \n      month={十月}, \n} \n```\n\n## 安装\n\n### 要求\n\n该代码已在Ubuntu 20.04、ROS Noetic、Anaconda v4.8.3以及`gcc\u002Fg++` 7.5.0环境下测试通过。其他操作系统和ROS版本虽然可能适用，但不在支持范围内。\n\n在开始之前，请确保您的编译器版本与`gcc\u002Fg++` 7.5.0一致。为此，请执行以下命令：\n\n```\nsudo update-alternatives --install \u002Fusr\u002Fbin\u002Fg++ g++ \u002Fusr\u002Fbin\u002Fg++-7 100\nsudo update-alternatives --install \u002Fusr\u002Fbin\u002Fgcc gcc \u002Fusr\u002Fbin\u002Fgcc-7 100\n```\n\n\n### 分步操作流程\n\n使用以下命令创建一个新的catkin工作空间和包含所有必要依赖项的虚拟环境。\n\n```bash\nexport ROS_VERSION=noetic\nmkdir agile_autonomy_ws\ncd agile_autonomy_ws\nexport CATKIN_WS=.\u002Fcatkin_aa\nmkdir -p $CATKIN_WS\u002Fsrc\ncd $CATKIN_WS\ncatkin init\ncatkin config --extend \u002Fopt\u002Fros\u002F$ROS_VERSION\ncatkin config --merge-devel\ncatkin config --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-fdiagnostics-color\ncd src\n\ngit clone git@github.com:uzh-rpg\u002Fagile_autonomy.git\nvcs-import \u003C agile_autonomy\u002Fdependencies.yaml\ncd rpg_mpl_ros\ngit submodule update --init --recursive\n\n#安装额外依赖（根据您的操作系统可能需要更多）\nsudo apt-get install libqglviewer-dev-qt5\n\n# 为rpg_flightmare安装外部库\nsudo apt install -y libzmqpp-dev libeigen3-dev libglfw3-dev libglm-dev\n\n# 为rpg_flightmare渲染器安装依赖\nsudo apt install -y libvulkan1 vulkan-utils gdb\n\n# 添加环境变量（小心！请根据您的本地设置修改路径）\necho 'export RPGQ_PARAM_DIR=\u002Fhome\u002F\u003Cpath\u002Fto\u002F>catkin_aa\u002Fsrc\u002Frpg_flightmare' >> ~\u002F.bashrc\n```\n\n现在打开一个新的终端并输入以下命令。\n\n```bash\n# 构建并重新加载工作空间\ncatkin build\n. ..\u002Fdevel\u002Fsetup.bash\n\n# 创建您的学习环境\nroscd planner_learning\nconda create --name tf_24 python=3.7\nconda activate tf_24\npip install tensorflow-gpu==2.4\npip install rospkg==1.2.3 pyquaternion open3d opencv-python\n```\n\n现在下载可在[此链接](https:\u002F\u002Fzenodo.org\u002Frecord\u002F5517791\u002Ffiles\u002Fstandalone.tar?download=1)找到的flightmare独立版本，解压后放入[flightrender](https:\u002F\u002Fgithub.com\u002Fantonilo\u002Fflightmare_agile_autonomy\u002Ftree\u002Fmain\u002Fflightrender)文件夹中。\n\n\n## 让我们起飞吧！\n\n安装完依赖后，您将能够使用我们预训练的检查点在仿真环境中飞行。执行时并不一定需要GPU。请注意，如果网络无法以至少15Hz的频率运行，您将无法成功飞行。\n\n启动仿真！打开一个终端并输入：\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nroslaunch agile_autonomy simulation.launch\n```\n\n在另一个终端中运行网络：\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nconda activate tf_24\npython test_trajectories.py --settings_file=config\u002Ftest_settings.yaml\n\n```\n\n\n## 更改执行速度或环境\n\n您可以通过更改以下文件来调整策略的平均飞行速度以及环境类型。\n\n环境更改：\n```\nrosed agile_autonomy flightmare.yaml\n```\n将`spawn_trees`或`spawn_objects`设置为true即可。同时启用两者也是可行的，但会使环境过于密集而难以导航。此外，请根据环境调整[test_settings.yaml](planner_learning\u002Fconfig\u002Ftest_settings.yaml)中的`spacings`参数。\n\n速度更改：\n```\nrosed agile_autonomy default.yaml\n```\n编辑`test_time_velocity`和`maneuver_velocity`以达到所需的速度。请注意，我们提供的检查点适用于[1,10] m\u002Fs范围内的所有速度。然而，若要在特定速度下获得最佳性能，建议在该速度下对检查点进行微调（见下方代码）。\n\n\n\n## 训练您自己的导航策略\n\n有两种方法可以训练您自己的策略：一种较为简单，另一种则更为复杂。\n训练好的检查点随后可用于控制实际平台（如果您有的话）。\n\n### 使用预先收集的数据集\n\n第一种方法最为简便，即使用我们预先收集的数据集。该数据集可在[此链接](https:\u002F\u002Fzenodo.org\u002Frecord\u002F5517791\u002Ffiles\u002Fagile_autonomy_dataset.tar.xz?download=1)找到。此数据集用于训练我们提供的模型，采集时的平均速度为7 m\u002Fs。为此，请将[train_settings.yaml](planner_learning\u002Fconfig\u002Ftrain_settings.yaml)文件指向训练和测试文件夹，并运行：\n\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nconda activate tf_24\npython train.py --settings_file=config\u002Ftrain_settings.yaml\n```\n您可以自由地分析每个参数的影响！\n\n### 收集您自己的数据集\n\n您可使用以下命令在仿真环境中生成数据，并以此训练您的模型。请注意，从零开始训练策略可能需要大量数据，且根据您的机器性能，这可能需要数天时间。因此，我们始终建议您根据自身需求对提供的检查点进行微调。一般来说，从零开始训练策略需要与我们相当规模的数据集，而微调则只需十分之一的数据量。\n\n### 生成数据\n\n要训练或微调策略，请使用以下命令：\n\n在第一个终端中启动仿真：\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nroslaunch agile_autonomy simulation.launch\n```\n\n在另一个终端中启动数据收集（使用 DAgger 算法）：\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nconda activate tf_24\npython dagger_training.py --settings_file=config\u002Fdagger_settings.yaml\n```\n\n可以在文件 [dagger_settings.yaml](planner_learning\u002Fconfig\u002Fdagger_settings.yaml) 中更改参数（例如回放缓次数、DAgger 算法的常数、是否跟踪全局轨迹等）。请注意，如果更改了网络或输入，还需要相应地调整文件 [test_settings.yaml](planner_learning\u002Fconfig\u002Ftest_settings.yaml)，以确保兼容性。\n\n从零开始训练时，建议遵循预先计算好的全局轨迹，以便提供一致的标签。要启用此功能，需要将 [default.yaml](data_generation\u002Fagile_autonomy\u002Fparameters\u002Fdefault.yaml) 和 [label_generation.yaml](data_generation\u002Ftraj_sampler\u002Fparameters\u002Flabel_generation.yaml) 中的 `perform_global_planning` 标志设置为 `true`。需要注意的是，这样做会降低仿真速度（因为每次迭代都需要重新计算全局规划）。网络将无法访问该全局规划路径，而只能看到直线参考轨迹（可能与障碍物发生碰撞）。\n\n### 可视化数据\n\n可以使用 open3d 和脚本 [visualize_trajectories.py](data_generation\u002Fviz_utils\u002Fvisualize_trajectories.py) 来可视化生成的轨迹。\n```bash\npython visualize_trajectories.py --data_dir \u002FPATH\u002FTO\u002Frollout_21-09-21-xxxx --start_idx 0 --time_steps 100 --pc_cutoff_z 2.0 --max_traj_to_plot 100\n```\n结果大致如下所示：\n\n![Labels](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fuzh-rpg_agile_autonomy_readme_eab62819d3fc.png)\n\n### 测试网络\n\n要测试您训练的网络，请在 [test_settings.yaml](planner_learning\u002Fconfig\u002Ftest_settings.yaml) 中更新新的检查点路径。为了加快仿真速度，您可以考虑将 [default.yaml](data_generation\u002Fagile_autonomy\u002Fparameters\u002Fdefault.yaml) 中的 `perform_global_planning` 标志重新设置为 `false`。然后按照上文“让我们起飞！”部分的说明进行测试。\n\n## 致谢\n\n我们感谢 Yunlong Song 和 Selim Naji 在仿真环境实现方面提供的帮助。全局规划的代码深受 [基于搜索的 SE(3) 中激进飞行运动规划](https:\u002F\u002Fgithub.com\u002Fsikang\u002Fmpl_ros) 的启发。","# Agile Autonomy 快速上手指南\n\n本指南旨在帮助开发者快速部署并运行 **agile_autonomy**，这是一个用于在复杂野外环境中学习高速飞行的开源项目。\n\n## 1. 环境准备\n\n在开始之前，请确保您的系统满足以下要求。本项目主要在 **Ubuntu 20.04** 上测试通过。\n\n### 系统要求\n*   **操作系统**: Ubuntu 20.04 (其他版本可能兼容但不受官方支持)\n*   **ROS 版本**: ROS Noetic\n*   **编译器**: `gcc` \u002F `g++` 7.5.0\n*   **Python 环境**: Anaconda v4.8.3+ (推荐创建独立虚拟环境)\n*   **硬件**: 执行推理非必须 GPU，但训练或高帧率运行建议配备 NVIDIA GPU。网络运行频率需至少达到 15Hz。\n\n### 前置依赖安装\n首先，将编译器版本切换至 7.5.0：\n\n```bash\nsudo update-alternatives --install \u002Fusr\u002Fbin\u002Fg++ g++ \u002Fusr\u002Fbin\u002Fg++-7 100\nsudo update-alternatives --install \u002Fusr\u002Fbin\u002Fgcc gcc \u002Fusr\u002Fbin\u002Fgcc-7 100\n```\n\n安装必要的系统库（包含图形渲染和数学库依赖）：\n\n```bash\nsudo apt-get update\nsudo apt-get install libqglviewer-dev-qt5 libzmqpp-dev libeigen3-dev libglfw3-dev libglm-dev libvulkan1 vulkan-utils gdb\n```\n\n> **提示**: 国内用户可使用清华或阿里镜像源加速 `apt` 下载。\n\n## 2. 安装步骤\n\n以下步骤将创建工作空间、克隆代码并配置 Python 深度学习环境。\n\n### 第一步：构建 ROS 工作空间\n\n```bash\nexport ROS_VERSION=noetic\nmkdir agile_autonomy_ws\ncd agile_autonomy_ws\nexport CATKIN_WS=.\u002Fcatkin_aa\nmkdir -p $CATKIN_WS\u002Fsrc\ncd $CATKIN_WS\ncatkin init\ncatkin config --extend \u002Fopt\u002Fros\u002F$ROS_VERSION\ncatkin config --merge-devel\ncatkin config --cmake-args -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS=-fdiagnostics-color\ncd src\n\n# 克隆主仓库\ngit clone git@github.com:uzh-rpg\u002Fagile_autonomy.git\n\n# 导入子模块依赖\nvcs-import \u003C agile_autonomy\u002Fdependencies.yaml\n\n# 初始化 rpg_mpl_ros 子模块\ncd rpg_mpl_ros\ngit submodule update --init --recursive\n\n# 返回工作空间根目录并编译\ncd ..\u002F..\u002F\ncatkin build\nsource devel\u002Fsetup.bash\n```\n\n### 第二步：配置环境变量\n请根据您的实际路径修改下面的 `\u003Cpath\u002Fto\u002F>` 部分，并将其添加到 `~\u002F.bashrc`：\n\n```bash\necho 'export RPGQ_PARAM_DIR=\u002Fhome\u002F\u003Cpath\u002Fto\u002F>catkin_aa\u002Fsrc\u002Frpg_flightmare' >> ~\u002F.bashrc\nsource ~\u002F.bashrc\n```\n\n### 第三步：配置 Python 深度学习环境\n\n进入规划学习包目录并创建 Conda 环境：\n\n```bash\nroscd planner_learning\nconda create --name tf_24 python=3.7\nconda activate tf_24\n\n# 安装 TensorFlow 及相关依赖\n# 国内用户建议使用清华镜像源加速 pip 安装\npip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple tensorflow-gpu==2.4\npip install -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple rospkg==1.2.3 pyquaternion open3d opencv-python\n```\n\n### 第四步：获取仿真资源\n下载 Flightmare 独立渲染器数据包（约几 GB），解压后放入指定文件夹。\n*   **下载地址**: [Zenodo Standalone](https:\u002F\u002Fzenodo.org\u002Frecord\u002F5517791\u002Ffiles\u002Fstandalone.tar?download=1)\n*   **放置路径**: 将解压后的内容放入 `flightrender` 文件夹中（位于 `rpg_flightmare` 目录下）。\n\n## 3. 基本使用\n\n完成安装后，您可以加载预训练模型在仿真环境中进行高速飞行测试。\n\n### 启动仿真环境\n打开终端 A，启动仿真器：\n\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nroslaunch agile_autonomy simulation.launch\n```\n\n### 运行神经网络策略\n打开终端 B，激活环境并运行测试脚本：\n\n```bash\ncd agile_autonomy_ws\nsource catkin_aa\u002Fdevel\u002Fsetup.bash\nconda activate tf_24\npython test_trajectories.py --settings_file=config\u002Ftest_settings.yaml\n```\n\n如果配置正确，您将看到无人机在仿真环境中自主避障并高速飞行。\n\n### 调整飞行参数（可选）\n*   **更改环境**: 编辑 `flightmare.yaml` (`rosed agile_autonomy flightmare.yaml`)，设置 `spawn_trees` 或 `spawn_objects` 为 `true` 以生成树木或障碍物。\n*   **更改速度**: 编辑 `default.yaml` (`rosed agile_autonomy default.yaml`)，修改 `test_time_velocity` 和 `maneuver_velocity`。预训练模型支持 1-10 m\u002Fs 的速度范围。","某无人机研发团队需要在复杂森林环境中测试高速自主飞行算法，但缺乏真实野外试飞的安全条件与数据支撑。\n\n### 没有 agile_autonomy 时\n- 团队只能依赖传统几何规划器，无人机在遇到突发障碍物（如树枝）时反应迟钝，极易发生碰撞。\n- 高速飞行策略完全依靠人工手写规则调整，难以兼顾速度与稳定性，调试周期长达数周。\n- 缺乏高保真仿真环境，无法在安全条件下复现“野外”复杂光照和动态障碍场景，实机试飞风险极高。\n- 训练数据匮乏，神经网络模型无法从真实世界的混乱场景中学习到有效的避障特征。\n\n### 使用 agile_autonomy 后\n- 利用论文预训练的感知 - 控制端到端模型，无人机能像专家飞行员一样在密集树林中以高速灵活穿梭。\n- 通过强化学习自动优化飞行策略，无需人工编写繁琐规则，系统自适应能力显著提升，部署时间缩短至几天。\n- 集成 Flightmare 高保真仿真器，团队可在虚拟环境中安全地模拟各种极端野外工况，零风险验证算法鲁棒性。\n- 直接复用官方开源的大规模野外飞行数据集，快速完成模型迁移学习，大幅降低了数据采集门槛。\n\nagile_autonomy 通过将前沿学术研究转化为可执行的仿真与代码框架，让高风险的野外高速飞行算法研发变得安全、高效且可复现。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fuzh-rpg_agile_autonomy_8b922384.gif","uzh-rpg","Robotics and Perception Group","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fuzh-rpg_7e9d9a3d.png","",null,"rpg.ifi.uzh.ch","https:\u002F\u002Fgithub.com\u002Fuzh-rpg",[84,88,92,96,100],{"name":85,"color":86,"percentage":87},"C++","#f34b7d",63.9,{"name":89,"color":90,"percentage":91},"Python","#3572A5",29.1,{"name":93,"color":94,"percentage":95},"Cuda","#3A4E3A",5.8,{"name":97,"color":98,"percentage":99},"CMake","#DA3434",1.1,{"name":101,"color":102,"percentage":103},"Shell","#89e051",0,771,186,"2026-04-10T06:43:43","GPL-3.0",5,"Linux (Ubuntu 20.04)","执行非必需，但训练推荐 NVIDIA GPU (需安装 tensorflow-gpu==2.4)","未说明",{"notes":113,"python":114,"dependencies":115},"1. 官方仅测试并支持 Ubuntu 20.04 和 ROS Noetic，其他版本不保证兼容。2. 必须将编译器版本设置为 gcc\u002Fg++ 7.5.0。3. 网络推理频率需至少达到 15Hz 才能成功飞行。4. 需要手动下载并配置 Flightmare 渲染器及数据集。5. 建议使用 Catkin 构建系统和管理 ROS 工作空间。","3.7",[116,117,118,119,120,121,122,123,124,125],"ROS Noetic","tensorflow-gpu==2.4","rospkg==1.2.3","pyquaternion","open3d","opencv-python","gcc\u002Fg++ 7.5.0","libqglviewer-dev-qt5","libzmqpp-dev","libeigen3-dev",[18],"2026-03-27T02:49:30.150509","2026-04-11T17:40:53.166601",[130,135,140,145,150,154],{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},29686,"运行测试或训练脚本时，提示找不到数据目录（'data' directory）或深度图像文件不存在，如何解决？","这是因为代码中包含清除专家数据目录的 `rm` 命令（旨在避免某些 bug）。由 `dagger_training` 生成的数据最初位于 'data' 目录下，但随后会被 `mv` 命令移动到 `planner_learning` 下的 data 目录中。请检查 `planner_learning` 目录而非根目录下的 'data' 文件夹。","https:\u002F\u002Fgithub.com\u002Fuzh-rpg\u002Fagile_autonomy\u002Fissues\u002F27",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},29687,"运行仿真启动命令 `roslaunch agile_autonomy simulation.launch` 时，终端一直打印 \"Ready ? : 0\" 且无法连接 Unity，怎么办？","这通常是因为缺少 Unity 的可执行文件。你需要下载对应的 Unity 构建版本（standalone build），并将其放置在 `~\u002Fagile_autonomy_ws\u002Fcatkin_aa\u002Fsrc\u002Frpg_flightmare\u002Fflightrender` 文件夹中。教程中可能未明确提及此步骤，但这是建立连接的必要条件。","https:\u002F\u002Fgithub.com\u002Fuzh-rpg\u002Fagile_autonomy\u002Fissues\u002F46",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},29688,"在使用 RTX 3080 Ti、RTX 3090 等较新显卡时，报错 \"no kernel image is available for execution on the device\" 或 \"Unsupported gpu architecture 'compute_86'\"，如何修复？","这是因为默认的 CMake 配置未包含新显卡的计算能力架构。你需要修改项目中的 `CMakeLists.txt` 文件，在 `CUDA_NVCC_FLAGS` 中添加对 `compute_86` 的支持。具体配置如下：\n`-gencode=arch=compute_86,code=sm_86`\n确保 CUDA 版本兼容（如 CUDA 11.2+），修改后重新编译项目。如果仍有警告但编译成功，通常可以忽略。","https:\u002F\u002Fgithub.com\u002Fuzh-rpg\u002Fagile_autonomy\u002Fissues\u002F47",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},29689,"遇到 CUDA 内核错误时，具体的 `CMakeLists.txt` 修改内容是什么？","需要在 `CMakeLists.txt` 中找到设置 `CUDA_NVCC_FLAGS` 的部分，并显式添加目标显卡的架构代码。对于 RTX 30 系列显卡，完整的推荐配置片段如下：\n```\nset(CUDA_NVCC_FLAGS\n    ${CUDA_NVCC_FLAGS};\n    -O3\n    -gencode=arch=compute_52,code=sm_52\n    -gencode=arch=compute_61,code=sm_61\n    -gencode=arch=compute_62,code=sm_62\n    -gencode=arch=compute_75,code=sm_75\n    -gencode=arch=compute_86,code=sm_86\n)\n```\n添加后清理构建缓存并重新编译。","https:\u002F\u002Fgithub.com\u002Fuzh-rpg\u002Fagile_autonomy\u002Fissues\u002F18",{"id":151,"question_zh":152,"answer_zh":153,"source_url":144},29690,"仿真启动后 Unity 窗口已渲染但视角固定，且控制台持续等待连接，下一步该做什么？","首先确认是否已按照要求将 Unity standalone 可执行文件放入正确的 `flightrender` 目录。如果文件存在但仍显示 \"Ready ? : 0\"，尝试重启计算机以重置 CUDA 驱动状态或清理残留进程。一旦连接成功，控制台会显示 \"Unity is ready!\"，此时仿真环境即可正常交互。",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},29691,"在 Docker (Ubuntu 20.04) 环境中构建项目时，`traj_sampler` 包中的 `generate_labels` 节点链接失败，可能的原因是什么？","虽然该 Issue 主要报告了链接错误，但结合其他常见问题，这通常是由于依赖库路径未正确设置或 CUDA 架构不匹配导致的。建议在 Docker 构建前，确保已按照上述方法修改 `CMakeLists.txt` 以支持当前 GPU 架构，并检查 `catkin build` 时的环境变量是否正确加载了 CUDA 路径。若问题依旧，尝试在容器内手动运行 cmake 并查看详细链接器报错信息。","https:\u002F\u002Fgithub.com\u002Fuzh-rpg\u002Fagile_autonomy\u002Fissues\u002F12",[]]