https://github.com/roboticsclubiitj/pluto_drone_interiit
https://github.com/roboticsclubiitj/pluto_drone_interiit
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/roboticsclubiitj/pluto_drone_interiit
- Owner: RoboticsClubIITJ
- Created: 2023-02-22T16:11:55.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2023-02-22T17:28:12.000Z (over 3 years ago)
- Last Synced: 2025-02-27T19:57:34.161Z (over 1 year ago)
- Language: Python
- Size: 3.83 MB
- Stars: 0
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Pluto_drone_interiit
## Prerequisites
- Ubuntu 20.04/Ubuntu 22.04
- Python3
- Terminos function is used, which is a python standard library. It works only on linux.
## Installation
- OpenCv installation
```
$ sudo apt update
```
```
$ sudo apt install libopencv-dev python3-opencv
```
- Install numpy
```
pip3 install numpy
```
- Install aruco
```
pip3 install aruco
```
## Keyboard to control Pluto
- Up arrow : Forward
- Down arrow : Backward
- Left arrow : go left
- Right arrow : go right
- q : take_off
- w : Increase height
- s : Decrease height
- e : land
- a : yaw left
- d : yaw right
- j : trim left roll
- l : trim right roll
- i : trim front pitch
- k : trim back pitch
## Program Files
- [task1](https://github.com/Adityakumar2004/team_ID_51_task1/tree/main/task1) : Performs ```task 1```, using the keyboard controls the pluto drone.
- [rectangle_2](https://github.com/Adityakumar2004/inter_iit/blob/main/rectangle_2.py) : Performs ```task 2```, moving the drone in a rectangle.
- [Aruco Marker OpenCV](https://github.com/Adityakumar2004/inter_iit/tree/main/Aruco%20Marker%20OpenCV): Performs the task 2 to detect the ```Aruco marker``` and returns the respective position coordinates.
- [CAMERA-CALIBARTION](https://github.com/Adityakumar2004/inter_iit/tree/main/Aruco%20Marker%20OpenCV/CAMERA-CALIBARTION):Camera calibration consists in obtaining the camera intrinsic parameters and distortion coefficients. This parameters remain fixed unless the camera optic is modified, thus camera calibration only need to be done once. For the same we have uploaded chessboard images in different- different plane and angle.
- [POSE-ESTIMATION](https://github.com/Adityakumar2004/inter_iit/tree/main/Aruco%20Marker%20OpenCV/POSE-ESTIMATION): The camera pose relative to the marker is a 3d transformation from the marker coordinate system to the camera coordinate system. It is specified by rotation and translation vectors.
- [MARKER-DETECTION](https://github.com/Adityakumar2004/inter_iit/tree/main/Aruco%20Marker%20OpenCV/MARKER-DETECTION): We will apply the ArUco detector with OpenCV’s cv2.aruco.detectMarkers function.
- [Pattern-PNG](https://github.com/Adityakumar2004/inter_iit/tree/main/Aruco%20Marker%20OpenCV/Pattern-PNG): Pattern png for camera calibration.
- [calib_data](https://github.com/Adityakumar2004/inter_iit/tree/main/Aruco%20Marker%20OpenCV/calib_data):As a result of the calibration, we get a camera matrix: a matrix of 3x3 elements with the focal distances and the camera center coordinates, and the distortion c coefficients: a vector of 5 or more elements that models the distortion produced by your camera.
For Task 1 execute this file: task1.py from task1 folder
For task2 hover part execute this file: rectangle_hover.py from task2
For task2 for rectangle path execute this file: rectangle_final.py