-
Notifications
You must be signed in to change notification settings - Fork 18
avt_341_control_node
Chris Goodin edited this page Nov 5, 2021
·
5 revisions
The vehicle control node uses the pure-pursuit algorithm for steering. Algorithm details can be found in "Implementation of the Pure Pursuit Path Tracking Algorithm" by Craig Coulter and "Automatic Steering Methods for Autonomous Automobile Path Tracking" by Jarrod M. Snider.
A PID controller is used to control the throttle to reach the desired speed.
The control algorithm uses the current vehicle state, recieved as an odometry message, and the current local path to calculate a vehicle control command, delivered as a twist message.
- avt_341/odometry (nav_msgs/Odometry) Vehicle odometry from real-time-kinematic or other localization sensor.
- avt_341/local_path (nav_msgs/Path) Local path with obstacle avoidance and safe steering properties.
-
avt_341/cmd_vel (geometry_msgs/Twist) Output driving command.
- throttle = cmd_vel.linear.x
- braking = cmd_vel.linear.y
- steering = cmd_vel.angular.z
- ~wheelbase (double, default: 2.6) Front-axle to rear-axle length of the vehicle, in meters.
- ~vehicle_mavs_steer_angle_degrees (double, default: 25.0) Maximum steering angle of the vehicle in degrees.
- ~vehicle_speed (double, default: 5.0) The disred speed in m/s.
- ~steering_coefficient (double, default: 2.0) Higher value equals smoother steering, lower gives more agressive steering.
- ~throttle_coefficient (double, default: 1.0) Scale factor for the output of the throttle. >1.0 makes the acceleration more agressive, <1.0 makes the acceleration more sluggish
- ~throttle_kp (double, default: 0.09) Proportional coefficient for the PID speed controller
- ~throttle_ki (double, default: 0.01) Integral coefficient for the PID speed controller
- ~throttle_kd (double, default: 0.16) Derivative coefficient for the PID speed controller