Coder Social home page Coder Social logo

ezrafielding / easytello Goto Github PK

View Code? Open in Web Editor NEW
80.0 8.0 31.0 36 KB

An easy to use library to support DJI Tello scripting in Python 3

License: MIT License

Python 100.00%
tello tello-python3 tellodrone dji dji-sdk djitello ryze-tello-drone ryze python3 python

easytello's Introduction

Ezra Fielding

LinkedIn GitHub X

Hi there! I'm Ezra, a Master of Electrical and Space Systems Engineering student at Kyushu Institute of Technology. I am interested in applying ML and AI techniques to nanosatellites.

Projects

  • VERTECS Nanosatellite Project - This mission seeks to investigate star formation history by observing the cosmic background radiation using a 6U-size nanosatellite with a small-aperture telescope.
  • GalaxyClassification - Attempting to classify galaxy morphology using various supervised and unsupervised machine learning techniques.

Education

Publications

  • Keenan A. A. Chatar, Ezra Fielding, Kei Sano, and Kentaro Kitamura "Data downlink prioritization using image classification on-board a 6U CubeSat", Proc. SPIE 12729, Sensors, Systems, and Next-Generation Satellites XXVII, 127290K (19 October 2023); doi: 10.1117/12.2684047.
  • E. Fielding, C. N. Nyirenda and M. Vaccari, "The Classification of Optical Galaxy Morphology Using Unsupervised Learning Techniques," 2022 International Conference on Electrical, Computer and Energy Technologies (ICECET), 2022, pp. 1-6, doi: 10.1109/ICECET55527.2022.9872611.
  • E. Fielding, C. N. Nyirenda and M. Vaccari, "A Comparison of Deep Learning Architectures for Optical Galaxy Morphology Classification," 2021 International Conference on Electrical, Computer and Energy Technologies (ICECET), 2021, pp. 1-5, doi: 10.1109/ICECET52533.2021.9698414.

Contact

Feel free to reach out to me on X or LinkedIn.

easytello's People

Contributors

cirvladimir avatar ezrafielding avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

easytello's Issues

error while using vs code studio

I get this error while using the code from this GitHub
" File "c:\Users\XXXXX\hello\easytello.py", line 7, in
from easytello.stats import Stats
ModuleNotFoundError: No module named 'easytello.stats'; 'easytello' is not a package"

I installed easy tello from the pip command but it's not working

no picture showed

I tested the program by code:

`from tello import Tello

tello = Tello()
tello.command()
tello.streamon()
tello.wait(10)
tello.streamoff()
`

and here's what I got:
image

And there is no window show up to let me see the video as it supposed to be. When I want make it fly it excuted very well. What's the problem?

Is it because of decoder?Do I need a extra decoder to make it work?

I'm using windows 8.1, with python3.7.

Thank you so much.

Streamon Error

I'm trying to use the streamon function, it seems to open up, however it gives me an error message and the programs stops.

My code is given below, would appreciate a response on a possible fix.

from easytello import tello
mytello = tello.Tello()
Sending command: command
Response: b'ok'
tello.streamon()
Traceback (most recent call last):
File "", line 1, in
AttributeError: module 'easytello.tello' has no attribute 'streamon'
mytello.streamon()
Sending command: streamon
Response: b'ok'
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] decode_slice_header error
[h264 @ 0x7fb3aa252e00] no frame!
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] decode_slice_header error
[h264 @ 0x7fb3aa252e00] no frame!
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] decode_slice_header error
[h264 @ 0x7fb3aa252e00] no frame!
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] decode_slice_header error
[h264 @ 0x7fb3aa252e00] no frame!
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] decode_slice_header error
[h264 @ 0x7fb3aa252e00] no frame!
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] decode_slice_header error
[h264 @ 0x7fb3aa252e00] no frame!
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] decode_slice_header error
[h264 @ 0x7fb3aa252e00] no frame!
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] non-existing PPS 0 referenced
[h264 @ 0x7fb3aa252e00] decode_slice_header error
[h264 @ 0x7fb3aa252e00] no frame!
2019-07-12 23:18:32.655 python[54965:1536194] WARNING: NSWindow drag regions should only be invalidated on the Main Thread! This will throw an exception in the future. Called from (
0 AppKit 0x00007fff400d67eb -[NSWindow(NSWindow_Theme) _postWindowNeedsToResetDragMarginsUnlessPostingDisabled] + 378
1 AppKit 0x00007fff400d3bdb -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1479
2 AppKit 0x00007fff40192f95 -[NSPanel _initContent:styleMask:backing:defer:contentView:] + 50
3 AppKit 0x00007fff400d360e -[NSWindow initWithContentRect:styleMask:backing:defer:] + 45
4 AppKit 0x00007fff40192f4a -[NSPanel initWithContentRect:styleMask:backing:defer:] + 64
5 QtGui 0x00000001091981fc -[QCocoaPanel initWithContentRect:styleMask:backing:defer:] + 76
6 QtGui 0x000000010919ea81 -[NSWindow(QWidgetIntegration) qt_initWithQWidget:contentRect:styleMask:] + 81
7 QtGui 0x00000001091900da _ZL20qt_mac_create_windowP7QWidgetjmRK5QRect + 423
8 QtGui 0x000000010918fd6a _ZN14QWidgetPrivate18qt_create_root_winEv + 64
9 QtGui 0x0000000109191af3 _ZN14QWidgetPrivate10create_sysElbb + 917
10 QtGui 0x00000001092217fc _ZN7QWidget6createElbb + 580
11 QtGui 0x000000010922051c _ZN14QWidgetPrivate4initEP7QWidget6QFlagsIN2Qt10WindowTypeEE + 362
12 QtGui 0x0000000109220309 _ZN7QWidgetC2EPS_6QFlagsIN2Qt10WindowTypeEE + 121
13 QtGui 0x00000001091a9c03 _ZN14QDesktopWidgetC2Ev + 31
14 QtGui 0x00000001091ebdd4 _ZN12QApplication7desktopEv + 50
15 QtGui 0x00000001091a5cae _Z9flipPointRK7CGPoint + 32
16 QtGui 0x0000000109185af8 _ZN7QCursor3posEv + 46
17 QtGui 0x00000001091fb3f5 _ZN11QMouseEventC2EN6QEvent4TypeERK6QPointN2Qt11MouseButtonE6QFlagsIS6_ES7_INS5_16KeyboardModifierEE + 79
18 QtGui 0x00000001096c4204 _ZN20QGraphicsViewPrivateC2Ev + 296
19 QtGui 0x00000001096c76c5 _ZN13QGraphicsViewC2EP7QWidget + 37
20 cv2.cpython-37m-darwin.so 0x000000010382db2f _ZN15DefaultViewPortC2EP8CvWindowi + 31
21 cv2.cpython-37m-darwin.so 0x00000001038291bd _ZN8CvWindowC2E7QStringi + 397
22 cv2.cpython-37m-darwin.so 0x0000000103820ed3 _ZN11GuiReceiver12createWindowE7QStringi + 227
23 cv2.cpython-37m-darwin.so 0x0000000103820d35 cvNamedWindow + 533
24 cv2.cpython-37m-darwin.so 0x0000000103823308 _ZN11GuiReceiver9showImageE7QStringPv + 168
25 cv2.cpython-37m-darwin.so 0x00000001038231be cvShowImage + 558
26 cv2.cpython-37m-darwin.so 0x000000010381bb8f _ZN2cv6imshowERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEERKNS_11_InputArrayE + 463
27 cv2.cpython-37m-darwin.so 0x0000000102c5e318 ZL18pyopencv_cv_imshowP7_objectS0_S0 + 424
28 python 0x00000001021f91b8 _PyMethodDef_RawFastCallKeywords + 392
29 python 0x0000000102335e42 call_function + 306
30 python 0x0000000102333aec _PyEval_EvalFrameDefault + 46092
31 python 0x00000001021f88d5 function_code_fastcall + 117
32 python 0x00000001021fbce2 method_call + 130
33 python 0x00000001021f9752 PyObject_Call + 130
34 python 0x0000000102333d58 _PyEval_EvalFrameDefault + 46712
35 python 0x00000001021f88d5 function_code_fastcall + 117
36 python 0x0000000102335dc7 call_function + 183
37 python 0x0000000102333a56 _PyEval_EvalFrameDefault + 45942
38 python 0x00000001021f88d5 function_code_fastcall + 117
39 python 0x0000000102335dc7 call_function + 183
40 python 0x0000000102333a56 _PyEval_EvalFrameDefault + 45942
41 python 0x00000001021f88d5 function_code_fastcall + 117
42 python 0x00000001021fbce2 method_call + 130
43 python 0x00000001021f9752 PyObject_Call + 130
44 python 0x00000001024178cb t_bootstrap + 123
45 python 0x000000010239e707 pythread_wrapper + 39
46 libsystem_pthread.dylib 0x00007fff6eaf32eb _pthread_body + 126
47 libsystem_pthread.dylib 0x00007fff6eaf6249 _pthread_start + 66
48 libsystem_pthread.dylib 0x00007fff6eaf240d thread_start + 13
)
2019-07-12 23:18:32.726 python[54965:1536194] WARNING: nextEventMatchingMask should only be called from the Main Thread! This will throw an exception in the future.
2019-07-12 23:18:32.726 python[54965:1536194] *** Assertion failure in +[NSUndoManager _endTopLevelGroupings], /BuildRoot/Library/Caches/com.apple.xbs/Sources/Foundation/Foundation-1575.12/Foundation/Misc.subproj/NSUndoManager.m:361
2019-07-12 23:18:32.728 python[54965:1536194] *** Assertion failure in +[NSUndoManager _endTopLevelGroupings], /BuildRoot/Library/Caches/com.apple.xbs/Sources/Foundation/Foundation-1575.12/Foundation/Misc.subproj/NSUndoManager.m:361
2019-07-12 23:18:32.732 python[54965:1536194] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+[NSUndoManager(NSInternal) _endTopLevelGroupings] is only safe to invoke on the main thread.'
*** First throw call stack:
(
0 CoreFoundation 0x00007fff42a87cfd __exceptionPreprocess + 256
1 libobjc.A.dylib 0x00007fff6d131a17 objc_exception_throw + 48
2 CoreFoundation 0x00007fff42aa2a1a +[NSException raise:format:arguments:] + 98
3 Foundation 0x00007fff44d41c85 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] + 194
4 Foundation 0x00007fff44c74cfa +[NSUndoManager(NSPrivate) _endTopLevelGroupings] + 473
5 AppKit 0x00007fff4004f915 -[NSApplication run] + 916
6 QtGui 0x00000001091abe44 _ZN26QEventDispatcherMacPrivate22ensureNSAppInitializedEv + 128
7 QtGui 0x00000001091ab5ff _ZN19QEventDispatcherMac13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE + 777
8 QtCore 0x0000000109e0dfdc _ZN16QCoreApplication13processEventsE6QFlagsIN10QEventLoop17ProcessEventsFlagEE + 80
9 cv2.cpython-37m-darwin.so 0x00000001038208ef cvWaitKey + 207
10 cv2.cpython-37m-darwin.so 0x0000000103820ef7 _ZN11GuiReceiver12createWindowE7QStringi + 263
11 cv2.cpython-37m-darwin.so 0x0000000103820d35 cvNamedWindow + 533
12 cv2.cpython-37m-darwin.so 0x0000000103823308 _ZN11GuiReceiver9showImageE7QStringPv + 168
13 cv2.cpython-37m-darwin.so 0x00000001038231be cvShowImage + 558
14 cv2.cpython-37m-darwin.so 0x000000010381bb8f _ZN2cv6imshowERKNSt3__112basic_stringIcNS0_11char_traitsIcEENS0_9allocatorIcEEEERKNS_11_InputArrayE + 463
15 cv2.cpython-37m-darwin.so 0x0000000102c5e318 ZL18pyopencv_cv_imshowP7_objectS0_S0 + 424
16 python 0x00000001021f91b8 _PyMethodDef_RawFastCallKeywords + 392
17 python 0x0000000102335e42 call_function + 306
18 python 0x0000000102333aec _PyEval_EvalFrameDefault + 46092
19 python 0x00000001021f88d5 function_code_fastcall + 117
20 python 0x00000001021fbce2 method_call + 130
21 python 0x00000001021f9752 PyObject_Call + 130
22 python 0x0000000102333d58 _PyEval_EvalFrameDefault + 46712
23 python 0x00000001021f88d5 function_code_fastcall + 117
24 python 0x0000000102335dc7 call_function + 183
25 python 0x0000000102333a56 _PyEval_EvalFrameDefault + 45942
26 python 0x00000001021f88d5 function_code_fastcall + 117
27 python 0x0000000102335dc7 call_function + 183
28 python 0x0000000102333a56 _PyEval_EvalFrameDefault + 45942
29 python 0x00000001021f88d5 function_code_fastcall + 117
30 python 0x00000001021fbce2 method_call + 130
31 python 0x00000001021f9752 PyObject_Call + 130
32 python 0x00000001024178cb t_bootstrap + 123
33 python 0x000000010239e707 pythread_wrapper + 39
34 libsystem_pthread.dylib 0x00007fff6eaf32eb _pthread_body + 126
35 libsystem_pthread.dylib 0x00007fff6eaf6249 _pthread_start + 66
36 libsystem_pthread.dylib 0x00007fff6eaf240d thread_start + 13
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Abort trap: 6

Screen Shot 2019-07-12 at 11 23 23 PM

Screen Shot 2019-07-12 at 11 23 31 PM

Screen Shot 2019-07-12 at 11 23 42 PM

Screen Shot 2019-07-12 at 11 23 52 PM

Screen Shot 2019-07-12 at 11 24 16 PM

Return frame from library

Hi,
Thank you for this amazing library.

I am going to use it to autopilot, based on image processing with OpenCV.

The best way to use easyTello would be to modifiy the methods "_video_thread" and "streamon" to return a frame in OpenCV format, but I don't know hoe to do this.

Could you modifiy tello.py to do this?

Thank you very much.

Javier.

Defining Commands

I was wanting to do a flip, but as far as I can get it is mydrone.flip(direc = ~~). I have tried putting forward, backwards, left, and right where the ~~ is, and I haven't been successful. If it is possible to define all commands for mydrone.{command} in the ReadMe.md would be helpful.

Not getting data from tello

When I try to get the battery level of the tello it doesn't respond with anything, this is the terminal output.

Sending command: command Response: b'ok' Sending command: streamon Response: b'ok' Sending command: takeoff Response: b'ok' Sending command: battery? Sending command: land Response: b'ok' Sending command: streamoff Response: b'ok'

Better drone Responses

The responses from the drone is not very useful as is. The drone adds a lot of extra unneeded characters.

Parsing of the response data would allow for much more usable data straight out the box.

Better stats and logging

The current way the logging and stats system is set up is not very useful as is

Better output methods for stats and logging as well as simpler access to useful stats

Set speed

Hi, I'm trying to set Tello Edu speed by typing self.send_command('speed {}'.format(speed)), e.g., tello.send_command('speed {}'.format(20)), and even though tello response is 'ok' it actually doesn't move. How can I solve this problem? Moreover, it is possible to set the speed direction?
Thank you

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.