Closed btdubs closed 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.
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 inrr_iarrc
. Begin by moving that to its own directory that that could be included as a library. Then create node inrr_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:
rosrun rqt_reconfigure rqt_reconfigure