Accompanying source code for my bachelor's thesis "Animated Sparse Voxel Octrees".

Course Website for HY475 Robotic Navigation '21. CSD-UOC

C++ Master Class

Safely convert between arithmetic types

Personal fork of BSim

personal website

Personal fork of NeuronGPU

A state of the art clock-based spiking neural network simulator

Drop-in replacement for std::uniform_real_distribution with proper math. properties

issue commentdenniskb/hy475

This "why do we need altsea and not just compare terrain.at(particle) and terrain.at(aeroplane) ?" was just a question in case the altsea is not the altitude of the particles above sea level. I know that we are looking for the plane's location... but as you wrote I also thought that I can find the terrain.at(aeroplane) using the altsea and altGround and compare it with terrain.at(particle).

Thank you for the answers

comment created time in 4 days

issue openeddenniskb/hy475

Hi,

The altitude of the particles with respect to the sea level as far I understood is also altsea right? If not, is it random and why do we need altsea and not just compare terrain.at(particle) and terrain.at(aeroplane) ? Also is it necessary to use the fact that the highest point of the terrain is 255 m somewhere in our calculations? Could you give as a hint on why do we need it? Also it is written that: The noise's purpose is to diversify our particles helping them avoid getting stuck in local maxima. Unfortunately I don't completely understand this. Where does this local maxima refer to? to the altitude?

Thank you in advance

created time in 4 days

issue commentdenniskb/hy475

That was really helpful, thank you!

comment created time in 9 days

issue openeddenniskb/hy475

Hi, I have a problem in understanding the implementation in step 4. The bucket is the prefix sum of the weights, but how is this equivalent to the second bucket in Figure 1? Since bucket is the prefix sum, then bucket[i+1] has always larger size that bucket[i] but that doesn't mean that weight i+1 is larger than weight i. So I don't understand why prefix sum scales proportionally to the particles' weights. Also about the low-variance sampling. Let's say i=2 and r=1. then we will draw from bucket r+i/N=1.02. Does this mean that we draw from bucket[1]? Finally in the method Array.lowerBound(x), why do we need to return the lowest element x?

Thank you

created time in 10 days

starteddenniskb/hy475

started time in 17 days

issue commentdenniskb/hy475

I used "this.s" (-> g1). Thank you.

comment created time in 21 days

issue commentdenniskb/hy475

I use trigonometry to find h(mu) but I dont need the chain rule at the next step. I did not use the function g2 in the expression of h(mu). Is this the wrong? I find h(mu) simple enough...

comment created time in 21 days

issue openeddenniskb/hy475

Hi, I am getting a MSE of ~700, but all the other expected MSE are exactly as you have written. I am having trouble to find what is going wrong, but maybe it is the h(mu). I thought is was trivial and I just had to implement the given diagram, but then h depends on only one component of mu. Could this be the mistake?

created time in 22 days

issue commentdenniskb/hy475

+1. We have calculated a relation between the observation and the angle. Given the standard deviation of the angle we have to calculate the standard deviation of the observation (obs error), right or is it something else?

comment created time in 22 days

issue openeddenniskb/hy475

Can you give us some directions about how to calculate the obs error?

created time in 22 days

issue commentdenniskb/hy475

Sorry, I meant *second* order Taylor expansion in my previous post! Given this, my MSE is 979 m... I dont know where is the bug. I'll try again.

comment created time in 23 days

issue commentdenniskb/hy475

I use Taylor expansion in place of Euler integration ( first order Taylor expansion), similarly to the dragster example and I observe a MSE : 979 m... If I add 9.8 (m/s^2) to "a" (which is equal to 3.92 m/s^2) my MSE becomes 3807847 m... I understand that's wrong (we try to have a zero MSE with noise turned off), but mustn't I change the value of "a" so as it is equal to 1.4G?

comment created time in 24 days

starteddenniskb/hy475

started time in 25 days

starteddenniskb/hy475

started time in a month

issue openeddenniskb/hy475

In the picture of the rocket, the 1.4G for the acceleration is depicted but when I am printing the value of the variable with the command console.log(a) I get roughly 3.92 (m/sec^2) The conversion of the 1.4G to m/sec^2 yields 13.73 m/sec^2 Are all this correct?

created time in a month

starteddenniskb/hy475

started time in a month

starteddenniskb/hy475

started time in a month

starteddenniskb/hy475

started time in a month

starteddenniskb/hy475

started time in a month

issue openeddenniskb/hy475

We are given the matrix Q as 2x2 and the matrix S math.zeros(4, 4). Then you are asking for the matrix K, but in the equation i must add matrix Q with matrix S(after multiplying with C+CT) but they are different dimensions. Should my C matrix change the dimension of S to 2x2?

created time in a month

starteddenniskb/hy475

started time in a month

issue commentdenniskb/hy475

Hi,

As far I understood the mistake was in the (3,3) and (4,4) elements of the matrix R, which should be zero but in the first template they were equal to this.errEst*this.errEst. These elements affect the final result when they are multiplied with the elements (1,3),(1,4),(2,3),(2,4) of the C matrix or the corresponding elements when R is multiplied with the transpose of C. Since the observation z is the GPS signal, I thought the interpretation of the C matrix was trivial. This is also based in the implementation of the C matrix when we used the Kalman filter in the form of hand-written equations.

In general what I am trying to say is the maybe the (3,3) and (4,4) elements of the matrix R don't affect the final result in our case, meaning that we should not observe something different on the RMSE.

Am I wrong about that? Otherwise where was the mistake in the template and where did this 0.2 change come from?

I am sorry if I asked anything that it is not allowed. I am just trying to understand the origin of the change ~0.2px.

Thank you.

comment created time in a month

issue openeddenniskb/hy475

Hi,

Unfortunately, the RMSE I obtain isn't better after I use the new template. Could it be that there is something wrong with my code? In general the RMSE I obtain is of the order ~2.7px to 2.8px. Does is it need to be lower?

Could you tell us roughly how much the RMSE will decrease after we use the new template? Will it be of the order 0.1px or higher?

Thank you.

created time in a month

issue commentdenniskb/hy475

MU state Matrix : 4th position w=1

Hello. I would like to ask you about B and u matrices. Isn't it right that B is an (4x1) and u an (1x1) matrix? Our control input is "deltaDir", isn't it? (Please forgive me if i am not allowed to ask about the answer and give me same clues) Thank you!

comment created time in a month

starteddenniskb/hy475

started time in a month

starteddenniskb/hy475

started time in a month

starteddenniskb/cppmasters

started time in a month