Building a hardware interface for a 6DOF custom build robot
Hello all together,
I am currently building a hardware interface for a custom build 6DOF robot arm to control it with MoveIt and execute trajectories. So far I've had success implementing a hardware_interface::PositionJointInterface
and using a position_controllers/JointTrajectoryController
to control the robot. The robot publishes the current joint angles into /joint_states
and there is another topic on which the robot gets the positions (in radians) from the controller to follow the trajectory as calculated from MoveIt and visualized in rviz.
So far so good.. When trying to move the robot on a cartesian path the end-effector is not really moving straight. I assume that the controller I am using is not appropriate for this purpose since it does not (to the best of my knowledge) contain an inner feedback loop. Since I can also send velocities to the robots stepper motors, it would be better to use a controller which takes joint positions as an input and outputs velocities.
Anyone knows which controller could be suitable for my situation? I was thinking about using a velocity_controllers/JointTrajectoryController
or a pos_vel_controllers/JointTrajectoryController
but I am not sure how these controllers are controlling my actual robot.
I'd be very grateful if anyone could clarify that for me.