Update for ROS 2 Humble and optimize performance - #29
Conversation
- 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>
|
👋 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 New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
There was a problem hiding this comment.
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
Nodeactions andcontroller_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.
| node_uros_agent = Node( | ||
| package='micro_ros_agent', | ||
| executable='micro_ros_agent', | ||
| arguments=['serial', '-b', '115200', '--dev', '/dev/ttyUSB0'], | ||
| output='screen' | ||
| ) |
| <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 |
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:
controller_manager/spawnerfor ROS 2 Control in simulation.PR created automatically by Jules for task 9942483629497422908 started by @NDHANA94