ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

How to setup ros control to realize zero control error (Direct feedthrough of reference to output)?

asked 2018-10-29 02:35:24 -0600

maxbaeten gravatar image

updated 2018-10-29 02:41:27 -0600

gvdhoorn gravatar image

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" />
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2018-10-29 02:50:28 -0600

gvdhoorn gravatar image

updated 2018-10-29 03:07:33 -0600

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?

In your previous question this also came up.

All classes in the position_controllers group are pure passthrough controllers (or forward_command_controller), they do not have any internal PID. From the class' header (here):

This class passes the commanded position down to the joint

See also #q245802.

Because in my use case I am currently not interested in simulating physics and low level control I just want to plan motion

If you don't actually need a physics simulation, then why not just use the fake_controller_manager and not bother with an entire Gazebo setup? That is a huge amount of overhead for just visualising your motions.

If you do want to include an external entity in your application that "plays out" JointTrajectorys (fi because it would approximate how things would be setup with a real driver), then you could take a look at wiki/industrial_robot_simulator. It's not really a simulator -- or at least not a dynamics simulator. It is mostly a trajectory play out / kinematics visualisation tool (note: you don't use gazebo_ros_control with this, or ros_control at all actually; it's just that node).

Note that in a recent PR (ros-industrial/industrial_core#212) treatment of velocities and accelerations was essentially changed to do exactly what the package that you are using (kleinma/ma1400_sim) does.

edit flag offensive delete link more

Comments

Thanks for your quick and thorough answer. I will have a look at implementing the industrial robot simulator. I did not want to use the fake controller manager since at the end of the trajectory the robot is not staying at the end point.

maxbaeten gravatar image maxbaeten  ( 2018-10-29 03:19:25 -0600 )edit

I did not want to use the fake controller manager since at the end of the trajectory the robot is not staying at the end point

It is, but you probably have animation repeat turned on in the MoveIt RViz plugin.

gvdhoorn gravatar image gvdhoorn  ( 2018-10-29 03:21:07 -0600 )edit

I'm not sure, but please make sure we're not chasing an xy-problem.

gvdhoorn gravatar image gvdhoorn  ( 2018-10-29 03:22:51 -0600 )edit

Question Tools

1 follower

Stats

Asked: 2018-10-29 02:35:24 -0600

Seen: 307 times

Last updated: Oct 29 '18