Skip to content

Add a manipulator demo using Electron + rclnodejs#1264

Merged
minggangw merged 2 commits into
RobotWebTools:developfrom
minggangw:fix-1263
Sep 17, 2025
Merged

Add a manipulator demo using Electron + rclnodejs#1264
minggangw merged 2 commits into
RobotWebTools:developfrom
minggangw:fix-1263

Conversation

@minggangw

@minggangw minggangw commented Sep 17, 2025

Copy link
Copy Markdown
Member

This PR adds a comprehensive manipulator demo to the Electron examples, showcasing a two-joint robotic arm visualization using rclnodejs and Three.js. The demo provides interactive control through sliders, automatic animation modes, and real-time ROS2 integration.

Key changes:

  • Adds a complete Two-Joint Manipulator demo application with 3D visualization
  • Updates README documentation to feature both turtle_tf2 and manipulator demos in a structured table format
  • Implements ROS2 joint state publishing/subscribing with visual feedback

Fix: #1263

Copilot AI review requested due to automatic review settings September 17, 2025 07:28

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 adds a comprehensive manipulator demo to the Electron examples, showcasing a two-joint robotic arm visualization using rclnodejs and Three.js. The demo provides interactive control through sliders, automatic animation modes, and real-time ROS2 integration.

Key changes:

  • Adds a complete Two-Joint Manipulator demo application with 3D visualization
  • Updates README documentation to feature both turtle_tf2 and manipulator demos in a structured table format
  • Implements ROS2 joint state publishing/subscribing with visual feedback

Reviewed Changes

Copilot reviewed 8 out of 11 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
scripts/npmjs-readme.md Updates demo section with structured table showcasing turtle_tf2 and manipulator demos
README.md Updates demo section with structured table showcasing turtle_tf2 and manipulator demos
electron_demo/manipulator/start-demo.sh Bash script for convenient ROS2 environment setup and demo launch
electron_demo/manipulator/package.json Project configuration with dependencies for Electron, rclnodejs, and Three.js
electron_demo/manipulator/main.js Electron main process handling ROS2 integration, joint state publishing, and animation control
electron_demo/manipulator/renderer.js Three.js visualization with 3D manipulator model, UI controls, and real-time updates
electron_demo/manipulator/index.html Application UI layout with control panels, status displays, and embedded Three.js
electron_demo/manipulator/README.md Comprehensive documentation covering installation, usage, architecture, and troubleshooting

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread electron_demo/manipulator/start-demo.sh Outdated
Comment on lines +9 to +10
source /home/minggang/Download/ros2-linux/setup.bash

Copilot AI Sep 17, 2025

Copy link

Choose a reason for hiding this comment

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

The hardcoded path /home/minggang/Download/ros2-linux/setup.bash is user-specific and will not work for other users. Consider using a more generic approach like checking common ROS2 installation paths or requiring users to set an environment variable.

Suggested change
source /home/minggang/Download/ros2-linux/setup.bash
# Try to source ROS2 setup.bash from environment variable or common locations
if [ -n "$ROS2_SETUP" ] && [ -f "$ROS2_SETUP" ]; then
source "$ROS2_SETUP"
elif [ -f "/opt/ros/$ROS_DISTRO/setup.bash" ]; then
source "/opt/ros/$ROS_DISTRO/setup.bash"
elif [ -f "/opt/ros/foxy/setup.bash" ]; then
source "/opt/ros/foxy/setup.bash"
elif [ -f "/opt/ros/humble/setup.bash" ]; then
source "/opt/ros/humble/setup.bash"
elif [ -f "/opt/ros/galactic/setup.bash" ]; then
source "/opt/ros/galactic/setup.bash"
else
echo "❌ Could not find ROS2 setup.bash. Please set the ROS2_SETUP environment variable to the correct path."
exit 1
fi

Copilot uses AI. Check for mistakes.
@minggangw minggangw requested a review from Copilot September 17, 2025 07:41

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

Copilot reviewed 7 out of 10 changed files in this pull request and generated no new comments.


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@coveralls

coveralls commented Sep 17, 2025

Copy link
Copy Markdown

Coverage Status

coverage: 84.337% (+0.06%) from 84.276%
when pulling cd1c97a on minggangw:fix-1263
into a778426 on RobotWebTools:develop.

@minggangw minggangw merged commit 436a85a into RobotWebTools:develop Sep 17, 2025
34 of 36 checks passed
minggangw added a commit that referenced this pull request Oct 13, 2025
This PR adds a comprehensive manipulator demo to the Electron examples, showcasing a two-joint robotic arm visualization using rclnodejs and Three.js. The demo provides interactive control through sliders, automatic animation modes, and real-time ROS2 integration.

Key changes:
- Adds a complete Two-Joint Manipulator demo application with 3D visualization
- Updates README documentation to feature both turtle_tf2 and manipulator demos in a structured table format
- Implements ROS2 joint state publishing/subscribing with visual feedback

Fix: #1263
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.

Add a manipulator demo using Electron + rclnodejs

3 participants