Conversation
|
@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. |
|
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() |
There was a problem hiding this comment.
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: |
There was a problem hiding this comment.
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: |
ok lets see |
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.