The ROS package qt_ctrl aims at proposing several controllers
for ROS with Qt GUI, in order to compare them.
The ROS package
qt_ctrl aims at proposing several controllers for ROS with Qt GUI, in order to compare them. Please note that ROS is currently only setup to handle Qt 4, not Qt 5. I am currently searching how to make it work on Ubuntu 18.04, which only includes Qt 5 and ROS Melodic, for which several ROS packages (
qt_build and those for Turtlebot) are not yet available.
This documentation is generated using
rosdoc_lite and Doxygen. It seems impossible to change the configuration of
rosdoc_lite in order to include direct links to ROS' and Qt's online documentations. References to these documentations have thus been gathered in a specific page.
Several versions 0.1.* were developped in 2017 from B. Lesquoy's work, realised during is Master course. They were only using ROS.
Version 0.2.0 was the first to use both Qt and ROS. Based on the code generated by
catkin_create_qt_pkg, it is a basic teleoperation application, sending constant velocities to ROS.
Version 0.2.1 is similar to the Turtlebot keyboard teleoperation, except that it is based on a C++ class (instead of a Python script) using a Qt GUI. It also includes a complete documentation.
Version 0.2.2 adds display of the commands published and of some of the odometry data recieved. It makes me discover a feature (this is not a bug) of Qt about graphical object and multi-threads.
Version 0.2.3 adds the possibility to save the odometry data in a csv file (to handle it easily later, either by a personnal program or in a spreadsheet).
Version 0.2.4 allows to load from a file the translation and angular accelerations, together with the associated duration, making it possible to transform a sequence of accelerations with their duration into a path, i.e. a sequence of position, extracted from the csv savefile.
Version 0.3.0 does not add any functionality to the programm, but it changes the code structure: where controllers where previously selected through conditionals, seperate classes and inheritance are now used in order to ease future developments. Each controller now inherits an abstract class, which declares the methods used by the ROS node. Similarly, each of its interface will inherit another abstract class.
Version 0.3.1 adds a new category of controllers, which tries to track a given trajectory.
Version 0.3.2 adds a new category of controllers, which tries to reach a given oriented point. First example of reaching controller uses ISeeML library, from which some of the model classes (vectors, points and oriented points) were taken. ISeeML classes and library are now directly used.