Closed matejhof closed 7 years ago
Another question for @alecive is that: What is the exact angle of the cone
you used for the experiment? I tried to find in the paper but it was not mentioned.
Thanks.
Sorry for the delay in answering, today was a busy demo day :)
Everything related to data processing and plotting (for the 1D version) should be in the following repositories: https://github.com/alecive/pps-gitlab/tree/master/2015_IROS (@towardthesea I added you to the repo - which is private - in case you need it) and this one https://github.com/alecive/peripersonal-space-margin-of-safety-data/ (which is a dependency for the first one, so if you download the first one you should get also the latter as a submodule).
I didn't try to run the code (no time), but everything should be there. I'm not sure if and how much is going to be working because we moved things around in the past months (different repositories, different changes to the software, etc), so many things can be broken (as a matter of fact, I fixed a little issue about this already).
Anyhow, here are my answers:
ini
file (at least as far as I saw) because apparently what we did for the IROS paper was to record the data, do the training on matlab, create an ini file from there and deploy it on the robot. I think there was a reason for doing this - probably to be consistent with the montecarlo simulation. For that matters, here is the code to load an empty .ini file and save a "learned" one https://github.com/alecive/pps-gitlab/blob/master/2015_IROS/realData/loadAndTrainTaxels.m#L242 . Anyway, whenever you devise the code to read from ini
file, you can still use the code I shown above to plot it :+1: 0
and pi
and I decided on that value for some reason, but that was not our focus (even though it would have been better to put it on the paper). Obviously, the same angle is used in the C++ code (and in the SVG pictures).Thanks @alecive for your value detail information. I had a brief look through the repo and they seems really good. I will try to exploit them and will inform you if I get any trouble :+1:
Actually I handled to plot the parzen drawing based on your 2D code that @matejhof shared me, but I will double check with your code to make sure everything fine.
Thanks again!
Great! If you then tell me in detail what you are going to need next, I can share it to you :+1:
Great thanks! Btw., the angle seems to be 40 deg, guessing from here: https://github.com/robotology/peripersonal-space/blob/master/lib/src/utils.cpp#L300 No?
I'll reopen this - the visualization enhancement is yet to be done.
Sorry, I forgot what was the real reason of the issue :)
Ok so there is a slight misalignment between the cpp and the matlab I think.
Ok, so perhaps we can try to realign everything to 40 deg (a nicer number) - from now on?
No problem for me :+1:
A screen shot of PPS representation
for the left forearm. For the color bar, please don't consider the minus
sign!
https://www.dropbox.com/s/zlwwe67ljr7h668/PPS-left%20forearm.bmp?dl=0
A short video of PPS representation with different view points to make it easier to understand https://www.dropbox.com/s/b9oadz0s949yh9h/Figure%206%208_22_2016%203_53_56%20PM.mp4?dl=0
This is beautiful! We can still polish it, but this will IMHO be a priceless tool! Well done!
Awesome! Well done!
It's worth an animated GIF :smile:
Wow, great job @towardthesea !!! Two comments:
Anyway, good job @towardthesea , it's a very nice visualization :+1:
This will answer @alecive 's question but is also an explanation:
Parzen window
approximation: The red
color is for the highest activation while the yellow
is for the lowest. So each cone
corresponds to each taxel's receptive region. (Please also check the file for the summary of the PPS representation with Parzen window estimation https://www.dropbox.com/s/dslg5hc9datzubx/leftForearm-pps-summary.zip?dl=0 - a replication of the IROS works)surface
of RFs is an arc, but the small receptive angle (41deg) makes it look flat. Moreover, different perspective also increase the feeling. Please check the link https://www.dropbox.com/s/ofioa6q2tk8x1wh/PPS-left%20forearm-80deg.bmp?dl=0 for the representation with larger receptive angle (80deg) and you can easily realize that they are all arcs.I think we have a misunderstanding here: the RF angle of 41°
is between the vertical (z axis in Fig 5 of the paper https://alecive.github.io/papers/[Roncone%20et%20al.%202015]%20-%20Learning%20peripersonal%20space%20representation%20through%20artificial%20skin%20for%20avoidance%20and%20reaching%20with%20whole%20body%20surface.pdf) and the external bounds of the RF (i.e. the line in which I wrote r=20cm
in the same figure). So if you have an angle of 80°
you should have a full hemisphere around the taxel (which is different from what you linked me).
The arc should be independent from the RFangle
, because its curvature should be dependent to the radius
, i.e. distance from taxel. The RFangle
should impact the length of the arc and not its curvature.
I did a quick depiction of what I mean:
Red should be with RFangle at 80°, green at 41° (please be aware that I did not measure them, I only draw them to give you the idea). The black lines should be the bins
at constant distance from the taxel: you see how their curvature does not change according to the angle?
I actually misunderstand what you meant for 41deg
, which I thought is the whole angle of the RF. What I did show for the first time was 20.5deg
as you defined (meaning 41deg
of the whole angle); and due to this small angle of 20.5deg
, it created the feeling of flat (but it is still arc) as I mentioned in the explanation comment above.
In the explanation comment, what I showed was approximately equal to what you defined for the RF angle: You defined 41deg
and I accidentally showed 40deg
(equal to 80deg
for the whole angle).
Hope it is clear :)
My persional repo for PPS visualization https://github.com/towardthesea/PPS-visualization. Please have a look and inform me if you get any problem in using it.
@towardthesea @matejhof @alecive I wouldn't keep those scripts apart from this main repository, but rather create a sub-directory and maintain the code here.
Will have to be adapted to allow for the new way of RF representation - see #32 and #24.
The issue is solved with the PPS-visualization
repository. Close this now!
We're working with @towardthesea on how we can visualize the PPS that has already been learned - as a volume in 3D space surrounding the robot. First, we're starting in
Matlab
. Here come some questions for @alecive:.ini
file, such as learned_all. Here:.ini
file in Matlab and to run the Parzen window on it and then plot?Thanks!