ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
1 | initial version |
I could use roscontrol and simply send the joint target, but I believe it isn't going to result in the same motion/trajectory as a MoveJ command would. I believe its only some type of PID controller that increases the output based on the distance to target, which is not what I want.
ros_control
contains many controllers, you seem to describe (one variant of) the position_controller
s?
For trajectory based control, even if the trajectory contains only two points (ie: departure and destination), you could use the joint_trajectory_controller.
It tried using the planner from MoveIt, but it results in a crazy trajectory
that's typically caused by misconfiguration (ie: too few constraints). Without proper constraints, any trajectory is a valid one, as long as it doesn't collide with anything, so there is no difference between "spinning three times around its base" and "a simple linear interpolation".
The movement/trajectory I want to emulate is the same as the one that is provided by a MoveJ command
Well it 's going to be using MoveIt again, but if you can stomach that you could perhaps take a look at wiki/pilz_industrial_motion.
If you'd be using real hardware (or ursim
), I'd almost suggest you could just as well write a simple Python script sending URScript statements to tcp://:30002
. Could you perhaps give some more information on what sort of functionality you are looking to achieve which made you start / work with ROS?
Also, with real hardware, and when using ur_robot_driver
, you'd need to use the ScaledJointTrajectoryController or you'd lose many of the advantages which ur_robot_driver
offers.
If all of this is still too tedious, I would probably recommend using something like SintefManufacturing/python-urx or a similar library, but that does not come with any ROS integration (or at least: I don't know of any).