ettusresearch / gr-doa Goto Github PK
View Code? Open in Web Editor NEWDirection-of-Arrival (DoA) Demo for GNU Radio (OOT) with the USRP™ X-Series and TwinRX™
License: GNU General Public License v3.0
Direction-of-Arrival (DoA) Demo for GNU Radio (OOT) with the USRP™ X-Series and TwinRX™
License: GNU General Public License v3.0
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).
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'
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
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!
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.
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.
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.
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!
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>
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?
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
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)
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?
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.
Ubuntu Bionic (19.04) 64-bit, desktop version.
Initial condition: python-pyqt5
package is installed.
The simulation runs and the GUI is shown.
PyQt5 and PyQt4 conflict and the GUI cannot start.
python-pyqt5
via apt-get
.gr-doa
per instructionsrun_MUSIC_calib_lin_array_simulation.grc
python-qt4
and python-qwt5-qt4
via apt-get
.run_MUSIC_calib_lin_array_simulation.grc
againHello:
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.
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
''' 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 '''
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.
I am expecting to followed the doa_whitepaper.pdf
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.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.