{"id":19526606,"url":"https://github.com/zju-fast-lab/fact-coordinate-initialization","last_synced_at":"2025-04-26T10:31:20.154Z","repository":{"id":228786978,"uuid":"766137139","full_name":"ZJU-FAST-Lab/FACT-Coordinate-Initialization","owner":"ZJU-FAST-Lab","description":"Open source code for paper FACT: Fast and Active Coordinate Initialization for Vision-based Drone Swarm","archived":false,"fork":false,"pushed_at":"2024-12-25T05:32:06.000Z","size":1371,"stargazers_count":19,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-04T11:37:16.838Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZJU-FAST-Lab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-02T12:49:07.000Z","updated_at":"2025-02-20T06:43:52.000Z","dependencies_parsed_at":"2024-03-20T13:41:03.910Z","dependency_job_id":"d9195b32-dd5f-40e8-a875-31c88ed1904e","html_url":"https://github.com/ZJU-FAST-Lab/FACT-Coordinate-Initialization","commit_stats":null,"previous_names":["zju-fast-lab/fact-coordinate-initialization"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FFACT-Coordinate-Initialization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FFACT-Coordinate-Initialization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FFACT-Coordinate-Initialization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZJU-FAST-Lab%2FFACT-Coordinate-Initialization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZJU-FAST-Lab","download_url":"https://codeload.github.com/ZJU-FAST-Lab/FACT-Coordinate-Initialization/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250972784,"owners_count":21516426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-11T01:10:54.267Z","updated_at":"2025-04-26T10:31:20.145Z","avatar_url":"https://github.com/ZJU-FAST-Lab.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# FACT-Fast-and-Active-Coordinate-Initialization\nOpen source code for our paper FACT: Fast and Active Coordinate Initialization for Vision-based Drone Swarm.\n\n**2024/12 Our paper has been accepted by RAL!!!**\n\n[IEEE Xplore](https://ieeexplore.ieee.org/abstract/document/10803028) | [Preprint on arxiv](https://arxiv.org/abs/2403.13455)\n![image](https://github.com/user-attachments/assets/e203391c-b6ac-434f-9231-0f6a0f44bee2)\n![image](https://github.com/user-attachments/assets/51964882-5fae-4d8b-957a-9272f8109d2a)\n\n## Introduction\nThis repository contains the code for our paper FACT: Fast and Active Coordinate Initialization for Vision-based Drone Swarm. We provide the code for the simulation. The code base is still under development for easier deployment and use. We will keep updating the code base and provide more detailed instructions.\n\nThe simulation and trajectory planning part of the code is based on our previous work [Ego-Planner](https://github.com/ZJU-FAST-Lab/EGO-Planner-v2).\n\nIf you use our code in your own research, please cite as\n```BibTex\n@ARTICLE{10803028,\n  author={Li, Yuan and Zhao, Anke and Wang, Yingjian and Xu, Ziyi and Zhou, Xin and Xu, Chao and Zhou, Jinni and Gao, Fei},\n  journal={IEEE Robotics and Automation Letters}, \n  title={FACT: Fast and Active Coordinate Initialization for Vision-Based Drone Swarms}, \n  year={2025},\n  volume={10},\n  number={2},\n  pages={931-938},\n  keywords={Robots;Robot kinematics;Drones;Estimation;Pose estimation;Planning;Collision avoidance;Optimization;Sensors;Global navigation satellite system;Aerial systems;perception and autonomy;swarm robotics;vision-based navigation},\n  doi={10.1109/LRA.2024.3518101}}\n```\n\n## Prerequisites\nWe developed the code with Ubuntu 20.04 and ROS Noetic. It might work with older distributions, but we recommend using Ubuntu 20.04 and ROS Noetic for simplicity. We recommend using computers with NVIDIA GPUs with CUDA installed. The code has been tested on two laptops with NVIDIA GTX 1660 Ti-MaxQ and RTX 3070.\n\n### Mosek\nWe use Mosek v10.1 to solve the optimization problem. You can get a free academic license from [Mosek](https://www.mosek.com/products/academic-licenses/). More information on [license](https://docs.mosek.com/latest/licensing/index.html).\n\nAfter you get the license, download Mosek v10.1 from [here](https://www.mosek.com/downloads/list/10/)(v10.1.22 and v10.1.23 have been tested) and extract the 'mosek' folder to your home directory. Then put the 'mosek.lic' file in the 'mosek' folder. To install Mosek, open a terminal and navigate to the 'mosek' folder and run the following command:\n```bash\ncd 10.1/tools/platform/linux64x86/src/fusion_cxx/ # the command may vary depending on the version and your platform\nmake install -j\n```\nDetailed instructions of installing Mosek can be found here [here](https://docs.mosek.com/latest/install/installation.html).\n\n### ROS\nWe use ROS Noetic for the simulation. You can install ROS Noetic by following the instructions [here](http://wiki.ros.org/noetic/Installation/Ubuntu). We recommend installing the full-desktop version.\n\n## Installation\nClone the repository to your workspace and build the code with catkin_make:\n```bash\ngit clone https://github.com/ZJU-FAST-Lab/FACT-Coordinate-Initialization.git\ncd FACT-Coordinate-Initialization\ncatkin_make -DMOSEK_DIR=$YOUR_HOME_DIR/mosek/10.1/tools/platform/linux64x86 # same directory as the one you installed Mosek\n```\nMost of the possible missing dependencies can be installed with apt-get. If you encounter any problems, please feel free to open an issue or contact us.\n\n## Usage\nWe provide a launch file to run the simulation. You can run the simulation with the following command:\n```bash\nsource $YOUR_WORKSPACE/devel/setup.bash\nroslaunch ego_planner swarmtakeoff.launch\n```\nBy default, the simulation will run with 6 drones using the SDP optimization method. If you want to test local optimization methods mentioned in the paper, you can change the launch instruction to:\n```bash\nroslaunch ego_planner swarmtakeoff.launch solver_type:=LM\n```\nfor Levenberg-Marquardt method, or\n```bash\nroslaunch ego_planner swarmtakeoff.launch solver_type:=GaussNewton\n```\nfor Gauss-Newton method.\n\nThe terminal will print the published goal positions and the calculated observations for all drones at each iteration. If enough observations are received, the terminal will print the solved relative rotations. The simulation will stop when all relative poses are solved.\n\nBy default, the results will be saved to the 'results' folder in the workspace directory. To evaluate the results, you can run the script 'process_data.py' in the 'results' folder:\n```bash\ncd $YOUR_WORKSPACE/results\npython3 process_data.py\n```\nThe script will print the MAE of relative rotations and the time used for each method.\n\nIf you want to visualize the simulation, you can run the following command in another terminal before or after running the simulation command above:\n```bash\nsource $YOUR_WORKSPACE/devel/setup.bash\nroslaunch ego_planner rviz.launch\n```\n\n## Known Issues\nCertain situations may cause the planning or renderer to fail, printing huge amounts of error messages.\n\n## Contact Us\nFeel free to open an issue if you have any questions or suggestions. If you prefer to contact us directly, you can send an email to Anke Zhao at 1203302828@qq.com for deployment problems, or Yuan Li at yuanli_cse@zju.edu.cn for algorithm problems.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Ffact-coordinate-initialization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzju-fast-lab%2Ffact-coordinate-initialization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzju-fast-lab%2Ffact-coordinate-initialization/lists"}