-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AWR1843BOOST fields 'range', 'doppler_bin', 'bearing' and 'intensity' are always zero #25
Comments
You have to check the files DataHandlerClass.cpp and mmWave.h In DataHandlerClass.cpp you can recognize that in the command READ_OBJ_STRUCT no information about range, doppler_bin, bearing and intensity is saved for SDK verisons older than 3.x. Intensity and noise are saved in the command READ_SIDE_INFO. A better understanding of how the data is managed for SDK 3.x can be found in the file mmWave.h. Currently, I am also doing a project with an AWR1843 radar but I am not an expert and this is what I could figure out until now. |
Hi @alme96 I think your point about the changes of SDK 3.x makes sense. I did a close look of source codes of the SDK 3.x and current 'DataHandlerClass.cpp', it is true that the 'intensity' and 'range' works in a different way for new version SDK. In my opinion, 'range' information in Cartesian Coordinate can be calculated by (x,y,z) values. There is spherical coordinate structure in SDK 3.x, it has the 'range' information, but things works different in spherical coordinate. It is true that the 'intensity' was saved in 'SIDE_INFO', and you can read its information directly. But take care the unit of the values you read from the 'SIDE_INFO', the unit of values is dB, so no need to do logarithmic calculation anymore, but I think you have to divide the SNR values in 'SIDE_INFO' by 10, because it is said the unit of that is 0.1dB in SDK. Currently, I can not see a use of 'doppler_bin' and 'bearing' information in my project, so I did not look at it too much. In original 'DataHandlerClass.cpp' code, you can see these two fields are calculated by existing information. I think you can choose to include these two fields for SDK 3.x if you need. I did some modifications of the original code. I added the missing information in 'RadarScan' topic. There are also 'range' and 'velocity' fields published in PointCloud2 topic in addition to 'intensity'. Here is the link: There might be issues of the code. Feel free to modify and comment it. Regards Claude |
Hi @Claud1234 Thank you a lot for your help! Where did you find the definitions to extract the spherical coordinates from the SDK? I managed to display the spherical and the cartesian coordinates but I had some issues:
Did you encounter these problems too while trying to read the spherical values? Best Regards Ale |
Hi @alme96
You can find the header file about spherical and Cartesian coordinate in /package/ti/datapath/dpif/, but things in it are similar to the 'mmWave.h' in this repository.
Refer to SDK, in spherical coordinate, negative azimuthAngle means left hand side, negative elevAngle means below the sensor. I do not know what is your sensor configuration and the details of your problem, you might have to check these things over again. Hope my opinions can help you in some ways. All the best, Claude |
Hi @Claud1234 Thank you for your time! At the end I won't use spherical coordinates either but it was helpful to understand how the radar works. Best regards, Ale |
Hi @Carbord ,
I hope these hints can help you starting your project, I am also new to ROS and C++ so I do not want to give you hints that could be misleading and wrong. King regards, Ale |
Hi @Carbord:
The README written by original author explained the usage of the repository very detailed. All you need to do is pick up the configuration files which you want. In your case, if the sensor is AWR1843BOOST, the configuration files should based on this specific model. You can do as @alme96, try to connect the sensor to online visualizer, then tune and save the .cfg files as you need. Otherwise, please check the my fork repository, there are .cfg files I saved as default modes 'best_range_resolution' 'best_velocity_resolution' 'best_range' in both 2D and 3D for AWR1843BOOST sensor. If you have problems to read the README, I suggest you read more about ROS basic functions first, this definitely will help you.
If you can connect the sensor and run the node successfully, you can have two topics about the output of the sensor. One is a customized message which is like the screenshot I shared in this page. This topic indicate the object detection information. Another topic is regular ROS PointCloud2 topic which shows all the points sensor captured. It is also possible to convert the ROS topics to text files if you need so, although the static files used to be very large. There should be a lot of open source packages available to do this job even for customized message.
I am not really understand what you mean about this question. If the sensor connection to PC is okay and node is running without error, sensor will publish all topics constantly, you can choose to record or do other post-processes with these topics simultaneously. You kill the rosnode, it will stop the data publication. The point of ROS package is to have a friendly interface to control the sensor. I hope my answer can help you in some ways. Regards Claude |
Thanks a lot! I will try and learn. |
Hi @Carbord , If you have not red the radar user guide and the mmwave-sdk user guide yet, I suggest that you start with those, so that you understand, for example, how to flash your device. Good luck with your project! Ale |
uncommentating them doesn't help while building package it shows error it wont help us much i think and its in else case if the particular fields of data not present it show think so we need to look for the data we get out of the radar and map it accordingly if any one can guide we can try it |
Maybe you can change the code in DataHandlerClass.cpp like below. After I changed it like this, it worked. If the problem persists, feel free to contact me.
|
hello i added the code you wrote but i still have some problems with the |
Sorry for that. May you can clone my new repo from here for working with AWR1843 device. |
I save the '.cfg' file from the online demo visualizer and load it into ROS pipeline. There are no values for fields 'range', 'doppler_bin', 'bearing' and 'intensity' in any default scenes (best range, best range resolution, best velocity resolution) whatever it is 2d or 3d. But I can get the velocity values all the time.
The text was updated successfully, but these errors were encountered: