goretkin / Bullet.jl

10 stars 1 forks source link

"Rotations" no longer defined on CoordinateTransformations #2

Open wbthomason opened 3 years ago

wbthomason commented 3 years ago

This line https://github.com/goretkin/Bullet.jl/blob/ed9072b0f2a3f7be2660a64b8698aaf3cfb9fe00/src/bullet_julia_types.jl#L9 now seems to cause an error on package load because Rotations is not defined on CoordinateTransformations (possibly due to https://github.com/JuliaGeometry/CoordinateTransformations.jl/pull/63 or related).

goretkin commented 3 years ago

Thanks! Yeah, that seems to be exactly the reason why.

Are you using this package? I am not currently developing it, but would certainly welcome contributions / encourage a fork.

wbthomason commented 3 years ago

I was trying it out - I'd love to use Julia for writing robot planners, but I haven't found a good package for collision checking yet. I use Bullet in C++ and Python, so I'd be interested in wrapping it for Julia. This seemed like it might be a good option.

Do you think the changes necessary to get this package working would be minimal, or might it be better to start from a blank slate?

goretkin commented 3 years ago

Do you think the changes necessary to get this package working would be minimal, or might it be better to start from a blank slate?

Getting the C interface working I'd say is pretty minimal. The package also demonstrates how to access Bullet with Cxx, and this is harder to get working.

The C interface, if I'm recalling, is via Bullet's "command processor". So there's some overhead. Whether this is significant for the purposes of collision checking, I'm not sure, but I do prefer the idea of accessing the functions directly, instead of using Bullet's bespoke IPC.

I came across https://github.com/ros-industrial-consortium/tesseract/tree/master/tesseract_collision . I think they perhaps copied Bullet and FCL collision checking code (or do they just interface to it? I didn't grasp it.) In any case, it might be worth interfacing to that instead, using CxxWrap.jl. (On the other hand, it's convenient that Bullet let's you, in addition to performing collision checking, also load URDFs and visualize them.)

A side issue is that anything that uses Bullet should really rely on https://github.com/JuliaPackaging/BinaryBuilder.jl . It looks like I had tried but ran into some issue due to OpenGL:

https://github.com/goretkin/Bullet.jl/blob/ed9072b0f2a3f7be2660a64b8698aaf3cfb9fe00/deps/binary_builder_deployer.jl#L1-L17

I don't know if that issue still persists today.

wbthomason commented 3 years ago

Thanks, this is all very helpful! If I end up having time to try either fixing this package or making my own Bullet wrapper, I'll let you know!

Feel free to close this issue if you'd like, or leave it in case anyone else comes along trying to use/revive the package.