Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"Rotations" no longer defined on CoordinateTransformations #2

Open
wbthomason opened this issue Apr 8, 2021 · 4 comments
Open

"Rotations" no longer defined on CoordinateTransformations #2

wbthomason opened this issue Apr 8, 2021 · 4 comments

Comments

@wbthomason
Copy link

This line

using CoordinateTransformations.Rotations: Quat
now seems to cause an error on package load because Rotations is not defined on CoordinateTransformations (possibly due to JuliaGeometry/CoordinateTransformations.jl#63 or related).

@goretkin
Copy link
Owner

goretkin commented Apr 8, 2021

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
Copy link
Author

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
Copy link
Owner

goretkin commented Apr 9, 2021

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:

#=
I haven't worked out how to use BinaryBuilder for Bullet, because of the OpenGL dependency.
This is a stop-gap. You will have to manually deploy to GitHub.
=#
import BinaryBuilder: triplet, platform_key_abi, package
import BinaryProvider: Prefix
archive_dir = triplet(platform_key_abi())
mkpath(archive_dir)
for d = ["data", "include", "lib"]
cp(joinpath("usr", d), joinpath(archive_dir, d), force=true)
end
package(Prefix(archive_dir), "Bullet", VersionNumber("0.0.0"))

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

@wbthomason
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants