Skip to content

first draft for joint velocity interface#1

Open
maltehue wants to merge 14 commits into
humblefrom
joint_velocity_interface
Open

first draft for joint velocity interface#1
maltehue wants to merge 14 commits into
humblefrom
joint_velocity_interface

Conversation

@maltehue

@maltehue maltehue commented Feb 6, 2026

Copy link
Copy Markdown

first draft from junie.
needs to be tested on the real robot.
Whats weird is that the celocity topic callback might need a self.robot.push() call. But they moved all those calls into a function controlled by a timer. I could call the push() anyways in the velocity command callback, but not sure it might be locked by the function called by the timer. Needs to be tested on the real robot I guess.

@maltehue

maltehue commented Feb 6, 2026

Copy link
Copy Markdown
Author

@ichumuh do we want to control the gripper with velocity or by position? Probaby needs to be testes if the velocity function works on the gripper.

@ichumuh

ichumuh commented Feb 6, 2026

Copy link
Copy Markdown

the gripper can be controlled with position or velocity? i would have thought it only has an open/close interface

@maltehue

maltehue commented Feb 6, 2026

Copy link
Copy Markdown
Author

the gripper can be controlled with position or velocity? i would have thought it only has an open/close interface

you can control the position to any value in range. Velocity needs to be verified on the real robot.

self.get_logger().error('{0} must be in position or navigation mode with streaming_velocity activated '
'enabled to receive command to joint_velocity_cmd. '
'Current mode = {1}.'.format(self.node_name, self.robot_mode))
self.robot_mode_rwlock.release_read()

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

is this a lock for the hardware interface? can it be a problem if the driver dies without releasing those?

pass

self.get_logger().info(f"Moved at velocity qvel: {qvel}")
except Exception as e:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

is that really a good idea? swallowing all exceptions?

self.robot.arm.set_velocity(0.0)
self.robot.lift.set_velocity(0.0)
self.robot.end_of_arm.get_joint('wrist_yaw').set_velocity(0.0)
if 'wrist_pitch' in self.robot.end_of_arm.joints:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

put str into variable or smt

@ichumuh

ichumuh commented Feb 9, 2026

Copy link
Copy Markdown

the gripper can be controlled with position or velocity? i would have thought it only has an open/close interface

you can control the position to any value in range. Velocity needs to be verified on the real robot.

ok lets see

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.

4 participants