Difference between revisions of "Integrate Motor Controller with Odometry"

From wikidb
Jump to: navigation, search
Line 35: Line 35:
 
   [ WARN] [1462401819.190862871]: Angular velocity error 370.656911 degrees/sec = -0.149613 - -6.618796
 
   [ WARN] [1462401819.190862871]: Angular velocity error 370.656911 degrees/sec = -0.149613 - -6.618796
  
 +
= Motor Controller PID Tuning =
 +
 +
This is the first pass to get the motors to turn.
 +
  <launch>
 +
    <node
 +
        pkg="phidgets"
 +
        type="motor_control_hc"
 +
        name="motor_control_hc"
 +
        respawn="true"
 +
        output="screen">
 +
      <!-- for disable odometry feedback for PID by providing a bogus topic
 +
          for example: "disable" -->
 +
        <param name="odometry" value="odom" />
 +
        <param name="max_angular_error" value="100000" />
 +
        <param name="max_linear_accel" value="100000" />
 +
        <param name="linear_proportional" value="10" />
 +
        <param name="linear_integral" value="0" />
 +
        <param name="linear_derivative" value="0" />
 +
        <param name="angular_proportional" value="0.5" />
 +
        <param name="angular_integral" value="0" />
 +
        <param name="angular_derivative" value="0" />
 +
        <param name="speed" value="100" />
 +
    </node>
 +
  </launch>
  
  
 
* [http://robotsforroboticists.com/pid-control/ PID Tuning] See Manual Tuning and Ziegler–Nichols
 
* [http://robotsforroboticists.com/pid-control/ PID Tuning] See Manual Tuning and Ziegler–Nichols

Revision as of 15:46, 4 May 2016

Execute

Terminal 1

 roscore

Terminal 2

 roslaunch floor_hugger motor_control.launch

Parameter to disable odometry

 <launch>
   <node pkg="phidgets" type="motor_control_hc" name="motor_control_hc" respawn="true" output="screen">
       <param name="odometry" value="disable" />
   </node>
 </launch>

Terminal 3

 rosrun floor_hugger to_position.py

Terminal 4

 roslaunch floor_hugger odometry.launch

= Enabled Controller Odometry

Enable odometry with "odom"

 <launch>
   <node pkg="phidgets" type="motor_control_hc" name="motor_control_hc" respawn="true" output="screen">
       <param name="odometry" value="odom" />
   </node>
 </launch>

Motor controller errors messages of this type:

 [ WARN] [1462401818.924243003]: Linear acceleration limit 167.613028/0.300000 reached
 [ WARN] [1462401819.190862871]: Angular velocity error 370.656911 degrees/sec = -0.149613 - -6.618796

Motor Controller PID Tuning

This is the first pass to get the motors to turn.

 <launch>
   <node 
       pkg="phidgets" 
       type="motor_control_hc" 
       name="motor_control_hc" 
       respawn="true" 
       output="screen">
       <param name="odometry" value="odom" />
       <param name="max_angular_error" value="100000" />
       <param name="max_linear_accel" value="100000" />
       <param name="linear_proportional" value="10" />
       <param name="linear_integral" value="0" />
       <param name="linear_derivative" value="0" />
       <param name="angular_proportional" value="0.5" />
       <param name="angular_integral" value="0" />
       <param name="angular_derivative" value="0" />
       <param name="speed" value="100" />
   </node>
 </launch>


  • PID Tuning See Manual Tuning and Ziegler–Nichols