Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Cartesian velocity controller

Hello.

I am trying to build a cartesian end effector velocity controller for a robotic manipulator. The basic idea is that the controller will accept as input the desired velocity of the end effector and by computing inverse kinematics it will produce the necessary joint velocities. Then it will send the corresponding commands to the hardware interface associated with the controller. For the real robot I am using a VelocityJointInterface and everything works fine. However, in Gazebo I am using a PositionJointInterface since Gazebo does not support velocity joint interfaces in the hardware simulation. The problem is that when I load the controller in Gazebo the manipulator is moving very slowly while it should stay still since no velocity input is provided (just like in the real hardware). The input I pass in the interface is computed based on the computed joint velocity and specifically is of the type:

q(t+) = q(t) + qdot(t)*Δt

where q(t) is the current joint position, qdot(t) the computed joint velocity and q(t+) the future joint velocity after time Δt has passed. I have checked both in ROS Kinetic, Gazebo 7 and Ubuntu 16.04 and in ROS Melodic, Gazebo 9 and Ubuntu 18.04 and the results are the same. Does anyone know why this slow motion is occurring? Thanks in advance and let me know if there is any additional info I could provide.

Cartesian velocity controller

Hello.

I am trying to build a cartesian end effector velocity controller for a robotic manipulator. The basic idea is that the controller will accept as input the desired velocity of the end effector and by computing inverse kinematics it will produce the necessary joint velocities. Then it will send the corresponding commands to the hardware interface associated with the controller. For the real robot I am using a VelocityJointInterface and everything works fine. However, in Gazebo I am using a PositionJointInterface since Gazebo does not support velocity joint interfaces in the hardware simulation. The problem is that when I load the controller in Gazebo the manipulator is moving very slowly while it should stay still since no velocity input is provided (just like in the real hardware). The input I pass in the interface is computed based on the computed joint velocity and specifically is of the type:

q(t+) = q(t) + qdot(t)*Δt

where q(t) is the current joint position, qdot(t) the computed joint velocity and q(t+) the future joint velocity after time Δt has passed. I have checked both in ROS Kinetic, Gazebo 7 and Ubuntu 16.04 and in ROS Melodic, Gazebo 9 and Ubuntu 18.04 and the results are the same. Does anyone know why this slow motion is occurring? Thanks in advance and let me know if there is any additional info I could provide.

Cartesian Unexpected slow motion in cartesian velocity controller

Hello.

I am trying to build a cartesian end effector velocity controller for a robotic manipulator. The basic idea is that the controller will accept as input the desired velocity of the end effector and by computing inverse kinematics it will produce the necessary joint velocities. Then it will send the corresponding commands to the hardware interface associated with the controller. For the real robot I am using a VelocityJointInterface and everything works fine. However, in Gazebo I am using a PositionJointInterface since Gazebo does not support velocity joint interfaces in the hardware simulation. The problem is that when I load the controller in Gazebo the manipulator is moving very slowly while it should stay still since no velocity input is provided (just like in the real hardware). The input I pass in the interface is computed based on the computed joint velocity and specifically is of the type:

q(t+) = q(t) + qdot(t)*Δt

where q(t) is the current joint position, qdot(t) the computed joint velocity and q(t+) the future joint velocity after time Δt has passed. I have checked both in ROS Kinetic, Gazebo 7 and Ubuntu 16.04 and in ROS Melodic, Gazebo 9 and Ubuntu 18.04 and the results are the same. Does anyone know why this slow motion is occurring? Thanks in advance and let me know if there is any additional info I could provide.

EDIT: Gazebo supports a VelocityJointInterface transmission hardware after all. However, even with that hardware interface the slow motion still occurs. That means that the problem does not lie with the hw interface. Does anyone has any idea where the problem may lie? Thanks in advance.