-
Notifications
You must be signed in to change notification settings - Fork 13.6k
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
Collision prevention: Option to enable flying outside FOV #13135
Conversation
@hamishwillee any input on parameter naming? I would of course update the docs if that gets in. |
FYI @jordancoult |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the new naming but I'll let @hamishwillee comment on that
@baumanta can you give this PR a more descriptive name? It's all gobbledygook to me. |
The new format is much better thank you. I'll look at the names individually. Also, have you guys thought about whether/how the UI needs to be informed about this case? [It might be that nothing changes] |
@@ -73,4 +73,14 @@ PARAM_DEFINE_FLOAT(MPC_COL_PREV_DLY, 0.4f); | |||
* @unit [deg] | |||
* @group Multicopter Position Control | |||
*/ | |||
PARAM_DEFINE_FLOAT(MPC_COL_PREV_CNG, 30.f); | |||
PARAM_DEFINE_FLOAT(MPC_CP_GUIDE_ANG, 30.f); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Guide doesn't feel quite right. I guess you're thinking of it like when you go 10 pin bowling and put up the guide rails to prevent the ball going into the gutter? I can't think of a better word though.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I was struggling a bit with that one too. I was thinking of how to explain best what influence the parameter has. And what that feature does, is help you navigate tight spaces or guide/ adjust your input slightly to fit the obstacle map. But could not come up with anything better either...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep. Perhaps "adjust" is better - so MPC_CP_ADJUST_ANG. Not sure enough to say we should change it.
I think it would be nice if we could ditch the MPC prefix, it would give us some more freedom with naming as we would have more letters. But I'm not sure whether this is possible from a parameter architecture point of view. Not sure who has insight in that, maybe @MaEtUgR ? |
We can ditch the MPC prefix without issues. |
Though as a reader is convenient to have immediate understanding that these are vehicle-specific parameters. That said, you get that from the group name. Did you think that group name is worth changing? |
I think it would be cool if we could group under "collision prevention" somehow. Maybe as you suggested MCP_DIST, MCP_DELAY, ... But maybe MCP is too close to MPC and confusing? |
|
For the parameter naming one thing to consider is if this could potentially be broken out of the FlightTask/mc_pos_ctrl and used in rover or if it's going to be tightly integrated with MC (directly using MPC_XY_P, MPC_JERK_MAX, etc). |
Long term I see this as definitely happening, and for fixed wing too if the sensors support it. This could even be used for multi-vehicle collaborative avoidance if tuned/tweaked correctly. There's been a lot of churn in the parameters recently. Technically the MPC_JERK_MAX can be fed in as parameters from whatever module is calling it, no reason from the collision prevention to use them directly. IMO: let's move the parameters to their own prefix, and get the pain over with now. |
One more slightly off topic note on this to think about for later is that we can afford to have collision prevention as a standalone module now. |
cab63a9
to
c7b385f
Compare
I renamed the parameters so they now live under the Collision Prevention group |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's get this in before 1.10. Already a couple of people asked about this feature
Co-Authored-By: Martina Rivizzigno <martina@rivizzigno.it>
This will also allow it to be decoupled from FMUv2 flash space issues. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a missing test from my side.
Also, this CP_GO_NO_DATA is pretty unsafe, because I think it might affect the failsafe behavior if one of multiple sensors fails. But I don't see a reasonable way around it, unless we tracked whether a bin had ever received data and then ignore the CP_GO_NO_DATA in that bin.
This PR reacts to a feature request from the community. Since the latest changes in collision prevention it was not possible anymore to move into directions where there is no sensor coverage. Now I added a boolean MPC_CP_GO_NODATA which is per default set to false but enables people to explicitly allow such movements.
In the process I renamed the parameters of the collision prevention. Witch the naming before, we had only three letters available to actually describe the function of the parameter, which I thought was not enough. Open for discussions on the naming front if there are any better ideas/ objections to the proposed names.