Giter Site home page Giter Site logo

ettusresearch / gr-doa Goto Github PK

View Code? Open in Web Editor NEW
98.0 98.0 51.0 5.75 MB

Direction-of-Arrival (DoA) Demo for GNU Radio (OOT) with the USRP™ X-Series and TwinRX™

License: GNU General Public License v3.0

CMake 42.19% C++ 25.95% C 0.51% Python 30.95% MATLAB 0.40%

gr-doa's People

Contributors

natetemple avatar ptrkrysik 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gr-doa's Issues

AttributeError: 'top_block_sptr' object has no attribute '_doa_compass_0_win'

With the latest GNURadio and UHD, the apps here which rely on the "QT GUI DoA Compass Sink" throw this error. I installed gr-doa with PyBOMBS, so it should automatically place everything in the right place. The error it throws is as follows:

Executing: /usr/bin/python2 -u ./run_RootMUSIC_lin_array_simulation.py

Traceback (most recent call last):
  File "./run_RootMUSIC_lin_array_simulation.py", line 222, in <module>
    main()
  File "./run_RootMUSIC_lin_array_simulation.py", line 210, in main
    tb = top_block_cls()
  File "./run_RootMUSIC_lin_array_simulation.py", line 98, in __init__
    self.tab_grid_layout_1.addWidget(self._doa_compass_0_win)
  File "/home/ltsrf/gr-latestuhd/lib64/python2.7/site-packages/gnuradio/gr/hier_block2.py", line 92, in __getattr__
    return getattr(self._impl, name)
AttributeError: 'top_block_sptr' object has no attribute '_doa_compass_0_win'

Here, "./" refers to the actual location of my GR prefix, which I removed for simplicity sake. I did make a change to the "QT GUI DoA Compass Sink" xml code to fix the template (see Issue 2 I posted earlier).

MUSIC lin_array_X310_TwinRX error

Issue Description

I am having difficulties making MUSIC RUN

here is the error:

I am running gnuradio and it is giving me:

Traceback (most recent call last):
File "run_MUSIC_lin_array_X310_TwinRX.py", line 201, in
main()
File "run_MUSIC_lin_array_X310_TwinRX.py", line 189, in main
tb = top_block_cls()
File "run_MUSIC_lin_array_X310_TwinRX.py", line 133, in init
self.tab_grid_layout_1.addWidget(self.doa_compass.this_layout)
TypeError: arguments did not match any overloaded call:
addWidget(self, QWidget): argument 1 has unexpected type 'QVBoxLayout'
addWidget(self, QWidget, int, int, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] = 0): argument 1 has unexpected type 'QVBoxLayout'
addWidget(self, QWidget, int, int, int, int, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] = 0): argument 1 has unexpected type 'QVBoxLayout'

Relative Phase Offset Estimation and Correction

I did phase correction according to the instructions on the wiki. But I got the following results.

1

It looks like my channel B is not working. Is this my X310 problem? How should I solve this problem?

ImportError: libgnuradio-doa.so: cannot open shared object file: No such file or directory

import doa
File "/usr/local/lib/python2.7/dist-packages/doa/init.py", line 41, in
from findmax_and_save import findmax_and_save
File "/usr/local/lib/python2.7/dist-packages/doa/findmax_and_save.py", line 27, in
import doa_swig as doa
File "/usr/local/lib/python2.7/dist-packages/doa/doa_swig.py", line 28, in
_doa_swig = swig_import_helper()
File "/usr/local/lib/python2.7/dist-packages/doa/doa_swig.py", line 24, in swig_import_helper
_mod = imp.load_module('_doa_swig', fp, pathname, description)
ImportError: libgnuradio-doa.so: cannot open shared object file: No such file or directory

Done

Estimation Accuracy for different types of transmissions

Hello,

Thank you for this wonderful project. I am wondering if this approach is applicable to wide range of RF signals: What kind of signal did you evaluate on (I assume just a tone?) and how accurate is that (estimation error, 90% confidence interval?). Would this still be accurate to estimate for WiFi or ZigBee?

I'm looking forward to hearing from you soon!

uhd/images/usrp_x310_fpga_HG.bit

Issue Description

What is the version I should installed to the x310 model to work?

-- X300 initialization sequence...
-- Determining maximum frame size... 1472 bytes.
-- Setup basic communication...
Traceback (most recent call last):
File "/home/caai/gr-doa/apps/estimate_X310_TwinRX_constant_phase_offsets_and_save.py", line 80, in
main()
File "/home/caai/gr-doa/apps/estimate_X310_TwinRX_constant_phase_offsets_and_save.py", line 74, in main
tb = top_block_cls()
File "/home/caai/gr-doa/apps/estimate_X310_TwinRX_constant_phase_offsets_and_save.py", line 38, in init
addresses=input_variables.RxAddr
File "/usr/local/lib/python2.7/dist-packages/doa/twinrx_usrp_source.py", line 58, in init
channels=range(sources),
File "/usr/lib/python2.7/dist-packages/gnuradio/uhd/init.py", line 122, in constructor_interceptor
return old_constructor(*args)
File "/usr/lib/python2.7/dist-packages/gnuradio/uhd/uhd_swig.py", line 2671, in make
return _uhd_swig.usrp_source_make(*args)
RuntimeError: RuntimeError: Expected FPGA compatibility number 19, but got 38:
The FPGA image on your device is not compatible with this host code build.
Download the appropriate FPGA images for this version of UHD.

Setup Details

I ran the following:

sudo /usr/lib/uhd/utils/uhd_images_downloader.py
Images destination: /usr/share/uhd/images
Downloading images from: http://files.ettus.com/binaries/images/uhd-images_003.009.002-release.zip
Downloading images to: /tmp/tmp8657SB/uhd-images_003.009.002-release.zip
26296 kB / 26296 kB (100%)

/usr/bin/uhd_image_loader --args="type=x300,addr=192.168.10.2"
linux; GNU C++ version 5.3.1 20151219; Boost_105800; UHD_003.009.002-0-unknown

Unit: USRP X310 (3176C86, 192.168.10.2)
FPGA Image: /usr/share/uhd/images/usrp_x310_fpga_HGS.bit
-- Initializing FPGA loading...successful.
-- Loading HGS FPGA image: 100% (121/121 sectors)
-- Finalizing image load...successful.

it loaded the image into the board but I still have the same issue.

Could not find a configuration file for package "Gnuradio" that is compatible with requested version "3.7.2".

Issue Description

When i install the gr-doa in ubuntu 18.04 in which the gnuradio 3.8.0 has been installed, an error occured during the cmake process. It seems to be the version incompatibility. I want to know whether i have to reload the OS ubuntu 16.04 and gnuradio 3.7.2? Maybe there is a more smart solution.

Setup Details

cd gr-doa
mkdir build
cd build
cmake ..
-- Build type not specified: defaulting to release.
-- Boost version: 1.65.1
-- Found the following Boost libraries:
-- filesystem
-- system
-- Armadillo found
-- Checking for module 'cppunit'
-- Found cppunit, version 1.14.0
-- Found CPPUNIT: /usr/lib/x86_64-linux-gnu/libcppunit.so;dl
CMake Error at CMakeLists.txt:121 (find_package):
Could not find a configuration file for package "Gnuradio" that is
compatible with requested version "3.7.2".

The following configuration files were considered but not accepted:

/usr/local/lib/cmake/gnuradio/GnuradioConfig.cmake, version: 3.8.0.0

-- Configuring incomplete, errors occurred!

Expected Behavior

Actual Behaviour

Steps to reproduce the problem

Additional Information

QT Gui Object Broken - doa_qt_compass.xml

With the latest install of GR and UHD, it appears that the xml file for the block "QT GUI DoA Compass Sink" is no longer working out of the box. The command is not loading correctly and throws a Template Error in the generated Python code. Here's the original code:

<make>#set $win2 = 'self.%s.this_layout'%$id doa.compass($name, $min_val, $max_val, $step, $arc_bias) $(gui_hint()($win2))</make>

The following change would fix it:

<make>#set $win = 'self._%s_win'%$id doa.compass($name, $min_val, $max_val, $step, $arc_bias) $(gui_hint() % $win)</make>

'make test' procedure of the gr-doa is failed, 0 percent passed.

Issue Description

The make process of gr-doa is passed, but errors occurs when i run the 'make test' procedure. All the tests are failed, but it seems not influence the installation process. I want to know why the test process failed, can it works normally?

Setup Details

make test
Running tests...
Test project /gr-doa/build
Start 1: qa_autocorrelate
1/5 Test #1: qa_autocorrelate .................***Failed 0.19 sec
Start 2: qa_MUSIC_lin_array
2/5 Test #2: qa_MUSIC_lin_array ...............***Failed 0.20 sec
Start 3: qa_rootMUSIC_linear_array
3/5 Test #3: qa_rootMUSIC_linear_array ........***Failed 0.20 sec
Start 4: qa_find_local_max
4/5 Test #4: qa_find_local_max ................***Failed 0.20 sec
Start 5: qa_calibrate_lin_array
5/5 Test #5: qa_calibrate_lin_array ...........***Failed 0.20 sec

0% tests passed, 5 tests failed out of 5

Total Test time (real) = 0.99 sec

The following tests FAILED:
1 - qa_autocorrelate (Failed)
2 - qa_MUSIC_lin_array (Failed)
3 - qa_rootMUSIC_linear_array (Failed)
4 - qa_find_local_max (Failed)
5 - qa_calibrate_lin_array (Failed)
Errors while running CTest
Makefile:85: recipe for target 'test' failed
make: *** [test] Error 8

Expected Behavior

Actual Behaviour

Steps to reproduce the problem

Additional Information

problem in applying the 'QT GUI DoA compass'

Issue Description

hello:

      When i simulate the gr-doa in gnuradio 3.7.13.4, i encountered an problem which may be related to the 'QT GUI DoA Compass' module.

       As follows:

Generating: '/home/cruise/mygnuradio/grc program/MUSIC_simulation.py'

Executing: /usr/bin/python2 -u /home/cruise/mygnuradio/grc program/MUSIC_simulation.py

Traceback (most recent call last):
File "/home/cruise/mygnuradio/grc program/MUSIC_simulation.py", line 193, in
main()
File "/home/cruise/mygnuradio/grc program/MUSIC_simulation.py", line 181, in main
tb = top_block_cls()
File "/home/cruise/mygnuradio/grc program/MUSIC_simulation.py", line 77, in init
self.top_grid_layout.addWidget(self.doa_qt_compass_0.this_layout)
TypeError: arguments did not match any overloaded call:
addWidget(self, QWidget): argument 1 has unexpected type 'QVBoxLayout'
addWidget(self, QWidget, int, int, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] = 0): argument 1 has unexpected type 'QVBoxLayout'
addWidget(self, QWidget, int, int, int, int, alignment: Union[Qt.Alignment, Qt.AlignmentFlag] = 0): argument 1 has unexpected type 'QVBoxLayout'

Done (return code 1)

Setup Details

Expected Behavior

Actual Behaviour

Steps to reproduce the problem

Additional Information

Gr-doa compatibility with newer releases

Issue Description

After properly installing uhd drivers and gnu radio, I attempted to get gr-doa package.
I am using Ubuntu 18.04, with updated gmp and installed required dependencies.
There appeared some errors during build because of change in function naming or structure.
Logs from cmake:

-- Build type not specified: defaulting to release.
-- Boost version: 1.65.1
-- Found the following Boost libraries:
--   filesystem
--   system
-- Armadillo found
-- Checking for module 'gmp'
--   No package 'gmp' found
-- Checking for module 'mpir >= 3.0'
--   No package 'mpir' found
-- Could NOT find MPIR (missing: MPIRXX_LIBRARY MPIR_LIBRARY MPIR_INCLUDE_DIR) 
-- 
-- Checking for module SWIG
-- Found SWIG version 3.0.12.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/marcin/gr-doa/build

Logs from make:

Scanning dependencies of target gnuradio-doa
[  4%] Building CXX object lib/CMakeFiles/gnuradio-doa.dir/autocorrelate_impl.cc.o
/home/marcin/gr-doa/lib/autocorrelate_impl.cc: In static member function ‘static gr::doa::autocorrelate::sptr gr::doa::autocorrelate::make(int, int, int, int)’:
/home/marcin/gr-doa/lib/autocorrelate_impl.cc:41:9: error: could not convert ‘gnuradio::get_initial_sptr(T*) [with T = gr::doa::autocorrelate_impl]()’ from ‘std::shared_ptr<gr::doa::autocorrelate_impl>’ to ‘gr::doa::autocorrelate::sptr {aka boost::shared_ptr<gr::doa::autocorrelate>}’
       return gnuradio::get_initial_sptr
              ~~~~~~~~~~~~~~~~~~~~~~~~~~
         (new autocorrelate_impl(inputs, snapshot_size, overlap_size, avg_method));
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lib/CMakeFiles/gnuradio-doa.dir/build.make:62: recipe for target 'lib/CMakeFiles/gnuradio-doa.dir/autocorrelate_impl.cc.o' failed
make[2]: *** [lib/CMakeFiles/gnuradio-doa.dir/autocorrelate_impl.cc.o] Error 1
CMakeFiles/Makefile2:135: recipe for target 'lib/CMakeFiles/gnuradio-doa.dir/all' failed
make[1]: *** [lib/CMakeFiles/gnuradio-doa.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2

Is there any fix for this or shall I switch to ubuntu 16.04 where it has been proved working?

PyQt4 and PyQwt5 requirements not documented, conflict with PyQt5

Issue Description

The first time this module is installed, and run_MUSIC_calib_lin_array_simulation.grc is compiled and run, it will complain that PyQt4 is missing. Once the python-qt4 package is installed, it will then complain that Qwt5 is missing. Once python-qwt5-qt4 is installed, the following error results:

RuntimeError: the PyQt4.QtCore module failed to register with the sip module

This seems to result from a conflict in the GUI loading both Qt5 and Qt4 at the same time. GRC compiles into a script that uses PyQt5, but the compass widget inside gr-doa is coded to use Qt4.

The problem is that many people have moved to Qt5, and GRC is fine building Python flowgraphs in Qt mode that use PyQt5 when it's installed and available. The gr-doa compass module presumes PyQt4 is installed, which may not be true.

Setup Details

Ubuntu Bionic (19.04) 64-bit, desktop version.

Initial condition: python-pyqt5 package is installed.

Expected Behavior

The simulation runs and the GUI is shown.

Actual Behaviour

PyQt5 and PyQt4 conflict and the GUI cannot start.

Steps to reproduce the problem

  1. Install python-pyqt5 via apt-get.
  2. Install gr-doa per instructions
  3. Run run_MUSIC_calib_lin_array_simulation.grc
  4. Observe errors
  5. Install python-qt4 and python-qwt5-qt4 via apt-get.
  6. Run run_MUSIC_calib_lin_array_simulation.grc again
  7. Observe different error

problems about the gr-doa simulation

Issue Description

Hello:
when i simulate the gr-doa module without USRP X310, i find that the simulation results are incorrect and it has the following rules.
The degree of angle which is the simulation parameter is theta. The computed results are sent to the 'QT GUI Vector Sink' module to show. We found that the estimation results is '90 + theta' if '90+theta' is less than 180 degree, and is the '180-(90+theta-180)' if '90+theta' is greater than 180 degree.

Where the problem maybe occurs?

thank you very much.

Setup Details

Expected Behavior

Actual Behaviour

Steps to reproduce the problem

Additional Information

Configure USRP X310

Hello;
I would like to configure USRP X310 with CMAKE software tools using python as langage. Please can you helpe to install cmake and pyton API. I'am so gratefull if you send me clear tutorial and video.

Best Regarding

No module named doa_swig

Issue Description

''' File "/home/caai/gr-doa/apps/estimate_X310_TwinRX_constant_phase_offsets_and_save.py", line 15, in
import doa
File "/usr/local/lib/python2.7/dist-packages/doa/init.py", line 41, in
from findmax_and_save import findmax_and_save
File "/usr/local/lib/python2.7/dist-packages/doa/findmax_and_save.py", line 27, in
import doa_swig as doa
ImportError: No module named doa_swig '''

Setup Details

I followed all the instructions from git repository and installed the dependencies. The only issue I encounter is when running make test. all test fail due to the same line.

Expected Behavior

I am expecting to followed the doa_whitepaper.pdf

Actual Behaviour

Steps to reproduce the problem

Additional Information

I am using ubuntu 16.04, gnuradio companion 3.7.9, I have installed the UHD drivers (they are working properly), I have also installed armadillo.

Installing cmake to configure USRP X310

Hello;
I would like to configure USRP X310 with CMAKE software tools using python as langage. Please can you helpe to install cmake and pyton API. I'am so gratefull if you send me clear tutorial and video.

Best Regarding

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.