Beispiel #1
0
// BEGIN_TUTORIAL
// Here is the implementation of the TeleopPanel class.  TeleopPanel
// has these responsibilities:
//
// - Act as a container for GUI elements DriveWidget and QLineEdit.
// - Publish command velocities 10 times per second (whether 0 or not).
// - Saving and restoring internal state from a config file.
//
// We start with the constructor, doing the standard Qt thing of
// passing the optional *parent* argument on to the superclass
// constructor, and also zero-ing the velocities we will be
// publishing.
  TeleopPanel::TeleopPanel( QWidget* parent )
  : rviz::Panel( parent )
  , linear_velocity_( 0 )
  , angular_velocity_( 0 )
{
  // Next we lay out the "output topic" text entry field using a
  // QLabel and a QLineEdit in a QHBoxLayout.
  QHBoxLayout* topic_layout = new QHBoxLayout;
  topic_layout->addWidget( new QLabel( "Output Topic:" ));
  output_topic_editor_ = new QLineEdit;
  topic_layout->addWidget( output_topic_editor_ );

  // Then create the control widget.
  drive_widget_ = new DriveWidget;

  // Lay out the topic field above the control widget.
  QVBoxLayout* layout = new QVBoxLayout;
  layout->addLayout( topic_layout );
  layout->addWidget( drive_widget_ );
  setLayout( layout );

  // Create a timer for sending the output.  Motor controllers want to
  // be reassured frequently that they are doing the right thing, so
  // we keep re-sending velocities even when they aren't changing.
  // 
  // Here we take advantage of QObject's memory management behavior:
  // since "this" is passed to the new QTimer as its parent, the
  // QTimer is deleted by the QObject destructor when this TeleopPanel
  // object is destroyed.  Therefore we don't need to keep a pointer
  // to the timer.
  QTimer* output_timer = new QTimer( this );

  // Next we make signal/slot connections.
  connect( drive_widget_, SIGNAL( outputVelocity( float, float )), this, SLOT( setVel( float, float )));
  connect( output_topic_editor_, SIGNAL( editingFinished() ), this, SLOT( updateTopic() ));
  connect( output_timer, SIGNAL( timeout() ), this, SLOT( sendVel() ));

  // Start the timer.
  output_timer->start( 100 );

  // Make the control widget start disabled, since we don't start with an output topic.
  drive_widget_->setEnabled( false );
}
Beispiel #2
0
// only the first time
void OverlayTextDisplay::onInitialize()
{
    onEnable();
    updateTopic();
    updateOvertakePositionProperties();
    updateOvertakeColorProperties();
    updateTop();
    updateLeft();
    updateWidth();
    updateHeight();
    updateTextSize();
    updateFGColor();
    updateFGAlpha();
    updateBGColor();
    updateBGAlpha();
    updateFont();
    updateLineWidth();
    require_update_texture_ = true;
}
Beispiel #3
0
void GoalTool::onInitialize()
{
  PoseTool::onInitialize();
  setName( "2D Nav Goal" );
  updateTopic();
}
Beispiel #4
0
OverlayTextDisplay::OverlayTextDisplay() : Display(),
    texture_width_(0), texture_height_(0),
    text_size_(14),
    line_width_(2),
    text_(""), font_(""),
    bg_color_(0, 0, 0, 0),
    fg_color_(255, 255, 255, 255.0),
    require_update_texture_(false)
{
    update_topic_property_ = new rviz::RosTopicProperty(
        "Topic", "",
        ros::message_traits::datatype<jsk_rviz_plugins::OverlayText>(),
        "jsk_rviz_plugins::OverlayText topic to subscribe to.",
        this, SLOT( updateTopic() ));
    overtake_position_properties_property_ = new rviz::BoolProperty(
        "Overtake Position Properties", false,
        "overtake position properties specified by message such as left, top and font",
        this, SLOT(updateOvertakePositionProperties()));
    overtake_color_properties_property_ = new rviz::BoolProperty(
        "Overtake Color Properties", false,
        "overtake color properties specified by message such as left, top and font",
        this, SLOT(updateOvertakeColorProperties()));
    top_property_ = new rviz::IntProperty(
        "top", 0,
        "top position",
        this, SLOT(updateTop()));
    top_property_->setMin(0);
    left_property_ = new rviz::IntProperty(
        "left", 0,
        "left position",
        this, SLOT(updateLeft()));
    left_property_->setMin(0);
    width_property_ = new rviz::IntProperty(
        "width", 128,
        "width position",
        this, SLOT(updateWidth()));
    width_property_->setMin(0);
    height_property_ = new rviz::IntProperty(
        "height", 128,
        "height position",
        this, SLOT(updateHeight()));
    height_property_->setMin(0);
    text_size_property_ = new rviz::IntProperty(
        "text size", 12,
        "text size",
        this, SLOT(updateTextSize()));
    text_size_property_->setMin(0);
    line_width_property_ = new rviz::IntProperty(
        "line width", 2,
        "line width",
        this, SLOT(updateLineWidth()));
    line_width_property_->setMin(0);
    fg_color_property_ = new rviz::ColorProperty(
        "Foreground Color", QColor(25, 255, 240),
        "Foreground Color",
        this, SLOT(updateFGColor()));
    fg_alpha_property_ = new rviz::FloatProperty(
        "Foreground Alpha", 0.8, "Foreground Alpha",
        this, SLOT(updateFGAlpha()));
    fg_alpha_property_->setMin(0.0);
    fg_alpha_property_->setMax(1.0);
    bg_color_property_ = new rviz::ColorProperty(
        "Background Color", QColor(0, 0, 0),
        "Background Color",
        this, SLOT(updateBGColor()));
    bg_alpha_property_ = new rviz::FloatProperty(
        "Background Alpha", 0.8, "Background Alpha",
        this, SLOT(updateBGAlpha()));
    bg_alpha_property_->setMin(0.0);
    bg_alpha_property_->setMax(1.0);

    QFontDatabase database;
    font_families_ = database.families();
    font_property_ = new rviz::EnumProperty(
        "font", "DejaVu Sans Mono",
        "font", this,
        SLOT(updateFont()));
    for (size_t i = 0; i < font_families_.size(); i++) {
        font_property_->addOption(font_families_[i], (int)i);
    }
}
  PieChartDisplay::PieChartDisplay()
    : rviz::Display()
  {
    update_topic_property_ = new rviz::RosTopicProperty(
      "Topic", "",
      ros::message_traits::datatype<std_msgs::Float32>(),
      "std_msgs::Float32 topic to subscribe to.",
      this, SLOT( updateTopic() ));
    size_property_ = new rviz::IntProperty("size", 128,
                                           "size of the plotter window",
                                           this, SLOT(updateSize()));
    left_property_ = new rviz::IntProperty("left", 128,
                                           "left of the plotter window",
                                           this, SLOT(updateLeft()));
    top_property_ = new rviz::IntProperty("top", 128,
                                          "top of the plotter window",
                                          this, SLOT(updateTop()));
    fg_color_property_ = new rviz::ColorProperty("foreground color",
                                                 QColor(25, 255, 240),
                                                 "color to draw line",
                                                 this, SLOT(updateFGColor()));
    fg_alpha_property_
      = new rviz::FloatProperty("foreground alpha", 0.7,
                                "alpha belnding value for foreground",
                                this, SLOT(updateFGAlpha()));
    fg_alpha2_property_
      = new rviz::FloatProperty("foreground alpha 2", 0.4,
                                "alpha belnding value for foreground for indicator",
                                this, SLOT(updateFGAlpha2()));
    bg_color_property_ = new rviz::ColorProperty("background color",
                                                 QColor(0, 0, 0),
                                                 "background color",
                                                 this, SLOT(updateBGColor()));
    bg_alpha_property_
      = new rviz::FloatProperty("backround alpha", 0.0,
                                "alpha belnding value for background",
                                this, SLOT(updateBGAlpha()));
    text_color_property_
      = new rviz::ColorProperty("text color",
                                QColor(25, 255, 240),
                                "text color",
                                this, SLOT(updateTextColor()));
    text_alpha_property_
      = new rviz::FloatProperty("text alpha", 1.0,
                                "alpha belnding value for text",
                                this, SLOT(updateTextAlpha()));
    text_size_property_
      = new rviz::IntProperty("text size", 14,
                              "text size",
                              this, SLOT(updateTextSize()));
    show_caption_property_
      = new rviz::BoolProperty("show caption", true,
                                "show caption",
                                this, SLOT(updateShowCaption()));
    max_value_property_
      = new rviz::FloatProperty("max value", 1.0,
                                "max value of pie chart",
                                this, SLOT(updateMaxValue()));
    min_value_property_
      = new rviz::FloatProperty("min value", 0.0,
                                "min value of pie chart",
                                this, SLOT(updateMinValue()));
    auto_color_change_property_
      = new rviz::BoolProperty("auto color change",
                               false,
                               "change the color automatically",
                               this, SLOT(updateAutoColorChange()));
    max_color_property_
      = new rviz::ColorProperty("max color",
                                QColor(255, 0, 0),
                                "only used if auto color change is set to True.",
                                this, SLOT(updateMaxColor()));

  }
void AerialMapDisplay::reset() {
  Display::reset();
  //  unsub,clear,resub
  updateTopic();
}
 Plotter2DDisplay::Plotter2DDisplay()
   : rviz::Display(), min_value_(0.0), max_value_(0.0)
 {
   update_topic_property_ = new rviz::RosTopicProperty(
     "Topic", "",
     ros::message_traits::datatype<std_msgs::Float32>(),
     "std_msgs::Float32 topic to subscribe to.",
     this, SLOT(updateTopic()));
   show_value_property_ = new rviz::BoolProperty(
     "Show Value", true,
     "Show value on plotter",
     this, SLOT(updateShowValue()));
   buffer_length_property_ = new rviz::IntProperty(
     "Buffer length", 100,
     ros::message_traits::datatype<std_msgs::Float32>(),
     this, SLOT(updateBufferSize()));
   width_property_ = new rviz::IntProperty("width", 128,
                                           "width of the plotter window",
                                           this, SLOT(updateWidth()));
   width_property_->setMin(1);
   width_property_->setMax(2000);
   height_property_ = new rviz::IntProperty("height", 128,
                                            "height of the plotter window",
                                            this, SLOT(updateHeight()));
   height_property_->setMin(1);
   height_property_->setMax(2000);
   left_property_ = new rviz::IntProperty("left", 128,
                                          "left of the plotter window",
                                          this, SLOT(updateLeft()));
   left_property_->setMin(0);
   top_property_ = new rviz::IntProperty("top", 128,
                                         "top of the plotter window",
                                         this, SLOT(updateTop()));
   top_property_->setMin(0);
   auto_scale_property_ = new rviz::BoolProperty(
     "auto scale", true,
     "enable auto scale",
     this, SLOT(updateAutoScale()));
   max_value_property_ = new rviz::FloatProperty(
     "max value", 1.0,
     "max value, used only if auto scale is disabled",
     this, SLOT(updateMaxValue()));
   min_value_property_ = new rviz::FloatProperty(
     "min value", -1.0,
     "min value, used only if auto scale is disabled",
     this, SLOT(updateMinValue()));
   fg_color_property_ = new rviz::ColorProperty(
     "foreground color", QColor(25, 255, 240),
     "color to draw line",
     this, SLOT(updateFGColor()));
   fg_alpha_property_ = new rviz::FloatProperty(
     "foreground alpha", 0.7,
     "alpha belnding value for foreground",
     this, SLOT(updateFGAlpha()));
   fg_alpha_property_->setMin(0);
   fg_alpha_property_->setMax(1.0);
   bg_color_property_ = new rviz::ColorProperty(
     "background color", QColor(0, 0, 0),
     "background color",
     this, SLOT(updateBGColor()));
   bg_alpha_property_ = new rviz::FloatProperty(
     "backround alpha", 0.0,
     "alpha belnding value for background",
     this, SLOT(updateBGAlpha()));
   bg_alpha_property_->setMin(0);
   bg_alpha_property_->setMax(1.0);
   line_width_property_ = new rviz::IntProperty("linewidth", 1,
                                                "linewidth of the plot",
                                                this, SLOT(updateLineWidth()));
   line_width_property_->setMin(1);
   line_width_property_->setMax(1000);
   show_border_property_ = new rviz::BoolProperty(
     "border", true,
     "show border or not",
     this, SLOT(updateShowBorder()));
   text_size_property_ = new rviz::IntProperty("text size", 12,
                                               "text size of the caption",
                                               this, SLOT(updateTextSize()));
   text_size_property_->setMin(1);
   text_size_property_->setMax(1000);
   show_caption_property_ = new rviz::BoolProperty(
     "caption", true,
     "show caption or not",
     this, SLOT(updateShowCaption()));
   update_interval_property_ = new rviz::FloatProperty(
     "update interval", 0.04,
     "update interval of the plotter",
     this, SLOT(updateUpdateInterval()));
   update_interval_property_->setMin(0.0);
   update_interval_property_->setMax(100);
   auto_color_change_property_
     = new rviz::BoolProperty("auto color change",
                              false,
                              "change the color automatically",
                              this, SLOT(updateAutoColorChange()));
   max_color_property_
     = new rviz::ColorProperty(
       "max color",
       QColor(255, 0, 0),
       "only used if auto color change is set to True.",
       this, SLOT(updateMaxColor()));
 }