Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added possibility to directly control the arm using an ArmVelocityCommand #104

Merged
merged 3 commits into from
Jun 5, 2024

Conversation

MGBla
Copy link
Contributor

@MGBla MGBla commented Apr 26, 2024

Change Overview

Added the ability to set a Velocity command for the arm. This enables a user to have direct translational and rotational control of the TCP movement using a controller or any other input device. The corresponding PR on the driver Repo provides a topic interface to send the corresponding movement command.
The angular and Cartesian velocity were thoroughly tested during operation on our spot. For the cylindrical velocity I performed some basic tests but didn't evaluate over hours as the other two input methods since I don't really use them in this reference frame.

Testing Done

- [x] tested that these new functionality work on robot

Copy link
Collaborator

@khughes-bdai khughes-bdai left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Collaborator

@tcappellari-bdai tcappellari-bdai left a comment

Choose a reason for hiding this comment

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

There are a few things I would suggest editing/want some clarification on, but overall looks fine on the wrapper side of things

Comment on lines 525 to 530
arm_velocity_command2 = arm_command_pb2.ArmVelocityCommand.Request(
cylindrical_velocity=arm_velocity_command.cylindrical_velocity,
angular_velocity_of_hand_rt_odom_in_hand=arm_velocity_command.angular_velocity_of_hand_rt_odom_in_hand,
cartesian_velocity=arm_velocity_command.cartesian_velocity,
end_time=end_time,
)
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why do you copy the request to arm_velocity_command2 here?

Copy link
Collaborator

Choose a reason for hiding this comment

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

oh now I see that you modified the end time.
Could you not do something like this?

new_end_time = . . .
arm_velocity_command.end_time = new_end_time

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Well I obviously tried that first but the internal protobuf message prevented me from doing this. Not sure why exactly but if you have a workaround I would be happy to streamline this.

spot_wrapper/spot_arm.py Show resolved Hide resolved
@khughes-bdai khughes-bdai self-requested a review June 4, 2024 17:15
Copy link
Collaborator

@khughes-bdai khughes-bdai left a comment

Choose a reason for hiding this comment

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

Just a few comments, but overall looks good

Copy link
Contributor

Thanks for the update. Potentially, this provides another way to teleop the arm, since the current teleop uses a position command, but we could use the velocity command directly. The behavior around singularity and joint limits might be something to check once this PR gets merged.

MGBla and others added 2 commits June 5, 2024 14:42
Co-authored-by: Katie Hughes <[email protected]>
Copy link
Collaborator

@khughes-bdai khughes-bdai left a comment

Choose a reason for hiding this comment

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

LGTM

@khughes-bdai khughes-bdai merged commit 67573db into bdaiinstitute:main Jun 5, 2024
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.

5 participants