Skip to content

Conversation

@jjaime2
Copy link
Contributor

@jjaime2 jjaime2 commented Dec 22, 2025

Description

This PR updates the ada_ros2 repository to fully support the Articutool hardware. It refactors the robot description to allow for modular attachment of the tool, updates the MoveIt configuration to plan with the extended kinematic chain (jaco_arm_with_articutool), and introduces new utility nodes for joint state aggregation and simulation.

Key Changes:

  • URDF & Description Refactor (ada_description):

    • Converted ada.xacro into a reusable macro.

    • Created ada_standalone.xacro for legacy/standalone ADA usage.

    • Added support for dynamically attaching the Articutool to the end-effector via the ada.urdf.xacro configuration.

  • MoveIt Configuration (ada_moveit):

    • New Planning Groups: Added articutool and jaco_arm_with_articutool groups to the SRDF.

    • Kinematics: Switched to pick_ik as the kinematics solver for improved performance with the extended chain. Added specific solver configurations for the new groups.

    • Collision Checking: Updated the SRDF collision matrix to account for the Articutool geometry and remove outdated collision pairs.

    • Controllers: Updated controller configurations (real, mock, isaac) to reference the correct end-effector links (tool_tip vs j2n6s200_end_effector) and updated F/T sensor topics to /ft_sensor/wrench_raw.

  • Launch System:

    • Added end_effector_tool (fork/spoon) arguments to all standard launch files (demo, move_group, rsp, etc.).

    • These arguments are now passed directly into the MoveItConfigsBuilder mappings to dynamically generate the correct robot description at runtime.

  • New Nodes:

    • unified_joint_state_publisher.py: A new node that subscribes to both /ada/joint_states and /articutool/joint_states, merging them into a single /joint_states topic for MoveIt.

Before opening a pull request

  • pre-commit run --all-files
  • Run your code through pylint. pylint --recursive=y --rcfile=.pylintrc .. All warnings but fixme must be addressed.

Before Merging

  • Squash & Merge

jjaime2 added 30 commits March 26, 2025 11:55
… as passive so that they aren't actuated when planning a trajectory. Despite not being actuated, the planner still seems to incorporate the Articutool joints into the planned trajectory, so we need to find a way to also have the planner ignore the joints entirely, as if the Articutool were a rigid extension from the Jaco's hand
…ool planning group will consider the Articutool's joint as fixed, effectively circumventing an issue where planning with the group would use all joints in the kinematic chain when it was only desired to use the Jaco joints.
…solver to use the passive joints from the Articutool, but we will try to use joint constraints during planning instead to prevent this in both the IK solution as well as the generated trajectory
…ol. If either has no up to date data, we use the previous valid joint state message.
… of a desired link relative to some base frame. We use this to simulated an ideal orientation estimate from the IMU on the Articutool
jjaime2 added 30 commits May 1, 2025 10:19
…t actually propagates through to the argument in the Xacro. We should really consider simplifying all these launch files, they are not modular at all
…y the unified joint state publisher if they are locked
… increase the performance of the Articutool's planning success rate with lower planning times
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