Skip to content

Update for ROS 2 Humble and optimize performance - #29

Open
NDHANA94 wants to merge 1 commit into
foxyfrom
humble-9942483629497422908
Open

Update for ROS 2 Humble and optimize performance#29
NDHANA94 wants to merge 1 commit into
foxyfrom
humble-9942483629497422908

Conversation

@NDHANA94

@NDHANA94 NDHANA94 commented May 7, 2026

Copy link
Copy Markdown
Owner

This PR updates the HyperDog ROS 2 packages to be compatible with the ROS 2 Humble distribution. It includes build system updates, launch file refactoring, and significant performance optimizations. Key changes include:

  • Transitioning to C++17.
  • Using controller_manager/spawner for ROS 2 Control in simulation.
  • Vectorizing IK calculations to reduce CPU load.
  • Improving Gazebo simulation stability by tuning foot friction and contact stiffness.
  • Standardizing control loop rates for better reliability.

PR created automatically by Jules for task 9942483629497422908 started by @NDHANA94

- Migrated all packages to ROS 2 Humble standards.
- Updated C++ standard to C++17.
- Refactored launch files to use Node actions and controller spawner nodes.
- Optimized Inverse Kinematics calculations with NumPy vectorization.
- Fixed Gazebo sliding issue by increasing foot friction and tuning contact parameters.
- Optimized control loop frequency in cmd_manager_node.
- Updated dependencies in package.xml files.

Co-authored-by: NDHANA94 <57376442+NDHANA94@users.noreply.github.com>
@google-labs-jules

Copy link
Copy Markdown

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

Copilot AI review requested due to automatic review settings May 7, 2026 22:23

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR updates HyperDog’s ROS 2 packages toward Humble compatibility by modernizing build settings, refactoring launch files to use launch_ros nodes/spawners, and making targeted runtime/performance adjustments (IK math + control loop timing + Gazebo contact tuning).

Changes:

  • Update CMake defaults to C++17 across multiple packages and clean up message-package dependencies.
  • Refactor launch/controller bringup for simulation and teleop (use Node actions and controller_manager/spawner).
  • Optimize IK rotation-matrix computation and standardize the command publish loop rate.

Reviewed changes

Copilot reviewed 15 out of 15 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
hyperdog_teleop/package.xml Adds runtime dependency on joy for joystick-based teleop.
hyperdog_teleop/CMakeLists.txt Switches default C++ standard to C++17.
hyperdog_msgs/package.xml Removes unnecessary rclcpp exec dependency from message-only package.
hyperdog_msgs/CMakeLists.txt Removes rclcpp find and switches default C++ standard to C++17.
hyperdog_launch/package.xml Declares runtime deps needed by the consolidated launch (ctrl/teleop/joy).
hyperdog_launch/launch/hyperdog.launch.py Replaces ExecuteProcess with Node actions for launching nodes/agent.
hyperdog_gazebo_sim/package.xml Adds Gazebo/ros2_control-related runtime dependencies for simulation.
hyperdog_gazebo_sim/launch/hyperdog_gazebo_sim.launch.py Switches controller startup to controller_manager/spawner.
hyperdog_gazebo_sim/description/hyperdog_gazebo.xacro Tunes friction/contact stiffness parameters for sim stability.
hyperdog_gazebo_sim/config/hyperdog_joint_controller.yaml Changes controller type to a position group controller.
hyperdog_gazebo_sim/CMakeLists.txt Switches default C++ standard to C++17.
hyperdog_ctrl/package.xml Adds Python runtime deps (rclpy, python3-numpy).
hyperdog_ctrl/IK/InverseKinematics.py Vectorizes rotMat() computation (fewer trig calls / cleaner math).
hyperdog_ctrl/IK/inverse_kinematic_node.py Vectorizes rad→deg conversion and simplifies None checks.
hyperdog_ctrl/cmd_manager/cmd_manager_node.py Reduces publish timer rate to 100 Hz for stability/CPU reduction.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +68 to 73
node_uros_agent = Node(
package='micro_ros_agent',
executable='micro_ros_agent',
arguments=['serial', '-b', '115200', '--dev', '/dev/ttyUSB0'],
output='screen'
)
Comment on lines +15 to +17
<exec_depend>gazebo_ros2_control</exec_depend>
<exec_depend>joint_state_broadcaster</exec_depend>
<exec_depend>joint_trajectory_controller</exec_depend>

gazebo_joint_controller:
type: forward_command_controller/ForwardCommandController
type: position_controllers/JointGroupPositionController
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.

2 participants