package com.roboclub.robobuggy.ui;
import com.roboclub.robobuggy.messages.EncoderMeasurement;
import com.roboclub.robobuggy.messages.SteeringMeasurement;
import com.roboclub.robobuggy.ros.Message;
import com.roboclub.robobuggy.ros.NodeChannel;
/**
* graphs for the pose
*/
public class PoseGraphsPanel extends RobobuggyGUIContainer {
/**
* makes the pose graphs panels
*/
public PoseGraphsPanel() {
this.addComponent(new PoseViewer(NodeChannel.POSE, true), 0.0, 0.0, .5, 1.0);
this.addComponent(new RoboBuggyGraph("Encoder", NodeChannel.ENCODER.getMsgPath(), new RoboBuggyGraph.GetGraphValues() {
@Override
public double getY(Message m) {
EncoderMeasurement encM = (EncoderMeasurement) m;
return encM.getDistance();
}
@Override
public double getX(Message m) {
EncoderMeasurement encM = (EncoderMeasurement) m;
return encM.getTimestamp().getTime();
}
}), 0.5, 0.0, 0.5, 0.5);
this.addComponent(new RoboBuggyGraph("Steering", NodeChannel.STEERING.getMsgPath(), new RoboBuggyGraph.GetGraphValues() {
@Override
public double getY(Message m) {
SteeringMeasurement strM = (SteeringMeasurement) m;
return strM.getAngle();
}
@Override
public double getX(Message m) {
SteeringMeasurement strM = (SteeringMeasurement) m;
return strM.getTimestamp().getTime();
}
}), 0.5, 0.0, 0.5, 0.5);
}
}