Skip to content

3DOF joint-by-joint-setup#84

Open
IshanDutta11 wants to merge 6 commits intoumdloop:mainfrom
IshanDutta11:3DOF-setup
Open

3DOF joint-by-joint-setup#84
IshanDutta11 wants to merge 6 commits intoumdloop:mainfrom
IshanDutta11:3DOF-setup

Conversation

@IshanDutta11
Copy link
Copy Markdown
Contributor

  • Adds a 3DOF joint by joint controller
  • Adds the ability to switch between 2DOF and 3DOF using the use_3dof launch argument
  • Allows the user to deactivate the physical talon hardware without interfering with ros2 logic (uses mock hardware for talon joints specifically) using the deactivate_talon launch argument

… the individuality and interchangeability of each subsection. This commit has a separate joint by joint controller for arm (composed of base_yaw, shoulder_pitch, and elbow_pitch), 3 wrist controllers (joint by joint for 3dof, 2dof, and an orientation controller for 3DOF), and gripper claw. If we ever decide to add more joints to arm, use a different kind of wrist control scheme, or have a different kind of end effector entirely, the components as well as the code can now be swapped in and out for it.
Copy link
Copy Markdown
Collaborator

@mdurrani808 mdurrani808 left a comment

Choose a reason for hiding this comment

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

Didn't seem to break when I launched it but didn't do any testing past that.

Comment thread src/description/ros2_control/arm/arm.talon_3dof.ros2_control.xacro
Comment thread src/description/ros2_control/arm/arm.talon_3dof.ros2_control.xacro
if (!std::isnan((*current_ref)->axes[0]))
{
// Wrist Pitch: U/D on Left Joystick AND O button
joint_velocities_[0] = -(*current_ref)->axes[1] * static_cast<float>((*current_ref)->buttons[1]) * max_velocities_[0];
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

are these axes something we want to be configurable? i imagine we would.

{
if (*(control_mode_.readFromRT()) == control_mode_type::SLOW)
{
joint_velocities_[i] /= 2;
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

make slow a configurable multiplier rather than hardcoded via parameters

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

See note on other HWI

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

See note on other HWI

…d, so it now functions with this arm setup (will require considerations of drive and always active controllers in yaml file). Also made a 2dof and 3dof trajectory controller config.
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