Skip to content

Repository files navigation

match_additive_manufacturing_ros2

ROS 2 application logic for additive-manufacturing path-following experiments.

This repository should stay platform-agnostic where practical. Robot descriptions, Gazebo worlds, hardware drivers, platform-specific controllers, and vendor simulation imports belong in platform repositories such as bunker_manipulator.

Current Packages

  • parse_paths: Generates simple test/reference paths as nav_msgs/msg/Path. It also contains specialized paired path publishers, including the Robotnik base/UR arm sideways plus 45 degree demo paths.
  • base_trajectory_follower: Generic simple mobile-base path follower for simulation.
  • move_to_path_idx: One-shot mobile-base motion to a selected path index from an externally supplied robot pose.
  • ur_trajectory_follower: UR/TCP path-following and twist-composition utilities.
  • am_bringup: Demo launch/config glue connecting generic AM nodes to simulator topics.
  • print_path_monitoring: Monitoring-only nozzle/TCP pose error diagnostics.

Core Topic Assumptions

External simulation or platform bringup provides pose feedback:

  • Mobile base pose: geometry_msgs/msg/PoseStamped, default /robot_pose.
  • TCP/nozzle pose: geometry_msgs/msg/PoseStamped, default /current_tcp_pose.

Application packages do not estimate these poses. They consume pose topics, publish reference paths, publish velocity commands, and expose gains/limits/tolerances as parameters.

Robotnik Paired Base/Arm Demo

The current integrated demo is the RB-VOGUI base plus UR arm paired-path flow. It generates base and arm paths with the same number of waypoints, drives the base to the first base waypoint, then uses one shared /path_index to advance both paths.

colcon build --symlink-install --packages-select \
  parse_paths move_to_path_idx base_trajectory_follower ur_trajectory_follower am_bringup
source install/setup.bash
ros2 launch am_bringup rbvogui_paired_base_only_demo.launch.py launch_sim:=true
ros2 launch am_bringup rbvogui_paired_base_arm_demo.launch.py launch_sim:=true

See am_bringup/README.md for topic checks, the start-pose handoff, and the current Robotnik UR velocity-controller caveat.

Coupled base-progress sweep

The reproducible 18-case doubleCurvedTElement campaign is driven by scripts/run_base_progress_sweep.py. It starts a fresh simulator and separate base and TCP/deposition trajectory monitors for every desired-speed/override combination, publishes each override continuously, and writes per-case CSV/JSON plus campaign_results.json under /tmp/base_progress_sweep.

python3 scripts/run_base_progress_sweep.py

The script sources the Robotnik simulator underlay internally and puts this workspace's AM package prefixes first, preventing an older simulator overlay from masking the follower and monitoring changes. Use --dry-run to print a case's exact commands or --speed 0.15 --override 2.5 for an isolated case.

Reproducible Development Setup

Use dependencies/print_system.jazzy.repos to create the pinned ROS 2 print-system foundation. The manifest deliberately excludes ROS 1 reference repositories; keep those outside the colcon source tree. The QTM and Keyence ROS 2 packages currently await publication from their mixed source repositories, match_mocap and match_hardware_utilities. They must be committed to named Jazzy branches and pinned in the manifest before claiming a complete reproducible sensor-enabled workspace.

When the mixed sensor repositories are present locally, build only their ROS 2 package roots; an unqualified colcon build also discovers their legacy catkin packages:

cd ~/workspaces/print2_ws
source /opt/ros/jazzy/setup.bash
colcon build --symlink-install --base-paths \
  src/match_additive_manufacturing_ros2 \
  src/match_mocap/mocap_toolbox_ros2 \
  src/match_hardware_utilities/keyence_profile_ros2

The system-wide topic, frame, safety, and operating-profile rules are defined in docs/print_system_contract.md. New platform, mocap, scanner, or process-control work must conform to that contract before it is exposed through the operator GUI.

The current hardware-free build and test baseline is recorded in docs/offline_verification.md. The ordered development and hardware-commissioning stages are in docs/implementation_plan.md. Outstanding implementation work, including the ROS 1 behaviors worth selectively retaining in ROS 2, is tracked in docs/open_todos.md. For a MuR620 with MiR base and two UR10 arms, without Robotnik, use the staged MuR620 installation manual.

Development Direction

The near-term simulation target is Robotnik RB-VOGUI + UR because omnidirectional motion is useful for early print-path following tests. Bunker + UR support should be added later by adapting platform bringup and command interfaces while reusing generic application nodes.

See docs/architecture.md for the package ownership rules and branch plan.

About

Version for ROS2 jazzy of match_additive_manufacturing

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages