-
Notifications
You must be signed in to change notification settings - Fork 21
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
Warn about failure to retrieve multi-robot calib data #54
Comments
If TF broadcasting is not enabled, we might prefer to ignore the failure instead of asserting on it. |
@ted-miller: my M+ SDK API manual doesn't mention Does it return an error for single-group systems? What about multi-robot systems for which the calibration hasn't been performed? Would that result in what is described in Incorrect transform tree origin with multi-robot setups? If so: can we make this a fatal error? If not, should we perhaps raise an alarm, but just make it informational? |
Neither does mine.
I would expect that it does.
Yes. That's how I got that image which was used in the RIC presentation.
I'm definitely against making it fatal. (And I'm just now realizing the title of this issue...)
I don't know. Frankly, I could argue against this entire issue... If the robot's are all working directly together, then it is very likely that the calibration won't be performed. For instance, in a configuration like this, the robots might be calibrated to the positioner (but possibly not), but it's unlikely that they would be calibrated to each other. Although the lack of calibration would certainly interfere with visualization, I'm assuming that someone could manually add an offset in the vis environment. |
Hm. But as a ROS user, I would be puzzled as to why my TF tree, which I configured MotoROS2 to broadcast for me, doesn't look right. And I would not know why that is, unless I happen to have read this in the known issues/ROS API sections. There would be no notice or warning from MotoROS2, even though the absence of such calibration data would prevent it from broadcasting a correct TF tree. We could gate the assert on whether To me, publishing TF without that robot<->robot calibration having been performed would not make sense, as anything using those transforms would find two (or more) colliding structures, which (fi) motion planners would not be happy about. |
I could go for that. (But I still think it should be non-fatal.) |
@ted-miller: could you clarify whether there is any relationship between how many motion groups there are, and how many calibration files there "should" be? Could it be the case all groups are calibrated against all others, resulting in a maximum of Additionally: if file And I don't quite understand this comment:
In general I would expect someone installing MotoROS2 to want to have TF correct (if TF broadcasting is enabled). If they haven't calibrated already, I'd consider calibrating part of the setup process for MotoROS2. But as discussed above, we could make raising alarms about this conditional upon whether |
Given the complexity, we may want to postpone implementing something to a later milestone. I suggest we move it to |
To clarify: we'd be OK with posting a non-fatal/non-asserting alarm in case:
? |
Yeah, I guess. |
See #169. |
I don't want to hold up the release of I've changed the milestone here to |
The current implementation silently ignores failure to call
mpGetRobotCalibrationData(..)
:motoros2/src/ControllerStatusIO.c
Lines 116 to 135 in 8c1a524
MotoROS2 won't crash if the call fails, but it will result in TF transforms being incorrect, which will surprise users of multi-robot systems (especially if they have performed the robot-to-robot calibration).
A new failure code should be defined and reported on the pendant.
The text was updated successfully, but these errors were encountered: