Difference between revisions of "Integrate Motor Controller with Odometry"
From wikidb
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