How to setup ros control to realize zero control error (Direct feedthrough of reference to output)?
Hi guys,
Currently I am using Gazebo to simulate a robot and a rotating table. Therefore i spawn two controllers, a position_controllers/JointPositionController
for the single joint rotating table and a position_controllers/JointGroupPositionController
for the multi joint arm.
These controllers have as input position and as output position. Does that mean there is a one on one relation with the desired reference to the controller and the output? So the control error is always zero? And if not, How should I configure ros control such that what ever trajectory is sent to the robot it is executed 100% correctly by the gazebo simulated robot? Because in my use case I am currently not interested in simulating physics and low level control I just want to plan motion.
Currently i use the following:
control_params.yaml:
joint_state_controller:
type: "joint_state_controller/JointStateController"
publish_rate: 50
joint_table_controller:
type: "position_controllers/JointPositionController"
joint: joint_table
joint_manipulator_controller:
type: "position_controllers/JointGroupPositionController"
joints: ['joint_track','joint_s', 'joint_l', 'joint_u', 'joint_r', 'joint_b', 'joint_t', 'joint_weld']
Which i load by:
<!-- Spawn controller -->
<node name="controller_spawner" pkg="controller_manager" type="spawner"
respawn="false" output="screen"
args="joint_state_controller
joint_table_controller
joint_manipulator_controller
--timeout 50" />