Skip to content

first draft for joint velocity interface#1

Open
maltehue wants to merge 1 commit intohumblefrom
joint_velocity_interface
Open

first draft for joint velocity interface#1
maltehue wants to merge 1 commit intohumblefrom
joint_velocity_interface

Conversation

@maltehue
Copy link

@maltehue maltehue commented Feb 6, 2026

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
Copy link
Author

maltehue commented Feb 6, 2026

@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
Copy link

ichumuh commented Feb 6, 2026

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

@maltehue
Copy link
Author

maltehue commented Feb 6, 2026

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

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

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

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
Copy link

ichumuh commented Feb 9, 2026

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.

2 participants