-
Notifications
You must be signed in to change notification settings - Fork 105
Demo/alex nov 2025 #1121
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
Demo/alex nov 2025 #1121
Conversation
…real world testing (#1063) * Settup logging to work on both the high and low level process, fixed a couple of bugs in the starting, and naming of the thing * This shouldn't be a hard coded value, neesds to be the cell size from the parameters * Shrink height map to reduce networking lag * Adjust realsense transform, adjust local logging for testing * Tested more of the logging onboard. Update is either the server, or the intraprocess logger, not both. Optimized the IntraprocessYoVariableLogger so now the longest part is compressing the data before it gets written to disk * Fix gradle deploy, remove link in warning prints * Fix VR finger streaming. --------- Co-authored-by: Alexander OCU <rosie@ihmc.org> Co-authored-by: VR-OCU <lpenco@ihmc.org>
# Conflicts: # ihmc-avatar-interfaces/src/main/java/us/ihmc/avatar/logging/IntraprocessYoVariableLogger.java # ihmc-avatar-interfaces/src/main/java/us/ihmc/avatar/wholeBodyHardwareControl/AvatarMultiThreadingFactory.java # ihmc-interfaces/src/main/messages/ros1/behavior_msgs/msg/BehaviorTreeNodeDefinitionMessage.msg # ihmc-interfaces/src/main/messages/ros1/behavior_msgs/msg/BehaviorTreeStateMessage.msg # ihmc-interfaces/src/main/messages/ros1/behavior_msgs/msg/FootstepPlanActionStateMessage.msg # ihmc-robot-data-visualizer/src/main/java/us/ihmc/robotDataVisualizer/logger/localLogging/LocalLoggingTools.java
# Conflicts: # ihmc-interfaces/src/main/messages/ihmc_interfaces/behavior_msgs/msg/BehaviorTreeSceneObjectStateMessage.msg # ihmc-interfaces/src/main/messages/ihmc_interfaces/behavior_msgs/msg/BehaviorTreeSceneStateMessage.msg # open-alexander/src/main/java/us/ihmc/openAlexander/parameters/controller/OpenAlexanderWalkingControllerParameters.java
This reverts commit ca073ed.
* 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>
* fixed the reachability constraint return * properly reset the feedback conditions for the ICP feedback
* set up the buttons for whether the steps are adjustable * added a swing height slider to rdx
Co-authored-by: Alexander OCU <rosie@ihmc.org>
* Fix Ability hand VR rotator streaming. * Catch exception in intraprocess writer compression thread and also check that the directory is usable * Minor * Minor * Revert thing * Switch CountDownLatch to object wait/notify --------- Co-authored-by: Duncan Calvert <dcalvert@ihmc.us> Co-authored-by: ihmc-rosie-windows <rosie@ihmc.org>
… up the UI for RDX with CSG, and removed a duplicate updater. (#1116) * Fix Ability hand VR rotator streaming. * Fix the bugs with the CSG and the height map, and more * made csg rdx panel buttons for snapping to heightmap and accounting for ground height drift/footstep z error --------- Co-authored-by: Duncan Calvert <dcalvert@ihmc.us> Co-authored-by: ihmc-rosie <rosie@ihmc.us> Co-authored-by: Alexander OCU <rosie@ihmc.org>
* Add option to parameters to tune the minimum acceptable depth values * Tuned value * Update transform and parameter for swing --------- Co-authored-by: ihmc-rosie-windows <rosie@ihmc.org>
#1120) Co-authored-by: nkitchel <nkitchel@ihmc.org>
| pluginFactory.addFootstepValidityIndicator(footstepValidityIndicator); | ||
|
|
||
| csgCommandInputManager.addCSGParametersCommandConsumer(csgParameters -> environmentalConstraints.setSnapToHeightMap(csgParameters.getRequestSnapToHeightmap())); | ||
|
|
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 allows you to set this option from a message, so from RDX for example
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 seemed to work, when I unplugged the USB with the controller running, it printed warnings but didn't crash the controller!
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.
These were intentional spacing changes
|
|
||
| solver.resetCoPFeedbackConditions(); | ||
| solver.resetFeedbackDirection(); | ||
| solver.resetFeedbackConditions(); |
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.
One reset now
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 explained here: #1110
|
|
||
| // Early exit for invalid depth | ||
| if (depth < 0.52f) | ||
| if (depth < params[MIN_DEPTH_TO_ACCEPT]) |
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.
Tunable parameter now
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.
Explained here: ahttps://github.com//pull/1107
| { | ||
| D457_TO_CHEST_TRANSFORM.getTranslation().set(0.081, 0.09, 0.087); | ||
| EuclidCoreMissingTools.setYawPitchRollDegrees(D457_TO_CHEST_TRANSFORM.getRotation(), 0.0, 28.0, 0.0); | ||
| D457_TO_CHEST_TRANSFORM.getTranslation().set(0.081, 0.04, 0.087); |
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.
Tuned transform for latest mount on hardware
| public double getMinHeightDifferenceForStepUpOrDown() | ||
| { | ||
| return 0.1; | ||
| return 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.
Tuned
|
|
||
| // TODO Needs tune up. | ||
| private final double neckJointspaceWeight = 0.0; | ||
| private final double neckJointspaceWeight = 50.0; |
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.
Tuned
| private final AtomicInteger ticksSinceUpdatingTheEnvironment = new AtomicInteger(0); | ||
|
|
||
| // ROS 2 stuff | ||
| // TODO: Destroy these objects properly |
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 we address the TODO and shut down the ROS 2 stuff?
| public ROS2HeartbeatMonitor(ROS2Node ros2Node, ROS2Topic<Empty> heartbeatTopic) | ||
| { | ||
| ros2Node.createSubscription2(heartbeatTopic, this::receivedHeartbeat); | ||
| ros2Node.createSubscription(heartbeatTopic, this::receivedHeartbeat); |
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.
How come we switched this from createSubscription2 to createSubscription?
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.
Also btw this probably does not need to be synchronized. I would remove that
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.
How come we switched this from createSubscription2 to createSubscription?
To make it garbage free, so we can use this class in the controller code (added to CSG in this PR).
And yeah, I don't know why it receiveHeartbeat is synchronized
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 agree it doesn't need to be synchronized because timer#reset is effectively atomic
public void reset()
{
resetTime = Conversions.nanosecondsToSeconds(System.nanoTime());
}
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.
Sounds good
| */ | ||
| private static final double THROTTLER_THREAD_HERTZ = 11.0; | ||
|
|
||
| public static final ROS2Topic<Empty> CSG_HEARTBEAT_TOPIC = new ROS2Topic<>().withPrefix("ihmc") |
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.
There is a situation with the heartbeat where you can't start the CSG in SCS2 without pressing the heart beat as well, probably want to fix that
React
There's a YoBoolean to override the heartbeat requirement. Look here. I haven't actually tested it, but the logic seems sound to me.
| public ROS2HeartbeatMonitor(ROS2Node ros2Node, ROS2Topic<Empty> heartbeatTopic) | ||
| { | ||
| ros2Node.createSubscription2(heartbeatTopic, this::receivedHeartbeat); | ||
| ros2Node.createSubscription(heartbeatTopic, this::receivedHeartbeat); |
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.
How come we switched this from createSubscription2 to createSubscription?
To make it garbage free, so we can use this class in the controller code (added to CSG in this PR).
And yeah, I don't know why it receiveHeartbeat is synchronized
| float64 current_turn_max_angle_inward | ||
| float64 current_turn_max_angle_outward | ||
|
|
||
| bool are_steps_adjustable |
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.
why does this one have a newline and the other doesn't
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 lol
calvertdw
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.
Looks good to me. I didn't review the walking control related parts.
No description provided.