Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/iliasprc/dji-uwb-positioning
DJI Matrice 100 navigation
https://github.com/iliasprc/dji-uwb-positioning
dji-sdk drones python robotics ros
Last synced: about 1 month ago
JSON representation
DJI Matrice 100 navigation
- Host: GitHub
- URL: https://github.com/iliasprc/dji-uwb-positioning
- Owner: iliasprc
- Created: 2018-06-14T09:15:04.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-02-27T08:47:53.000Z (almost 5 years ago)
- Last Synced: 2024-11-20T23:38:06.842Z (about 1 month ago)
- Topics: dji-sdk, drones, python, robotics, ros
- Language: C++
- Homepage:
- Size: 2.17 MB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DJI-Matrice-100 autonomous navigation
Implementation of Indoor Navigation of Quadrotors via Ultra-Wideband Wireless Technologyhttps://ieeexplore.ieee.org/abstract/document/8587889
![alt text](https://github.com/IliasPap/DJI-Matrice-100/blob/master/images/drone1.jpg)
## Control of Quadcopter using Ultra Wide Band positioning system from PozyxThe Pozyx Python library (Pypozyx) is required to work with the pozyx indoor positioning system over USB connection.
https://github.com/pozyxLabs/Pozyx-Python-library
The library supports only Python3 while the ROS supports only Python2.
To run with Python3 create a virtual environment to use UWB sensors with the ROS system.
## Virtual environment installation and activation
install virtualenv using pip3 `sudo pip3 install virtualenv`(Optional)
Create folder where we will create the virtual environment
`mkdir environments`
`cd environments`
Create a virtual environment `virtualenv myenv`
Activate the virtual environment `source myenv/bin/activate`
Now we are able to run our Python3 program for the positioning.
## Running the program
At first we launch the core node which tracks publishers and subscribers to topics.
The role of the Master is to enable individual ROS nodes to locate one another.
Once these nodes have located each other they communicate with each other peer-to-peer.To launch the node we run the command : `roslaunch djisdk sdk.launch`
Then in the virtual environment for Python3 we launch the node for the UWB system which calculates and publishes the position topic
`rosrun djisdk uwbpub.py`Finally we run the node that subscribes to the position topic and calculates the control commands `rosrun djisdk hover`
# Demo
Starting Position
![alt text](https://github.com/IliasPap/DJI-Matrice-100/blob/master/images/drone_start_position.jpg)# Video from autonomous flight
[![Alt text](https://img.youtube.com/vi/1XMq0vvvyFc/0.jpg)](https://www.youtube.com/watch?v=1XMq0vvvyFc)
## Reference
Please cite the paper below if you use this code in your research:
`@inproceedings{papastratis2018indoor,
title={Indoor Navigation of Quadrotors via Ultra-Wideband Wireless Technology},
author={Papastratis, Ilias and Charalambous, Themistoklis and Pappas, Nikolaos},
booktitle={2018 Advances in Wireless and Optical Communications (RTUWO)},
pages={106--111},
year={2018},
organization={IEEE}
}`