05:12.12 |
*** join/#brlcad milamber
(~devlin@d118-75-244-176.try.wideopenwest.com) |
05:35.58 |
*** join/#brlcad elf_
(~elf@92.80.3.25) |
10:34.43 |
CIA-68 |
BRL-CAD: 03MelinaoewoywpoqcLegge 07http://brlcad.org * r4443
10/wiki/Dog_Collars_-_What_You_Need_To_Know: New page: What's The
Best Type Of Dog Collar? Getting the right dog collar for your dog
is one of the most important things you can do for your dog. Your
dog will probably spend most of it's life w... |
10:53.50 |
*** join/#brlcad yiyus
(~124271242@je.je.je) |
12:36.11 |
*** join/#brlcad abhi2011
(~chatzilla@117.200.92.29) |
12:41.45 |
abhi2011 |
hey elf_ |
12:56.42 |
abhi2011 |
darn I forgot how to setup cmake for compiling
with visual studio |
12:57.28 |
abhi2011 |
I think for the simulate command, the path to
the bullet library has to be mentioned for the FindBullet.cmake
script to find it |
13:01.31 |
abhi2011 |
ah the readme is there |
13:50.55 |
*** join/#brlcad louipc
(~louipc@archlinux/fellow/louipc) |
15:55.15 |
*** join/#brlcad KimK
(~Kim__@wsip-184-176-200-171.ks.ks.cox.net) |
16:30.57 |
*** join/#brlcad abhi2011
(~chatzilla@117.200.86.91) |
16:38.35 |
abhi2011 |
elf_, I am building brlcad now |
16:38.38 |
abhi2011 |
in windows :P |
16:38.46 |
abhi2011 |
will test out with your g file after
that |
16:39.21 |
elf_ |
Oh hello abhi, I see didn't try it in windows,
I am using linux :) |
16:41.21 |
abhi2011 |
ok |
16:41.43 |
abhi2011 |
so it takes 1000 steps for the cube to fall to
the ground ? |
16:42.09 |
abhi2011 |
if thats so then maybe for now, we can drop
the cube closer to the ground |
16:42.54 |
abhi2011 |
I generally dump the output at every step, the
lesser the number of steps thats output, the easier it is to track
down whats wrong |
16:43.01 |
elf_ |
Hmm no, the cube is at 50m above the ground,
in that g file, it takes 190steps to move the cube 50mm, so to move
the cube 50m it will take 190*1000 roughly |
16:43.35 |
elf_ |
1k steps moves the cube just a little bit in
that simulation |
16:43.48 |
elf_ |
and for 10k steps the simulation gets
aborted |
16:44.04 |
abhi2011 |
hmm, it should not be that way, if gravity is
acting on the cube, it should accelerate faster |
16:44.52 |
elf_ |
I know |
16:45.44 |
abhi2011 |
ok, we need to verify some more basic things
first |
16:45.55 |
abhi2011 |
I think what we can do as a test for whether
the simulation logic of bullet itself is still working correctly,
we can just drop a cube and print its position in mged |
16:46.40 |
elf_ |
From the last cube simulation I did it looked
like the collision point was in the middle of the cube |
16:46.41 |
abhi2011 |
so lets try to do that first, i.e. comment out
everything in ... |
16:46.43 |
abhi2011 |
let me check |
16:46.44 |
elf_ |
that it's not right |
16:47.32 |
abhi2011 |
yeah thats because the overlap detection logic
is not working correctly |
16:47.50 |
abhi2011 |
i had put it in much later but its not tested
out yet |
16:48.37 |
elf_ |
I see |
16:48.51 |
abhi2011 |
so in simphysics.cpp , run_simulation(struct
simulation_params *sp) |
16:50.25 |
abhi2011 |
I think we can replace it with the code in
http://bulletphysics.org/mediawiki-1.5.8/index.php/Hello_World |
16:50.41 |
abhi2011 |
to test whether bullet is working as it
should |
16:51.18 |
elf_ |
okay will try it |
16:51.39 |
abhi2011 |
there is a loop in which the physics is
stepped towards the bottom of the page |
16:51.48 |
abhi2011 |
that loop should also be there |
16:52.15 |
elf_ |
the whole source is at the bottom of the
page |
16:52.31 |
abhi2011 |
cool :) |
16:52.43 |
abhi2011 |
just plop it in |
16:53.28 |
elf_ |
yeah |
17:01.05 |
abhi2011 |
I notice I had set gravity along -ve
z |
17:01.28 |
elf_ |
yeah you put it -10 |
17:02.24 |
abhi2011 |
any luck with the hello world thingy |
17:03.19 |
elf_ |
It compiled just fine, I tried it on the same
g file I send to you but just gets blocked |
17:03.39 |
abhi2011 |
in the loop ? |
17:03.55 |
abhi2011 |
try adding prints above it |
17:05.58 |
elf_ |
Okay so the thing is, it gets the output it is
supposed to get from the tutorial for 1 step, 2 steps then when I
try with 10 steps it blocks |
17:06.24 |
elf_ |
mged freezes so I have to kill the
process |
17:07.46 |
abhi2011 |
thats wierd |
17:08.06 |
elf_ |
very since it works fine for all the numbers
lower than 10 O.O |
17:08.40 |
abhi2011 |
so you change the number of steps in the for
loop statement right ? |
17:08.46 |
abhi2011 |
for (int i=0 ; i<300 ; i++) { |
17:08.58 |
abhi2011 |
you change it to : for (int i=0 ; i<10 ;
i++) { ? |
17:10.28 |
abhi2011 |
there is one other possibility, I think the
simulation may be completing, but since the right data is not
returned out if the function, so mged freezes |
17:10.30 |
elf_ |
not there, it's from somewhere else, I put
there 10 indeed, but when I run simulate I run it as "simulate
1/2/3../10" for all of them works for 10 it doesn't |
17:11.17 |
abhi2011 |
oh ok |
17:11.52 |
abhi2011 |
the value of 10 is put into
sim_params->duration argument |
17:12.43 |
abhi2011 |
so your loops is something like : for (int
i=0 ; i< sim_params->duration ; i++) { ? |
17:13.26 |
elf_ |
yes |
17:13.50 |
abhi2011 |
ok, whats happens if you hardcode the number
of steps in the function |
17:14.01 |
abhi2011 |
so hardcode to 300 in the loop limit |
17:14.11 |
abhi2011 |
then run with simulate 1 |
17:14.35 |
abhi2011 |
it will still execute 300 steps , because its
hardcoded, it will ignore 1 |
17:14.45 |
abhi2011 |
do you then get the output for 300 steps
? |
17:15.53 |
elf_ |
yes it gets the output for 300 steps |
17:16.15 |
abhi2011 |
ok, and I assume it matches the hello world
output |
17:16.57 |
elf_ |
it does, it's like the one they said it should
be |
17:17.41 |
abhi2011 |
right, so thats good |
17:19.04 |
abhi2011 |
what the output if you replace
dynamicsWorld->stepSimulation(1/60.f,10); |
17:19.13 |
abhi2011 |
with step_physics(dynamicsWorld); |
17:20.01 |
abhi2011 |
its rater hilarious, whats happening
actually |
17:20.16 |
elf_ |
why so? |
17:20.25 |
abhi2011 |
but lets see if you get the right output after
replacing it |
17:21.23 |
elf_ |
I get a seg fault |
17:22.00 |
abhi2011 |
oh just comment out the 1st bu_vls_printf()
line |
17:22.09 |
abhi2011 |
in step_physics() |
17:22.30 |
abhi2011 |
its prolly 'cause of the sim_params
structure |
17:22.50 |
abhi2011 |
in fact comment out all 3 |
17:23.03 |
abhi2011 |
and replace with your own print
statements |
17:23.40 |
abhi2011 |
those statements I had put in to mark the
beginning and end of each step |
17:23.55 |
abhi2011 |
so the output from each step is clearly
separated in the log |
17:24.01 |
abhi2011 |
and I can go through it easier |
17:26.26 |
abhi2011 |
any luck ? |
17:26.39 |
elf_ |
it's good |
17:26.44 |
elf_ |
same output as before |
17:27.04 |
abhi2011 |
ok, so the step_physics() is supposed to be
called at every step |
17:27.33 |
abhi2011 |
that means that there need to be a loop in the
run_simulation() |
17:28.47 |
elf_ |
yeah, right now it the for (int i=0 ; i<
300 ; i++) { } loop |
17:29.00 |
abhi2011 |
exactly |
17:30.02 |
abhi2011 |
for some reason we had decided last year, that
we would add objects to the bullet dynamics world, do 1 step of
simulation, then get the transforms into the sim_params structure,
then clear out everything and repeat |
17:30.29 |
abhi2011 |
that is why you see a for loop in line
503 |
17:30.37 |
abhi2011 |
but its commented out ! |
17:31.03 |
abhi2011 |
my fault, i think that was for debugging
something ! |
17:31.07 |
elf_ |
yes wanted to ask you about those commented
lines |
17:31.30 |
abhi2011 |
so simulate has actually been executing just 1
step :P |
17:31.38 |
abhi2011 |
not 100k |
17:32.22 |
elf_ |
well it never really got to be executed 100k,
but I see your point |
17:32.23 |
abhi2011 |
the basic way in which the simulate command
works now is to load everything that need to be simulated into
sim_params structure |
17:32.37 |
abhi2011 |
pass it to run_simulation() |
17:33.02 |
abhi2011 |
there cram the shapes from sim_params into the
bullet dynamics world |
17:33.09 |
abhi2011 |
run the required number of steps |
17:33.22 |
abhi2011 |
grab the transforms at the end of each step
from bullet |
17:33.27 |
abhi2011 |
and put into sim_params |
17:33.58 |
abhi2011 |
only the last step's transforms actually
remain after the simulation |
17:34.12 |
*** join/#brlcad stas
(~stas@host-static-92-115-48-61.moldtelecom.md) |
17:34.14 |
abhi2011 |
the sim_params structure is then accessed back
in libged |
17:34.33 |
abhi2011 |
to read the transforms and update the shapes
in mged |
17:35.26 |
abhi2011 |
there are several improvements to this but I
had done it this particularly inefficient way to debug the contact
point generation algorithm which is what I was working on
last |
17:35.31 |
elf_ |
it makes sense, you are interested in the
initial position of the geometry when you start your simulation,
you don't want to save all the intermediate steps your geometry
finds itself during the simulation |
17:35.44 |
elf_ |
only the final state, you save it and then
pass it to libged |
17:35.44 |
abhi2011 |
thats right |
17:36.19 |
abhi2011 |
also, I don think there is a need to recreate
the simulation world each time and add the objects back |
17:36.33 |
abhi2011 |
but that can be corrected anytime |
17:36.38 |
elf_ |
what do you mean? |
17:36.50 |
abhi2011 |
so if you see the comented out for
loop |
17:37.03 |
abhi2011 |
it includes the creations and deletion fo the
bullet dynamics worls |
17:37.06 |
abhi2011 |
*world |
17:37.14 |
abhi2011 |
btDiscreteDynamicsWorld*
dynamicsWorld; |
17:37.15 |
elf_ |
yeah that must be done outside |
17:37.22 |
abhi2011 |
yes |
17:37.25 |
elf_ |
no need for it to be done everytime |
17:37.29 |
abhi2011 |
it probably was outside |
17:37.40 |
abhi2011 |
I may have moved it in to debug a single
step |
17:37.42 |
abhi2011 |
anyway |
17:37.48 |
abhi2011 |
what you can do right now |
17:37.59 |
abhi2011 |
is remove the comments |
17:38.11 |
abhi2011 |
move the world creation stuff out of the
loop |
17:38.20 |
abhi2011 |
so we are only stepping inside the
loop |
17:38.23 |
abhi2011 |
and doing nothing else |
17:38.37 |
abhi2011 |
then use the get_transforms() after the loop
body |
17:38.45 |
abhi2011 |
to get back te transforms into
sim_params |
17:38.55 |
elf_ |
hmm sounds good |
17:38.57 |
abhi2011 |
and see if things move a bit faster in
mged |
17:38.58 |
elf_ |
let me try it |
17:39.03 |
abhi2011 |
:P |
17:39.44 |
abhi2011 |
the cleanup() should be kept |
17:39.53 |
abhi2011 |
after get_transforms() |
17:45.09 |
elf_ |
damn I get a weird warning, that I didn't get
before... |
17:45.51 |
abhi2011 |
which is ? |
17:45.56 |
elf_ |
the size variable is being shadowed
O.O |
17:45.57 |
elf_ |
/usr/local/include/bullet/LinearMath/btSerializer.h:538:36:
instantiated from here |
17:45.57 |
elf_ |
/usr/local/include/bullet/LinearMath/btAlignedObjectArray.h:102:27:
warning: declaration of size shadows a member of 'this'
[-Wshadow] |
17:45.58 |
elf_ |
/usr/local/include/bullet/LinearMath/btAlignedObjectArray.h: In
member function void* btAlignedObjectArray<T>::allocate(int)
[with T = const char*]: |
17:45.58 |
elf_ |
/usr/local/include/bullet/LinearMath/btAlignedObjectArray.h:287:31:
instantiated from void
btAlignedObjectArray<T>::reserve(int) [with T = const
char*] |
17:46.14 |
abhi2011 |
thats in bullet |
17:46.16 |
abhi2011 |
hmm |
17:46.46 |
abhi2011 |
lt me check that line |
17:46.54 |
abhi2011 |
name collision maybe |
17:47.53 |
*** join/#brlcad merzo
(~merzo@201-246-92-178.pool.ukrtel.net) |
17:48.48 |
elf_ |
it was my fault |
17:49.19 |
elf_ |
forgot when I modified step_physics I modified
the way the output it was displayed |
17:49.29 |
abhi2011 |
ok |
17:54.22 |
elf_ |
not good, not good at all, now it gets aborted
if I run simulate > 100 which is not good |
17:54.50 |
abhi2011 |
whats happens for < 100 ? |
17:56.22 |
elf_ |
it ran its course |
17:56.26 |
elf_ |
so it worked |
17:56.36 |
elf_ |
but trying with more than 100 it's not
working |
17:56.40 |
abhi2011 |
did the shapes get updated in mged ? |
17:57.40 |
elf_ |
it did |
17:59.07 |
abhi2011 |
ok is the movement significant |
17:59.12 |
abhi2011 |
or still very small ? |
18:00.27 |
abhi2011 |
hmm I see in simulate.c that I do have a
loop |
18:00.34 |
elf_ |
okay so I think the cube it actually falls out
of the simulation for more than 120 or so steps |
18:00.42 |
abhi2011 |
which calls run_simulation() |
18:01.02 |
abhi2011 |
that should not happen |
18:01.06 |
elf_ |
let me try something I have to recreate the .g
files cause the db gets corrupt after the cube falls into the
ground |
18:01.21 |
elf_ |
and the movement is significant |
18:01.40 |
abhi2011 |
ok and I also see that there is a loop in
simulate.c |
18:01.53 |
abhi2011 |
thats calls run_simulation |
18:02.09 |
abhi2011 |
you can comment out that loop for
now |
18:02.26 |
abhi2011 |
thats causing the huge number of
steps |
18:02.58 |
abhi2011 |
if you see in simulate.c 431 |
18:03.13 |
abhi2011 |
there is a loop there already |
18:03.30 |
abhi2011 |
just comment out that loop for now |
18:13.15 |
elf_ |
The loop on line 431 in simulate.c it's
actually the one that simulates things, it can't be commented
out |
18:13.34 |
elf_ |
get_bb: Got the BB for "sim_gp.r" as min
{-15000.000000 -15000.000000 -1000.000000} max {15000.000000
15000.000000 1000.000000} |
18:13.35 |
elf_ |
get_bb: Dimensions of this BB : 30000.000000
30000.000000 2000.000000 |
18:13.35 |
elf_ |
get_bb: Got the BB for "sim_cube.r" as min
{-1000.000000 -1000.000000 49000.000000} max {1000.000000
1000.000000 51000.000000} |
18:13.35 |
elf_ |
get_bb: Dimensions of this BB : 2000.000000
2000.000000 2000.000000 |
18:13.49 |
elf_ |
That's the output I get with the whole loop
commented out |
18:14.02 |
elf_ |
and the position is not actually
modified |
18:14.24 |
elf_ |
for simulate 80 |
18:15.58 |
abhi2011 |
yeah, what I meant is either the loop in
simulate.c is kept or the one in simphysics.cpp |
18:17.05 |
abhi2011 |
if both are kept, then the number of steps
executed is more than |
18:17.22 |
abhi2011 |
its = sim_params->duration *
sim_params->duration |
18:17.30 |
abhi2011 |
which is not what we want |
18:17.47 |
elf_ |
yeah, the one in simphysics.cpp has to go
then |
18:17.55 |
abhi2011 |
yep :P |
18:18.01 |
abhi2011 |
sorry to mislead you on that one |
18:18.14 |
abhi2011 |
I had forgotten there was a loop in
simulate.c |
18:18.25 |
elf_ |
so we are basically to the beginning, cause if
the loop in symphisics.cpp go then nothing changed |
18:19.12 |
abhi2011 |
yep, but we know now that the simulation does
work |
18:19.53 |
abhi2011 |
the difference in having the loop in simulate
rather than in simphysics.cpp |
18:20.03 |
abhi2011 |
is that by having the loop in
smulate.c |
18:20.28 |
abhi2011 |
the entire bullet world is recreated each
time |
18:20.57 |
abhi2011 |
but that should not cause the cube to fall
slower |
18:21.09 |
abhi2011 |
because the velocity information gained from
the last step |
18:21.30 |
abhi2011 |
is put into the cube in the current step
before being stepped |
18:22.03 |
elf_ |
well I am running right now the simulate
command on the database I sent to you, and the steps are tiny again
for the m units |
18:22.22 |
elf_ |
I am waiting to see if it aborts for the 10k
steps simulate |
18:22.50 |
abhi2011 |
I think the reason the steps are tiny is
because |
18:22.58 |
abhi2011 |
the linear velocity gained in the last sim
step |
18:23.10 |
abhi2011 |
is not being set in the beginning of the next
step |
18:23.34 |
abhi2011 |
this has to be done manually, because now we
are recreating the bullet world at each step |
18:23.40 |
abhi2011 |
and re-adding the rigid bodies |
18:23.47 |
elf_ |
hmm but if that were the case then wouldn't
the same thing happen for mm too? |
18:24.02 |
abhi2011 |
mm ? |
18:24.36 |
elf_ |
milimeters |
18:24.49 |
elf_ |
and I am simulating for meters now |
18:25.33 |
elf_ |
In the mm geometry there wasn't such a problem
as the linear velocity not being set for the next step |
18:25.54 |
elf_ |
or maybe the units are way too small to
observe the difference |
18:25.58 |
abhi2011 |
yes |
18:26.04 |
elf_ |
and the simulation aborted for 10k |
18:26.11 |
elf_ |
trying a lower number |
18:26.14 |
abhi2011 |
bullet uses a 0.04 meters as the collision
margin |
18:26.22 |
abhi2011 |
its cant simulate for less then that |
18:26.59 |
abhi2011 |
I dont think testing with mm will work at the
moment |
18:27.14 |
abhi2011 |
I didnt even know the units could be changed
at all :P |
18:27.24 |
abhi2011 |
bullet uses only meters |
18:27.34 |
elf_ |
well the distance between the ground plane and
the cube in the mm sim was 50mm so about 0.05m |
18:27.45 |
abhi2011 |
yep |
18:27.51 |
elf_ |
the default it's mm, at least in the build I
got |
18:27.53 |
abhi2011 |
thats the collision margin |
18:27.59 |
abhi2011 |
ok |
18:28.20 |
abhi2011 |
yeah mged can show objects in the mm
range |
18:28.34 |
abhi2011 |
but bullet does not simulate at those low
dimensions |
18:29.05 |
elf_ |
I see |
18:29.24 |
elf_ |
so the mm simulation it's kinda compromised
then, meaning the results from there are not conclusive |
18:29.25 |
abhi2011 |
in fact that bulet uses a 0.04 m collision
margin, it would be best to work with objects significantly
bigger |
18:29.36 |
abhi2011 |
I dont think so |
18:29.51 |
abhi2011 |
*in fact since |
18:30.08 |
abhi2011 |
lets fix the unit as meters for now |
18:31.00 |
abhi2011 |
if required bullet can be compiled with double
precision and may work with smaller units |
18:31.10 |
abhi2011 |
but thats for later |
18:31.48 |
elf_ |
okay so I ran the simulation for 5500 steps
and the cube was pretty close to the ground |
18:32.08 |
abhi2011 |
did it fall at all ? |
18:32.10 |
elf_ |
then I wanted to see how much closer can I get
it so I ran it for another 800 steps |
18:33.01 |
elf_ |
the cube went back to the top and started
falling again to the ground |
18:34.37 |
elf_ |
like this |
18:34.39 |
elf_ |
http://imageshack.us/a/img17/2627/simlw.png |
18:35.08 |
elf_ |
see the doubling of the cube up
there |
18:35.24 |
elf_ |
the original cube the one above and the cube
that's falling again to the ground |
18:35.40 |
elf_ |
at least now I know where it goes when I think
it "disappears" |
18:36.23 |
abhi2011 |
ok |
18:36.41 |
abhi2011 |
isnt there any movement when run for 300
steps |
18:36.49 |
abhi2011 |
or less ? |
18:37.40 |
elf_ |
I am doing that right now, running it for 5800
steps |
18:37.49 |
abhi2011 |
no i mean |
18:37.52 |
abhi2011 |
simulate 300 |
18:38.03 |
elf_ |
just 300? |
18:38.28 |
abhi2011 |
yes |
18:40.00 |
elf_ |
this is it |
18:40.00 |
elf_ |
http://imageshack.us/a/img839/2403/sim2g.png |
18:40.08 |
elf_ |
no big change for the cube position |
18:40.41 |
abhi2011 |
hmm that definitely should not
happen |
18:41.04 |
abhi2011 |
300 steps is enough steps to see a large
change in the position |
18:41.47 |
elf_ |
I know but still nothing major
happens |
18:42.07 |
abhi2011 |
ok lets try fixing this first |
18:42.13 |
abhi2011 |
lets print out the position of the
cube |
18:42.46 |
abhi2011 |
so in get_transforms() |
18:42.54 |
abhi2011 |
in simphysics.cpp |
18:43.09 |
abhi2011 |
thats the function which get the transform
from bullet |
18:43.29 |
abhi2011 |
and puts it into a struct rigid_body |
18:44.21 |
elf_ |
okay, so I should be printing the BB position
in 3D space, right? |
18:44.25 |
abhi2011 |
sim_params has a linked list of struct rigid
body nodes |
18:44.28 |
abhi2011 |
yes |
18:45.10 |
elf_ |
the
current_node->btbb_center,current_node->btbb_min and
current_node->btbb_dims, right? |
18:45.36 |
abhi2011 |
print aabbMin |
18:45.40 |
abhi2011 |
thats directly from bullet |
18:47.10 |
abhi2011 |
also comment out line 522 |
18:47.17 |
abhi2011 |
in simphysics.cpp |
18:47.36 |
abhi2011 |
that will take the custom algorithm for
cube-cube collisions out of the icture |
18:48.49 |
abhi2011 |
also comment out lines |
18:49.01 |
abhi2011 |
537 to 546 |
18:49.30 |
elf_ |
the overlap filter callback? |
18:49.39 |
abhi2011 |
yes |
18:49.54 |
abhi2011 |
right upto gContactDestroyedCallback =
contact_destroyed; |
18:50.53 |
elf_ |
about the custom algorithm it is there for
when bullet it's not found? |
18:51.08 |
abhi2011 |
so now we are using the default bullet
algorithms for everything and have registered no
callbacks |
18:51.10 |
abhi2011 |
no its for |
18:51.20 |
abhi2011 |
using ray tracing to detect overlaps |
18:51.26 |
abhi2011 |
between arbitrary shapes |
18:51.31 |
abhi2011 |
its based on librt |
18:52.00 |
abhi2011 |
but we do not need it right now, since the
default bullet algos. should also work to move the cube |
18:52.16 |
abhi2011 |
if the cube is still too slow then we try
printing the cube position |
18:52.44 |
abhi2011 |
if the cube position is changing but mged is
not getting updated then there also it may appear that the cube is
not moving |
18:52.58 |
abhi2011 |
that means there is a problem mapping the
cube's position into the shape in mged |
18:53.31 |
abhi2011 |
so we need to go step by step to figure out
where the "apparent" slow down is happening |
18:53.46 |
abhi2011 |
one thing is certain |
18:53.56 |
abhi2011 |
the cube must fall much faster |
18:54.21 |
abhi2011 |
and it will collide too, since we are now
using bullet's own algos |
18:55.24 |
elf_ |
I get the shadowing error again |
18:56.53 |
elf_ |
http://paste.ubuntu.com/1221104/ |
18:59.34 |
abhi2011 |
revert your commented out lines and try to
find out which line being commented out cause the error |
19:00.19 |
elf_ |
I am on it |
19:03.46 |
abhi2011 |
hmm, getting some errors in the windows
build |
19:03.55 |
elf_ |
like? |
19:03.58 |
abhi2011 |
lets hope I can get it fixed |
19:04.04 |
abhi2011 |
got to do with some path not found |
19:07.36 |
abhi2011 |
http://paste.ubuntu.com/1221121/ |
19:07.44 |
abhi2011 |
52k lines of logs :P |
19:08.39 |
*** join/#brlcad elf
(~elf@213.233.85.6) |
19:08.58 |
elf |
grrr blackout so I only have batery for one
hour or so left |
19:09.52 |
*** join/#brlcad elf_
(~elf@213.233.85.6) |
19:10.20 |
abhi2011 |
ok, I ll continue working on it, its probably
something silly since the entire set of calls has worked
before |
19:11.26 |
elf_ |
prolly I am doing definitely something wrong
over here since I backed up my comments and now I get all kind of
weird errors like not finding anything when I try to compile mged
O.O |
19:11.44 |
abhi2011 |
just revert you changed files |
19:11.54 |
abhi2011 |
to the latest version |
19:11.58 |
abhi2011 |
in svn |
19:12.06 |
abhi2011 |
and start again |
19:12.19 |
abhi2011 |
thats the safest and fastest way sometimes
:P |
19:12.43 |
elf_ |
yeah that's what I did just now |
19:16.55 |
abhi2011 |
ok mged is runnig with bullet |
19:17.01 |
abhi2011 |
so I can at least test |
19:17.19 |
elf_ |
okay, I get the shadowing error because I
added the bu_vls_printf command... |
19:17.32 |
abhi2011 |
lets see if I can get a simple cube working
again with no extra stuff |
19:17.33 |
elf_ |
I don't understand why though? |
19:17.36 |
abhi2011 |
ah great |
19:17.56 |
abhi2011 |
check its source |
19:18.18 |
abhi2011 |
if you are using eclipse, you press F3
:P |
19:18.34 |
elf_ |
No, I don't use eclipse :) |
19:19.45 |
abhi2011 |
hehe |
19:20.10 |
abhi2011 |
bu.h then i think |
19:20.23 |
elf_ |
yeah |
19:20.48 |
abhi2011 |
in libboo |
19:24.13 |
elf_ |
something's off since bu_vls_printf doesn't
use any variable named size from what I can see |
19:25.13 |
abhi2011 |
those build errors are while building the
docs, so it should be ok |
19:25.14 |
abhi2011 |
hmm |
19:25.16 |
abhi2011 |
ok |
19:25.22 |
abhi2011 |
you can try with printf for now then |
19:26.49 |
abhi2011 |
hmm but I wonder why its happening
though |
19:27.00 |
abhi2011 |
i dont remember seeing that error before
either |
19:27.03 |
elf_ |
yeah printf will do for the moment |
19:27.20 |
elf_ |
It's strange cause I get it at random
times |
19:27.25 |
abhi2011 |
vls i think is for variable length
strings |
19:27.36 |
abhi2011 |
it may be using size somewhere in
there |
19:28.56 |
abhi2011 |
bu_vls_printf() prints these strings as they
are stored and maged differently from char[] i think |
19:29.04 |
abhi2011 |
*managed |
19:29.09 |
elf_ |
yeah and it uses a variable len |
19:29.22 |
elf_ |
What I meant by getting it at random
times |
19:29.24 |
elf_ |
it's that |
19:29.33 |
elf_ |
I commented line 522 |
19:29.34 |
elf_ |
I didn't get it |
19:29.49 |
elf_ |
then I commented line 537 and I get
it |
19:30.06 |
elf_ |
if I comment the whole block 537 to 546 I get
it |
19:35.13 |
*** join/#brlcad elf_
(~elf@213.233.85.6) |
19:35.56 |
abhi2011 |
ok, it passed in windows :P |
19:36.04 |
elf_ |
good :) |
19:36.13 |
abhi2011 |
hey what was the command for drawing a
comb |
19:36.36 |
abhi2011 |
darn i need that shrtcut list |
19:36.59 |
elf_ |
r to create a region |
19:37.12 |
elf_ |
I used regions and c for combs |
19:37.17 |
elf_ |
if I remmeber correctly |
19:37.32 |
elf_ |
I still can't figure what's this thing problem
is |
19:37.57 |
abhi2011 |
draw sim.c |
19:38.17 |
abhi2011 |
hmm, so there are other places where
bu_vls_printf is used |
19:38.23 |
elf_ |
I am taking out things from it, it shouldn't
give me errors when I take something that was there and wasn't
giving errors about shadowing variables |
19:38.58 |
abhi2011 |
whats your gcc version by the way |
19:39.14 |
abhi2011 |
it should not make a difference |
19:39.18 |
abhi2011 |
but lets see |
19:40.59 |
abhi2011 |
ah now I remember why we chose to recreate the
bullet world and add shapes again every time |
19:41.05 |
elf_ |
bu_log is used in those lines I want to get
out |
19:41.11 |
abhi2011 |
ok |
19:41.14 |
elf_ |
and I have the 4.6.1 version of gcc |
19:41.32 |
elf_ |
Why did you recreate the world every
time? |
19:41.57 |
elf_ |
and it should give me errors when I try to add
stuff... not when I take out stuff that it's standalone in
there... |
19:42.46 |
abhi2011 |
yeah |
19:42.48 |
abhi2011 |
hmm |
19:43.45 |
abhi2011 |
so which line in that entire bunch of lines in
simphysics.cpp |
19:43.51 |
abhi2011 |
cause the error |
19:44.36 |
elf_ |
starting with 537 |
19:44.53 |
elf_ |
I even commented out the whole broadphase_call
function.. |
19:44.56 |
elf_ |
didn't work obv |
19:46.54 |
abhi2011 |
ok so lets try to figure out if its the
presence of bu_log in other functions or the other bu_vls_printf()
for some reason |
19:47.02 |
CIA-68 |
BRL-CAD: 03Sean 07http://brlcad.org * r0
10/wiki/Special:Log/delete: deleted "[[Dog Collars - What You Need
To Know]]": spam |
19:47.10 |
CIA-68 |
BRL-CAD: 03Sean 07http://brlcad.org * r0
10/wiki/Special:Log/block: blocked [[User:MelinaoewoywpoqcLegge]]
with an expiry time of infinite (account creation disabled, e-mail
blocked): Spamming links to external sites |
19:47.33 |
abhi2011 |
so lets comment out all the bu_vls_printf()
lines |
19:47.40 |
abhi2011 |
and check |
19:47.48 |
abhi2011 |
then bu_logs and check |
19:48.13 |
elf_ |
in the whole simphysics, right? |
19:48.29 |
abhi2011 |
yep |
19:48.33 |
abhi2011 |
its a rute force way |
19:48.42 |
abhi2011 |
*brute |
19:50.01 |
elf_ |
I get the error here |
19:51.45 |
abhi2011 |
even after removing all the bus ? |
19:52.01 |
elf_ |
even after removing all of them |
19:52.49 |
abhi2011 |
dont remember seeing that -W shadow flag
before |
19:52.54 |
abhi2011 |
thats the one causing it |
19:53.03 |
abhi2011 |
will need to check with brlcad |
19:53.21 |
abhi2011 |
ok, so meanwhile |
19:53.29 |
elf_ |
where's the flag set? |
19:53.40 |
elf_ |
Sean? Are you around? |
19:53.44 |
abhi2011 |
it will be in one of the cmake files I
think |
19:54.02 |
abhi2011 |
the top level one |
19:54.10 |
abhi2011 |
anyway |
19:54.20 |
abhi2011 |
its a warning right ? |
19:54.40 |
abhi2011 |
so you are able to finish the compile
? |
19:54.47 |
abhi2011 |
oh but |
19:54.53 |
abhi2011 |
warning are flaggged as errors |
19:54.55 |
elf_ |
it's a warning but the warnings are
errors |
19:54.57 |
elf_ |
yeah |
19:54.58 |
elf_ |
that |
19:55.02 |
abhi2011 |
hmm |
19:55.05 |
abhi2011 |
:P |
19:55.30 |
abhi2011 |
so how about not commenting out the
lines |
19:55.37 |
abhi2011 |
but keeping the functions empty |
19:55.45 |
abhi2011 |
or putting a return as the 1st line |
19:56.10 |
abhi2011 |
till we fix this shadow warning |
19:56.29 |
abhi2011 |
we can put returns in the functions that the
commented out lines cause to be called |
19:56.45 |
abhi2011 |
so revert again :P |
19:57.01 |
elf_ |
done it already |
19:57.07 |
abhi2011 |
right |
19:57.11 |
elf_ |
and now the return statements |
19:57.18 |
elf_ |
for broadphase_callback |
19:57.43 |
abhi2011 |
ok, so at least line 522 is commented out
right ? |
19:58.02 |
elf_ |
yeah that one works |
19:58.07 |
abhi2011 |
538 ? |
19:58.30 |
elf_ |
nope bu_logs all over that one |
20:00.08 |
elf_ |
I might run out of battery, no energy yet
O.O |
20:00.36 |
abhi2011 |
ad removing the bu_logs from lines 329 to 383
makes no difference ? |
20:00.43 |
abhi2011 |
ok |
20:01.53 |
abhi2011 |
I also see that the mass of the body is set to
80000000 kgs |
20:01.55 |
abhi2011 |
in s3.g |
20:01.57 |
abhi2011 |
:P |
20:02.07 |
abhi2011 |
that will certainly stall the sim |
20:02.14 |
abhi2011 |
lets see if I can hard code the mass for
now |
20:02.18 |
elf_ |
It's not set to that |
20:02.21 |
elf_ |
I wanted to ask you about it
actually |
20:02.28 |
abhi2011 |
ok |
20:02.31 |
elf_ |
the mass of the body modifies DURING the
simulation |
20:02.34 |
elf_ |
that's wrong |
20:02.41 |
abhi2011 |
hmm |
20:02.58 |
elf_ |
The mass it's the same, the forces applied
should modify |
20:03.02 |
abhi2011 |
I dont remember pulling the mass from the
passed sim_params |
20:03.08 |
abhi2011 |
but let me check |
20:03.14 |
elf_ |
It gets passed wrong then |
20:03.30 |
abhi2011 |
i think I was just setting it proportional to
the aabb volume |
20:03.40 |
abhi2011 |
till the other issues got fixed |
20:03.54 |
elf_ |
Hmm |
20:04.06 |
elf_ |
let me run it again and see
something |
20:04.12 |
abhi2011 |
line 146 |
20:04.25 |
abhi2011 |
I ll try printing out the cube
position |
20:04.34 |
abhi2011 |
maybe there is a mapping problem back to
mged |
20:07.06 |
abhi2011 |
hmm, the volume is being calculated
incorrectly |
20:07.20 |
abhi2011 |
<PROTECTED> |
20:07.27 |
elf_ |
I see that in the simulation too |
20:07.31 |
abhi2011 |
to see if the cube collides properly |
20:07.46 |
elf_ |
I gt like 8000000000kg... |
20:08.22 |
abhi2011 |
yeah thats wrong |
20:08.33 |
abhi2011 |
i hardcoded it to 1 kg for now |
20:10.20 |
elf_ |
The hardcoded version is not working |
20:10.29 |
elf_ |
I did it too, put the mass to 1 kg |
20:10.33 |
elf_ |
but the cube is not movibg |
20:10.36 |
elf_ |
moving* |
20:10.54 |
abhi2011 |
whats the position thats printed ? |
20:10.58 |
elf_ |
the forces are not applied properly I think or
something somewhere goes really wrong |
20:11.03 |
elf_ |
the same as the previous one |
20:11.46 |
abhi2011 |
whats the linear and angular
velocities |
20:11.51 |
abhi2011 |
try printing out those 2 |
20:12.44 |
elf_ |
do you have a getLinearVelocity
function> |
20:12.45 |
elf_ |
? |
20:13.20 |
abhi2011 |
yes there is one like that |
20:13.31 |
abhi2011 |
its used in the get_transforms() |
20:16.16 |
elf_ |
can't print them.. the bu_vls_printf is not
working again |
20:16.16 |
elf_ |
grrr |
20:16.45 |
abhi2011 |
but printf does right ? |
20:19.01 |
elf_ |
it doesn't print it |
20:19.17 |
elf_ |
I don't think it ever gets on that else case
unless when it sets the mass |
20:20.33 |
abhi2011 |
hmm but the condition simple says that if the
name of the object is not the same as the ground plane
name |
20:20.36 |
abhi2011 |
then goto else |
20:20.57 |
abhi2011 |
print both current_node->rb_namep and
sim_params->ground_plane_name |
20:21.12 |
abhi2011 |
before the if{} |
20:21.12 |
elf_ |
It doesn't print this though
printf("LinearVelocity %f AngularVelocity %f\n",
current_node->linear_velocity,
current_node->angular_velocity); |
20:21.34 |
abhi2011 |
ok, but it enters the else {} ? |
20:21.53 |
elf_ |
The mass it |
20:22.18 |
elf_ |
s always the same so the thing that modifies
is the velocity |
20:22.18 |
elf_ |
it |
20:22.21 |
elf_ |
<PROTECTED> |
20:23.44 |
abhi2011 |
hmm, if get_transforms() gets called and there
is a print statement there |
20:23.54 |
abhi2011 |
then it should print the velocity |
20:24.22 |
abhi2011 |
can you trying adding a print
statement |
20:24.30 |
elf_ |
Okay the velocities are both 0 |
20:24.34 |
abhi2011 |
at the beginning of get_transforms() |
20:24.34 |
elf_ |
So that's not good |
20:24.43 |
abhi2011 |
so after 2 steps also |
20:24.49 |
abhi2011 |
the velocity is 0 ? |
20:25.44 |
elf_ |
http://paste.ubuntu.com/1221254/
there it doesn't move |
20:25.53 |
elf_ |
The velocity is 0 |
20:25.53 |
abhi2011 |
ok |
20:25.54 |
elf_ |
both of them |
20:27.02 |
abhi2011 |
bbmin is really wierd |
20:27.38 |
abhi2011 |
ok lets hardcode the dimensions too |
20:27.51 |
elf_ |
BBmax is weird too since the cube position is
-1 1 -1 1 49 51 |
20:27.52 |
abhi2011 |
that should be the last piece of info we are
transferring |
20:28.02 |
abhi2011 |
yeah its not getting transferred |
20:28.06 |
abhi2011 |
correctly |
20:28.07 |
elf_ |
nope |
20:28.19 |
abhi2011 |
change line 102 |
20:28.39 |
abhi2011 |
make it new btBoxShape(btVector3(10, 10,
10)); |
20:29.28 |
abhi2011 |
also same change in line 108 |
20:29.46 |
abhi2011 |
current_node->bb_dims[*]/2 with
10.0f |
20:29.52 |
abhi2011 |
or 10 watever |
20:30.14 |
abhi2011 |
this is the dimension of the ground
plane |
20:30.30 |
abhi2011 |
it may not match what we have in
mged |
20:30.35 |
abhi2011 |
but that doesnt matter |
20:30.59 |
abhi2011 |
we are going to test only whether positions
get transferred correctly |
20:32.28 |
abhi2011 |
then in line 138 |
20:32.50 |
abhi2011 |
this is the section for the dynamic
bodies |
20:33.02 |
abhi2011 |
make the dimensions 1,1,1 |
20:34.23 |
abhi2011 |
I ll pastebin the changes |
20:37.57 |
*** join/#brlcad elf
(~elf@92.80.23.248) |
20:38.59 |
*** join/#brlcad elf_
(~elf@92.80.23.248) |
20:39.08 |
elf_ |
damn sorry abhi, just send you an email but I
got power back |
20:39.31 |
elf_ |
so yeah back to that simphysics.cpp
file |
20:49.51 |
elf_ |
This thing is getting stranger by the moment
imo... |
20:50.19 |
elf_ |
here's what the simulation looks like after
the changes, hard-codding the dimensions and the mass of the
cube |
20:50.20 |
elf_ |
http://imageshack.us/a/img20/4735/test2r.png |
20:50.28 |
elf_ |
http://paste.ubuntu.com/1221285/ |
20:50.40 |
elf_ |
it was ran for 30 steps... |
20:52.27 |
elf_ |
brlcad, do you have any opinion about this?
O.o |
23:31.49 |
*** join/#brlcad KimK
(~Kim__@wsip-184-176-200-171.ks.ks.cox.net) |