Help for a thesis work

francesco.fz
Posts: 4
Joined: Thu Jan 21, 2016 6:07 pm

Help for a thesis work

Post by francesco.fz »

Hi, I'm a student at Polytechnic School in Napoli. I need an help for my thesis work. My intention is to implement a different kind of collision detection algorithm using Bullet. The algorithm that I would like to use is the one proposed by Fukuhara in his paper:
Proposition and evaluation of a collision detection method for real time surgery simulation of opening a brain fissure (http://robomechjournal.springeropen.com ... 014-0006-7).

The problem is that i don't know which section of the Bullet code I should modify.
At the moment this is my initialization:

Code: Select all

void SoftBodyDemo::InitializePhysics() {
		// create the collision configuration
		m_pCollisionConfiguration = new btSoftBodyRigidBodyCollisionConfiguration();

		// create the dispatcher
		m_pDispatcher = new btCollisionDispatcher(m_pCollisionConfiguration);
	
		// create the broadphase
		m_pBroadphase = new btDbvtBroadphase();
	
		// create the constraint solver
		m_pSolver = new btSequentialImpulseConstraintSolver();
	
		// create the softbody world
		m_pWorld = new btSoftRigidDynamicsWorld(m_pDispatcher, m_pBroadphase, m_pSolver, m_pCollisionConfiguration);
	
		// typecast the world and store it for future usage
		m_pSoftBodyWorld = (btSoftRigidDynamicsWorld*)m_pWorld;
	
		// initialize the world info for soft bodies
		m_softBodyWorldInfo.m_dispatcher = m_pDispatcher;
		m_softBodyWorldInfo.m_broadphase = m_pBroadphase;
		m_softBodyWorldInfo.m_sparsesdf.Initialize();
	
		CreateObjects();
	}
Could someone help me? Thanks
Evan407
Posts: 22
Joined: Sun Jan 17, 2016 2:37 am

Re: Help for a thesis work

Post by Evan407 »

From the manual
A collision dispatcher iterates over each pair, searches for a matching collision algorithm based on the types of objects involved and executes the collision algorithm computing contact points.
so I'm guessing btCollisionDispatcher. hope this helped
Basroil
Posts: 463
Joined: Fri Nov 30, 2012 4:50 am

Re: Help for a thesis work

Post by Basroil »

Yes, you'll need a new dispatcher and narrowband collision detector. Take a look at the default collision dispatcher and the hull-hull narrowband collision code, those should give you an idea of how to move forward

Do note that this type of system is nearly impossible to implement in real time without serious computing power. That group recently moved over to Hokudai entirely, and I visited their lab a while ago. Their setup involved 5-6 two way xeon 8 cores with two tesla units each! And even that was only good enough for ~30Hz. Now, most of that was to get Ansys results in real-time, but their physx overlay took a ton of time too.
francesco.fz
Posts: 4
Joined: Thu Jan 21, 2016 6:07 pm

Re: Help for a thesis work

Post by francesco.fz »

Hi,
Is this high level of complexity due to the algorithm itself or to the model, choosen for the soft body?
Thanks
Basroil
Posts: 463
Joined: Fri Nov 30, 2012 4:50 am

Re: Help for a thesis work

Post by Basroil »

francesco.fz wrote:Hi,
Is this high level of complexity due to the algorithm itself or to the model, choosen for the soft body?
Thanks
Bit of both, but mostly the soft body. For medical work you really need full FEM and feedback of that FEM result into your collision mesh. After all, without that feedback it's just a piecewise rigid body