Skip to content

Conversation

@PotatoPeeler3000
Copy link
Contributor

No description provided.

LuigiPenco93 and others added 30 commits September 4, 2025 13:13
…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
* 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>
rjgriffin42 and others added 10 commits November 18, 2025 15:44
* 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>
pluginFactory.addFootstepValidityIndicator(footstepValidityIndicator);

csgCommandInputManager.addCSGParametersCommandConsumer(csgParameters -> environmentalConstraints.setSnapToHeightMap(csgParameters.getRequestSnapToHeightmap()));

Copy link
Contributor Author

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

Copy link
Contributor Author

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!

Copy link
Contributor Author

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();
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One reset now

Copy link
Contributor Author

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])
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tunable parameter now

Copy link
Contributor Author

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);
Copy link
Contributor Author

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;
Copy link
Contributor Author

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;
Copy link
Contributor Author

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
Copy link
Contributor

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);
Copy link
Contributor

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?

Copy link
Contributor

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

Copy link
Contributor

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

Copy link
Member

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());
}

Copy link
Contributor

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")
Copy link
Contributor

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);
Copy link
Contributor

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
Copy link
Member

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

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure lol

Copy link
Member

@calvertdw calvertdw left a 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.

@ds58 ds58 self-requested a review November 21, 2025 19:47
@PotatoPeeler3000 PotatoPeeler3000 merged commit 99ba635 into develop Nov 21, 2025
60 of 67 checks passed
@PotatoPeeler3000 PotatoPeeler3000 deleted the demo/alex-nov-2025 branch November 21, 2025 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants