USC-ACTLab / crazyswarm

A Large Quadcopter Swarm
MIT License
328 stars 323 forks source link

Separate TF topics for mocap and pose logging #572

Open whoenig opened 2 years ago

whoenig commented 2 years ago

Currently we use the same TF topic for the mocap data and pose logging. This can cause jitter in rviz, see https://github.com/USC-ACTLab/crazyswarm/discussions/566. Ideally, we would switch to separate frame names to avoid confusion.

jpreiss commented 2 years ago

You mentioned in #566:

This [jitter] should have no effect on correct operation, since tf is only used for visualization purposes, not for actual computations.

I agree that is true for the Crazyswarm internally, but user scripts could be broken if they use Crazyflie.position() for computations, yes?

What if we do something like

Sources Available tf world pose topic
mocap only mocap N/A
mocap and onboard mocap onboard
onboard only onboard onboard

The pose topic always represents the onboard estimate (if logged) and the tf relative to world represents the best available pose estimate. Most scripts can continue using cf.position() oblivious to its source, while only those scripts comparing onboard estimates to "ground truth" need to do something special.