Feature request: add_arrow()
It would be useful to have arrows as a primitive. Arrows are extremely common to use in robotics and vision:
- rays in perception
- forces (contact forces between rigid bodies, actuator forces like from thrusters/propellers)
- velocities (either commanded or actual)
- axes of rotation/angular velocities
And many more I'm sure. They're also a core primitive marker in similar visualisation software like rviz.
I'm aware we can add our own arrows if we import them as mesh, but I suspect it's a common enough usecase and that's enough friction that it's preferable to add them to viser.
Thanks!
Yeah, there are decisions that need to be made about how configurable we'd want this to be but I think we can/should do some variant of:
- Implement
add_arrow()andadd_batched_arrows()(similar API toadd_mesh_*()andadd_batched_meshes_*()) - Implement
add_arrows()(similar API toadd_line_segments) - Add an
arrowheads: np.ndarray | Noneargument toadd_line_segments(where the array input is a boolean mask? or perhaps a float array with arrowhead sizes?)
My personal preference is option 2 for what it's worth 😊 I don't think of arrows as specialised line segments and it feels more in line with the rest of the API on the specificity/reuse of methods on the Scene handler