RoboJackets / roboracing-firmware

Firmware for RoboJackets RoboRacing Team
https://robojackets.org/teams/roboracing/
Apache License 2.0
1 stars 1 forks source link

PID Controller Node #27

Closed btdubs closed 5 years ago

btdubs commented 5 years ago

Goal: A node that implements a PID controller such that other nodes can publish a setpoint and a plant value to topics it subscribes to and the PID will publish an output to a topic. The node should be configurable by Dynamic Reconfigure.

Notes: We already have a PID library (from the Arduino implementation) that the drag_race_controller uses in rr_iarrc. Begin by moving that to its own directory that that could be included as a library. Then create node in rr_common that subscribes to 2 std_msgs/Float64 topics (the setpoint and input/plant value) and publishes to 1 topic of the same type (the controller output value). The node should use Dynamic Reconfigure to allow configuration of the P, I and D values. The PID library has other parameters for the controller as well as an ability to reset, so add those as configurable as well. Then create a launch file.

Finally, update the drag_centerline_planner to use this new PID node.

Keep in mind, we will be running multiple PID controller node instances for multiple devices that may all have different PID gains.

New Files Created (at least): pid_controller.cpp , pid_controller.launch, pid_controller.cfg Files Edited (at least): drag_centerline_planner.cpp

Success Criteria:

btdubs commented 5 years ago

Closing because I accidentally put this in firmware repo instead of software and because we found an already made ROS node that does this + more. See software repo for a new issue that modifies this with that new information.