-
Notifications
You must be signed in to change notification settings - Fork 107
added the special case for the stairs #1109
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
Conversation
* started working on a fix for pelvis rotationd elays * rolled back on how the time in the phase is found, and started adding a decay factor so the feedforward values dont go to the moon * fixed a bound inclusiveness problem
#1105) * added some changes to prefer previous reachable regions to yield more consistent, smoother results * reverted line change --------- Co-authored-by: Nick Kitchel <59104880+PotatoPeeler3000@users.noreply.github.com>
Co-authored-by: Nick Kitchel <59104880+PotatoPeeler3000@users.noreply.github.com>
Co-authored-by: Nick Kitchel <59104880+PotatoPeeler3000@users.noreply.github.com>
* Make ROS2HeartbeatMonitor garbage free * Add heartbeats to CSG objects * Added destroy method to CSGROS2CommunicationHelper and cleaned up usage in the panel --------- Co-authored-by: Alexander OCU <rosie@ihmc.org> Co-authored-by: Nick Kitchel <59104880+PotatoPeeler3000@users.noreply.github.com>
| return true; | ||
| } | ||
|
|
||
| private RobotSide getSideCarryingMostWeight(Footstep leftFootstep, Footstep rightFootstep) |
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.
This is copied from transfer to standing.
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.
not sure how critical this method is and how important it is to accurately estimate the side with the most weight, but you can probably do a more accurate load comparison by using controllerToolbox.getFootSwitches().get(side).getMeasuredWrench().getLinearPartZ().
| supportingSide = getSideCarryingMostWeight(footstepLeft, footstepRight); | ||
| supportingSide = supportingSide == null ? RobotSide.LEFT : supportingSide; | ||
|
|
||
| TransferToAndNextFootstepsData transferToAndNextFootstepsDataForDoubleSupport = walkingMessageHandler.createTransferToAndNextFootstepDataForDoubleSupport(supportingSide.getOppositeSide()); |
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.
as it was, the hard coding didn't work well when the left foot led.
| extraToeOffHeight = feetManager.getExtraCoMMaxHeightWithToes(); | ||
|
|
||
| TransferToAndNextFootstepsData transferToAndNextFootstepsDataForDoubleSupport = walkingMessageHandler.createTransferToAndNextFootstepDataForDoubleSupport(supportingSide); | ||
| TransferToAndNextFootstepsData transferToAndNextFootstepsDataForDoubleSupport = walkingMessageHandler.createTransferToAndNextFootstepDataForDoubleSupport(supportingSide.getOppositeSide()); |
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.
Switched size, based on what I saw in the test.
* fixed the reachability constraint return * properly reset the feedback conditions for the ICP feedback
# Conflicts: # ihmc-common-walking-control-modules/src/main/java/us/ihmc/commonWalkingControlModules/highLevelHumanoidControl/plugin/CSGROS2CommunicationHelper.java # ihmc-common-walking-control-modules/src/main/java/us/ihmc/commonWalkingControlModules/highLevelHumanoidControl/plugin/StepGeneratorCommandInputManager.java # ihmc-high-level-behaviors/src/libgdx/java/us/ihmc/rdx/csg/RDXCSGPanel.java
| // by the "from" foot, as the | ||
| // way the phase variable works means we can approach what is meant to be swing on the "to" foot while still in the "from" foot. | ||
| if (Math.abs(transferToPosition.getX()) < 0.1 && endGroundHeight > startGroundHeight) | ||
| if (Math.abs(transferToPosition.getX()) < 0.1 && endGroundHeight > startGroundHeight && transferToPosition.getZ() > transferFromPosition.getZ() + 0.05) |
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.
0.1 and 0.05 are hard coded values. Need to look at what they actually mean and change it to a variable name
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.
Changed to have names describing the variables
| } | ||
| } | ||
|
|
||
| public void testSpecialStairs(boolean goingUp, |
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.
can you add a description to this test that indicates what makes these stairs special
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.
their mama told them they were special, stefan. That's all you need to know.
| if (holdDesiredHeightConstantWhenStanding) | ||
| { | ||
| comHeightManager.initializeToNominalDesiredHeight(); | ||
| supportingSide = RobotSide.LEFT; |
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.
Does Standing mean the doubleSupport?
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.
it is double support, yes. I'm not completely sure why it used the nomenclature supportSide, but it does
| Footstep footstepRight = walkingMessageHandler.getFootstepAtCurrentLocation(RobotSide.RIGHT); | ||
| RobotSide supportingSide = getSideCarryingMostWeight(footstepLeft, footstepRight); | ||
| supportingSide = getSideCarryingMostWeight(footstepLeft, footstepRight); | ||
| supportingSide = supportingSide == null ? RobotSide.RIGHT : supportingSide; |
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.
should the default be LEFT since that is usually our convention
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.
In this case, I don't really want to change what's there, since I'm worried about the other ramifications of that.
stefanfasano
left a comment
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.
Make sure to test on robot before merge, since minor controller conditions/heuristics were added/changed
No description provided.