Skip to content

souravsanyal06/ASMA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ASMA

🧠 ASMA: Adaptive Safety Margin Algorithm for Vision-Language Drone Navigation

ASMA is a modular framework for instruction-following drone navigation that integrates vision-language perception with real-time safety through scene-aware control barrier functions (CBFs). It enables collision-aware navigation guided by natural language prompts in complex environments.

🎥 Demo Visualizations

Instruction 1
Go past the first traffic light and go straight past the blue car. After crossing a blue mailbox, turn right at the stop sign, and land in front of the gas station.

Instruction 2
Follow the road. After the crossing, fly through the alley before the blue mailbox. Turn left, pass between buildings, turn left at the oak tree, and if a white truck is visible, land in front of it.

Instruction 3
Head past the second traffic light. If an ambulance is on the left, fly past it and the stop sign. Enter the gazebo and land inside.

Instruction 4
Fly past the first traffic light, then turn right before the gas station. Before the white truck, turn left. At the apartment with stairs, ascend to the third floor and land inside the hallway.

🛠️ Setup Instructions

  1. Clone the repository:

    git clone https://github.com/souravsanyal06/ASMA.git
    cd ASMA
    
  2. Make sure ROS is installed and source the files:

    source /opt/ros/noetic/setup.bash
  3. Build the ROS workspace:

    cd ros_ws
    bash build.sh

    While building, you may have to install packages, for example

    pip install future
  4. Launch the simulation environment:

    bash launch.sh

🎮 Keyboard Controls

Key Description Key Description
T Takeoff Space Bar Land
A Roll (+) D Roll (−)
W Pitch (+) S Pitch (−)
Q Yaw (+) E Yaw (−)
↑ (Arrow Key) Altitude (+) ↓ (Arrow Key) Altitude (−)
← (Arrow Key) Speed (−) → (Arrow Key) Speed (+)
  1. Press T in the keyboard window to start the drone, Press Q or E to rotate the drone so that it faces the pedestrians.

  2. Run the ASMA demo in the city world:

    cd scripts
    python3 asma_city.py

    You will be prompted to enter an instruction number corresponding to a predefined natural language command (e.g., 1, 2, 3, 4).

📁 Download Required Data

Download the following files from Google Drive and extract them into the root ASMA/ directory:

After extracting, your project directory should look like:

ASMA/
├── dataset/
├── pretrained/
├── ros_ws/
├── scripts/
├── build.sh
├── README.md
└── other utility files...

🧾 Citation

If you use this repository in your work, please cite:

@misc{sanyal2025asmaadaptivesafetymargin,
  title={ASMA: An Adaptive Safety Margin Algorithm for Vision-Language Drone Navigation via Scene-Aware Control Barrier Functions}, 
  author={Sourav Sanyal and Kaushik Roy},
  year={2025},
  eprint={2409.10283},
  archivePrefix={arXiv},
  primaryClass={cs.RO},
  url={https://arxiv.org/abs/2409.10283}
}

About

ASMA: An Adaptive Safety Algorithm for Vision-Language Drone Navigation via Scene-Aware Control Barrier Function

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors