[Documentation] [TitleIndex] [WordIndex

Package Summary

asr_flir_ptu_driver is a package for controlling a flir ptu via (external) msg authors: Valerij Wittenbeck, Joachim Gehrung, Pascal Meissner, Patrick Schlosser

Package Summary

asr_flir_ptu_driver is a package for controlling a flir ptu via (external) msg authors: Valerij Wittenbeck, Joachim Gehrung, Pascal Meissner, Patrick Schlosser

Logo-white-medium.jpg

Description

The purpose of the asr_flir_ptu_driver package is to grant control over pan-tilt-units (PTU) being manufactured by FLIR using ROS. This is achieved by making the movement of the pan-tilt-unit as well as it's configuration, like the movement speed or acceleration that is used, accessable by messages over topics. Therefore this package offers a free and ROS-integrated way to control FLIR pan-tilt-units with ease. You can see a PTU with a typical use case below.

height="317",width="764"

Functionality

The following functionalities are offered by asr_flir_ptu_driver:

Usage

To use this package it is important that you have a FLIR pan-tilt-unit connected to your system using a serial port (except you only want to use the simulation). Make sure that the PTU is fully powered and initialized before you start the software of this package.

Needed packages

The asr_flir_ptu_driver package needs no other software to work.

Needed software

Needed hardware

The asr_flir_ptu_driver package is intended for the use with pan-tilt-units of the manufacturer FLIR. The package is confirmed to be working with the PTU-46-17.5 model (from Directed Perception before being acquired by FLIR), but should be working with a broad range of their other pan-tilt-units.

Start system

First of all you will have to install the needed software shown in section 3.2. Then download the package from github, place it inside a catkin workspace and build it.

Before starting any software it is possible to configure the PTU driver using the ptu_properties.yaml located in the param-Folder. The meanings of all parameters will be explained in the corresponding section 4.3.

As soon as you have configured the PTU as you desire you can either start a real PTU or a simulation. How to do this is described in the subsections of 3.4.

As soon as you launched the real PTU/simulation, you can interact with it in two ways:

Simulation

If you want to simulate the behaviour a FLIR PTU in a basic way you need to launch the package the following way:

roslaunch asr_flir_ptu_driver ptu_left_mock.launch

The simulation provides basic functions, like the simulation of movements after getting a movement command, the check if a position lies within a forbidden area, the setting of forbidden areas and the setting of maximum and minimum values for pan and tilt.

Be aware that it is not possible to use some advanced functions - especially the path prediction - with the simulation.

Note: If you are using the simulation and want to get a behaviour as accurate as possible, set the hardware limits of the pan and tilt movement in the ptu_properties.yaml file in the param folder (arguments are named mock_pan_min, ...). Try to find them for example in the manual and set them in the ptu_properties.yaml in degrees (not radians).

Real

To start asr_flir_ptu_driver with a real PTU you need to connect and power up the PTU first.

As soon as the initialization of the PTU after the power up is done (when it stops moving) start the PTU driver using

roslaunch asr_flir_ptu_driver ptu_left.launch

Afterwards, the PTU will perform another set of movements. As soon as these movements ended, it is possible to send instructions to the PTU using messages or the GUI.

ROS Nodes

Subscribed Topics

Using the ptu_left.launch launchfile the topics shown below will be found under /asr_flir_ptu_driver.

state_cmd

Published Topics

Using the ptu_left.launch launchfile the topics shown below will be found under /asr_flir_ptu_driver.

ptu_state

state

Parameters

Using the ptu_left.launch launchfile all parameters shown below will be found under /asr_flir_ptu_driver.

PTU setting parameters:

pan_min_angle

_pan_max_angle_

_pan_base_speed_

_pan_target_speed_

_pan_upper_speed_

_pan_accel_

_pan_hold_

_pan_move_

tilt_min_angle

tilt_max_angle

tilt_base_speed

tilt_target_speed

tilt_upper_speed

tilt_accel

tilt_hold

tilt_move

speed_control

computation_tolerance

distance_factor

forbidden_pan_min

forbidden_pan_max

forbidden_tilt_min

forbidden_tilt_max

mock_pan_min_hardware_limit

mock_pan_max_hardware_limit

mock_tilt_min_hardware_limit

mock_tilt_max_hardware_limit

port

baud

mockPTU

update_rate

*Name parameters:*

ptu_base_frame

ptu_pan_frame

ptu_pan_frame_rotated

ptu_tilt_frame

ptu_tilt_frame_rotated

Changing of the following parameters is not advised but possible. Use remap instead.

topicStateCommand

topicState

ptuTopicState

serviceValidation

serviceAlive

servicePathPrediction

serviceSettingsUpdate

serviceSpeedControlUpdate

serviceRange

Needed Services

There are no external services needed. Nevertheless, if the GUI is used, it uses a few services offered by the driver, therefore always start ptu_left.launch before ptu_gui.launch

Provided Services

Using the ptu_left.launch launchfile the services shown below will be found under /asr_flir_ptu_driver.

validation_service

_alive_service_

_path_prediction_

_update_settings_

_update_speed_control_

_get_range_

Tutorials

These tutorials will cover the usage of asr_flir_ptu_driver with an own node communicating over services and topics. It will be explained how certain goals can be achieved. Before starting your own program

roslaunch asr_flir_ptu_driver ptu_left.launch

needs to be invoked from the terminal to start the PTU. Make sure it is connected. Configure the forbidden areas in the ptu_properties.yaml as you need them (details on forbidden areas in Chapter 2). Then continue with the tutorials below:


2019-10-12 12:27