Add support for controlling the PTU inside of a Gazebo simulation.
The behaviour of the simulation isn't 100% identical, but the main ROS interfaces (/joint_states and /ptu/cmd) are replicated. A pair of velocity_controllers/JointPositionControllers are used to control the pan and tilt actuators, with a simple Python node acting as a middle layer between the PID controllers' .../command topics and the Flir PTU's .../cmd topic.
The biggest difference between the simulation and the real thing is that in the simulation the velocity of the rotation cannot be controlled; the speed of rotation is governed wholly by the PID controllers implemented by the JointPositionController instances. But the angles can be set using the same ROS interface, and the PTU does move, which is the most important aspect.
Add support for controlling the PTU inside of a Gazebo simulation.
The behaviour of the simulation isn't 100% identical, but the main ROS interfaces (
/joint_states
and/ptu/cmd
) are replicated. A pair ofvelocity_controllers/JointPositionController
s are used to control the pan and tilt actuators, with a simple Python node acting as a middle layer between the PID controllers'.../command
topics and the Flir PTU's.../cmd
topic.The biggest difference between the simulation and the real thing is that in the simulation the velocity of the rotation cannot be controlled; the speed of rotation is governed wholly by the PID controllers implemented by the
JointPositionController
instances. But the angles can be set using the same ROS interface, and the PTU does move, which is the most important aspect.