Skip to content

Conversation

@bondada-a
Copy link
Contributor

@bondada-a bondada-a commented Dec 12, 2025

Summary

This PR adds pipettor end-effector support and fixes issues in the UR5e robot description and MoveIt configuration packages. Adds use_fake_hardware arg used in hello_orchestrator_py #78


Key Changes

New: Pipettor End-Effector Support

  • ur_with_zivid_pipettor.xacro - Robot description for pipettor configuration
  • ur_zivid_pipettor_moveit_config - Complete MoveIt package (kinematics, SRDF, launch files, controllers)
  • Transform chain: UR5e → tool0 → zivid_camera_mount → tool_block → pipettor

New: Robot Calibration

  • Added config/ur5e_calibration.yaml - Robot-specific kinematics calibration
  • Launch files now pass kinematics_params_file to UR driver
  • Note: Included calibration is for CMS ur5e robot. New configs/robots would need to generate via ur_calibration

Refactor: Zivid Camera Integration

  • Removed local Zivid camera meshes - now uses official zivid_description package from zivid-ros
  • Custom arm mount mesh retained (bracket mounted backward for tool exchange clearance)
  • Added src/vision/vision.repos for cloning vision dependencies via vcs
  • Added src/vision/README.md with setup instructions
  • Note: Zivid SDK is NOT required for URDF/MoveIt - only needed for actual camera capture

New: Automatic Payload Configuration

  • Launch files now configure UR payload at startup via /io_and_status_controller/set_payload service
  • Accounts for end-effector mass (mount + camera + gripper)
  • Payload values per configuration:
    • Standalone: 1.43 kg (mount + camera)
    • Hand-E: 2.52 kg (mount + camera + gripper)
    • ePick: 2.15 kg (mount + camera + gripper)
    • Pipettor: 1.63 kg (mount + camera + pipettor)

Fixes & Reliability Improvements

  • UR driver disconnects in Docker/VM environments - Added keep_alive_count parameter (default: 10 = 200ms timeout) to all xacros. Related: #418, #507, #941
  • IK solver reliability improvement - Increased kinematics_solver_timeout (0.1s → 1.0s) and attempts (3 → 10)
  • use_fake_hardware was hardcoded to true in ur_with_zivid_epick.xacro and ur_with_zivid_hande.xacro - Now uses launch argument
  • socat_ip_address hardcoded in ur_with_zivid_hande.xacro - Now uses robot_ip argument
  • Duplicate dependencies in ur_standalone_moveit_config/package.xml - Removed

Configuration Updates

Camera Mount:

  • Changed mount frame from flange to tool0 (aligns with Zivid hand-eye calibration convention)
  • Updated mount offsets based on hand-eye calibration results

MoveIt SRDF:

  • Standardized moveit_home position: shoulder_lift_joint changed from -1.5782 to -1.5708 (exact -π/2)
  • Updated collision rules for new Zivid link names (zivid_camerazivid_arm_mount + zivid_base_link)

Launch Files (all configs):

  • Added use_fake_hardware argument
  • Added use_tool_communication: true

URDF Parameters:

  • te_robotside.xacro: Made scale and mass configurable (previously hardcoded)

- Add config/ur5e_calibration.yaml for robot-specific kinematics
- Add ur_with_zivid_pipettor description and MoveIt config
- Increase kinematics solver timeout (0.1→1.0s) and attempts (3→10)
- Update launch files with use_fake_hardware argument
- Update documentation
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.

1 participant