drone-rigide/launch/control.launch
2019-06-06 21:05:10 +02:00

47 lines
2.4 KiB
XML

<launch>
<arg name="input" default="input"/>
<arg name="output" default="output"/>
<arg name="measure" default="measure"/>
<arg name="reset" default="reset"/>
<arg name="param_P" default="simple_loop/linear_x/P.yaml" />
<arg name="param_I" default="simple_loop/linear_x/I.yaml" />
<arg name="param_D" default="simple_loop/linear_x/D.yaml" />
<arg name="param_input" default="params/simple_loop/linear_x/input.yaml" />
<node name="P_param" pkg="dynamic_reconfigure" type="dynparam" args="load P $(find detect_targets)/params/$(arg param_P)"/>
<node name="I_param" pkg="dynamic_reconfigure" type="dynparam" args="load I $(find detect_targets)/params/$(arg param_I)"/>
<node name="D_param" pkg="dynamic_reconfigure" type="dynparam" args="load D $(find detect_targets)/params/$(arg param_D)"/>
<node name="input_param" pkg="dynamic_reconfigure" type="dynparam" args="load input $(find detect_targets)/params/$(arg param_input)"/>
<node name="input" pkg="detect_targets" type="control_compute.py" args="input" output="screen">
<remap from="input" to="$(arg input)" />
<remap from="output" to="set_point"/>
<remap from="reset" to="$(arg reset)" />
</node>
<node name="diff" pkg="detect_targets" type="control_compute.py" args="differenciate" output="screen">
<remap from="input" to="set_point"/>
<remap from="output" to="epsilon"/>
<remap from="measure" to="$(arg measure)" />
<remap from="reset" to="$(arg reset)" />
</node>
<node name="P" pkg="detect_targets" type="control_compute.py" args="proportional" output="screen">
<remap from="input" to="epsilon"/>
<remap from="output" to="p_out"/>
<remap from="reset" to="$(arg reset)" />
</node>
<node name="I" pkg="detect_targets" type="control_compute.py" args="integral" output="screen">
<remap from="input" to="epsilon"/>
<remap from="output" to="i_out"/>
<remap from="reset" to="$(arg reset)" />
</node>
<node name="D" pkg="detect_targets" type="control_compute.py" args="derivative" output="screen">
<remap from="input" to="epsilon"/>
<remap from="output" to="d_out"/>
<remap from="reset" to="$(arg reset)" />
</node>
<node name="sum" pkg="detect_targets" type="control_compute.py" args="sum 3" output="screen">
<remap to="p_out" from="input_0" />
<remap to="i_out" from="input_1" />
<remap to="d_out" from="input_2" />
<remap from="output" to="$(arg output)" />
<remap from="reset" to="$(arg reset)" />
</node>
</launch>