PID controller - it's the most powerful and famous type of controllers. It has the ability to correct given data using previous errors (inconsistency between desired and measured values).
- The heart of the package is simple-ros-pid package.
This part describes various ROS-related interfaces such as parameters and topics.
-
~p: floatProportional coefficient of the controller Default:
1.0 -
~i: floatIntegral coefficient of the controller Default:
0.1 -
~d: floatDerivative coefficient of the controller Default:
0.05 -
~publish_rate: intThe rate of the main loop of the node. Default:
100 -
~input: stringInput data topic (data to adjust using the PID controller)
-
~setpoint: stringSetpoint topic (the desirable value)
-
~adjusted: stringData after the correction
-
~adjusted: Float64Result of PID correction
-
~input: sensor_msgs/ImageInput image to be proccessed
.
├── cfg
│ └── pid.cfg
├── launch
│ └── pid.launch
├── scripts
│ └── pid.py
├── CMakeLists.txt
├── LICENSE
├── package.xml
├── README.md
└── setup.py
./launch- *.yaml roslaunch files./scripts- main folder of the project (contains executables)./cfg- configuration files for thedynamic_reconfigurepackage
The project uses following files
pid.launch- starting the node (example of use)
pid.py- the main node (corrects errors of the received data)
pid.cfg- a configuration file for thedynamic_reconfigurepackage
To start the controller you should change the parameters in launch/pid.launch and then run :
$ roslaunch robotec_pid pid.launch