rm_control
Loading...
Searching...
No Matches
time_change_ui.h
Go to the documentation of this file.
1//
2// Created by llljjjqqq on 22-11-4.
3//
4
5#pragma once
6
8
9#include <rm_msgs/LeggedChassisStatus.h>
10
11#include <algorithm>
12
13namespace rm_referee
14{
15class TimeChangeUi : public UiBase
16{
17public:
18 explicit TimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, const std::string& graph_name,
19 std::deque<Graph>* graph_queue, std::deque<Graph>* character_queue)
20 : UiBase(rpc_value, base, graph_queue, character_queue)
21 {
22 graph_ = new Graph(rpc_value["config"], base_, id_++);
23 }
24 void update() override;
25 void updateForQueue() override;
26 virtual void updateConfig(){};
27};
28
30{
31public:
32 explicit TimeChangeGroupUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, const std::string& graph_name,
33 std::deque<Graph>* graph_queue, std::deque<Graph>* character_queue)
34 : GroupUiBase(rpc_value, base, graph_queue, character_queue)
35 {
36 graph_name_ = graph_name;
37 }
38 void update() override;
39 void updateForQueue() override;
40 virtual void updateConfig(){};
41
42protected:
43 std::string graph_name_;
44};
45
47{
48public:
49 explicit CapacitorTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
50 std::deque<Graph>* character_queue)
51 : TimeChangeUi(rpc_value, base, "capacitor", graph_queue, character_queue){};
52 void add() override;
53 void updateRemainCharge(const double remain_charge, const ros::Time& time);
54
55private:
56 void updateConfig() override;
57 double remain_charge_;
58};
59
61{
62public:
63 explicit RelocalizeProgressTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
64 std::deque<Graph>* character_queue)
65 : TimeChangeUi(rpc_value, base, "relocalize", graph_queue, character_queue)
66 {
67 }
68 void add() override;
69 void updateRelocalizeProgress(const double data, const ros::Time& time);
70
71private:
72 void updateConfig() override;
73 double relocalize_progress_;
74};
75
77{
78public:
79 explicit EffortTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
80 std::deque<Graph>* character_queue)
81 : TimeChangeUi(rpc_value, base, "effort", graph_queue, character_queue){};
82 void updateJointStateData(const sensor_msgs::JointState::ConstPtr data, const ros::Time& time);
83
84private:
85 void updateConfig() override;
86 double joint_effort_;
87 std::string joint_name_;
88};
89
91{
92public:
93 explicit ProgressTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
94 std::deque<Graph>* character_queue)
95 : TimeChangeUi(rpc_value, base, "progress", graph_queue, character_queue){};
96 void updateEngineerUiData(const rm_msgs::EngineerUi::ConstPtr data, const ros::Time& last_get_data_time);
97
98private:
99 void updateConfig() override;
100 uint32_t finished_data_, total_steps_;
101 std::string step_name_;
102};
103
105{
106public:
107 explicit DartStatusTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
108 std::deque<Graph>* character_queue)
109 : TimeChangeUi(rpc_value, base, "dart", graph_queue, character_queue){};
110 void updateDartClientCmd(const rm_msgs::DartClientCmd::ConstPtr data, const ros::Time& last_get_data_time);
111
112private:
113 void updateConfig() override;
114 uint8_t dart_launch_opening_status_;
115};
116
118{
119public:
120 explicit RotationTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
121 std::deque<Graph>* character_queue)
122 : TimeChangeUi(rpc_value, base, "rotation", graph_queue, character_queue)
123 {
124 if (rpc_value.hasMember("data"))
125 {
126 XmlRpc::XmlRpcValue data = rpc_value["data"];
127 try
128 {
129 arc_scale_ = static_cast<int>(data["scale"]);
130 gimbal_reference_frame_ = static_cast<std::string>(data["gimbal_reference_frame"]);
131 chassis_reference_frame_ = static_cast<std::string>(data["chassis_reference_frame"]);
132 }
133 catch (XmlRpc::XmlRpcException& e)
134 {
135 ROS_FATAL_STREAM("Exception raised by XmlRpc while reading the "
136 << "configuration: " << e.getMessage() << ".\n"
137 << "Please check configuration is exit");
138 }
139 }
140 else
141 ROS_WARN("RotationTimeChangeUi config 's member 'data' not defined.");
142 };
143 void updateChassisCmdData(const rm_msgs::ChassisCmd::ConstPtr data);
144
145private:
146 void updateConfig() override;
147 int arc_scale_;
148 std::string gimbal_reference_frame_, chassis_reference_frame_;
149 uint8_t chassis_mode_;
150};
151
153{
154public:
155 explicit LaneLineTimeChangeGroupUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
156 std::deque<Graph>* character_queue)
157 : TimeChangeGroupUi(rpc_value, base, "lane_line", graph_queue, character_queue)
158 {
159 if (rpc_value.hasMember("data"))
160 {
161 XmlRpc::XmlRpcValue& data = rpc_value["data"];
162 robot_radius_ = data["radius"];
163 robot_height_ = data["height"];
164 camera_range_ = data["camera_range"];
165 surface_coefficient_ = data["surface_coefficient"];
166 }
167 else
168 ROS_WARN("LaneLineTimeChangeGroupUi config 's member 'data' not defined.");
169
170 if (rpc_value.hasMember("reference_frame"))
171 {
172 reference_frame_ = static_cast<std::string>(rpc_value["reference_frame"]);
173 }
174 else
175 ROS_WARN("LaneLineTimeChangeGroupUi config 's member 'reference_frame' not defined.");
176
177 graph_vector_.insert(
178 std::pair<std::string, Graph*>(graph_name_ + "_left", new Graph(rpc_value["config"], base_, id_++)));
179 graph_vector_.insert(
180 std::pair<std::string, Graph*>(graph_name_ + "_right", new Graph(rpc_value["config"], base_, id_++)));
181
182 for (auto it : graph_vector_)
183 lane_line_double_graph_.push_back(it.second);
184 }
185 void updateJointStateData(const sensor_msgs::JointState::ConstPtr data, const ros::Time& time);
186
187protected:
188 std::string reference_frame_;
189 double robot_radius_, robot_height_, camera_range_, surface_coefficient_ = 0.5;
190 double pitch_angle_ = 0., screen_x_ = 1920, screen_y_ = 1080;
191 double end_point_a_angle_, end_point_b_angle_;
192
193private:
194 void updateConfig() override;
195
196 std::vector<Graph*> lane_line_double_graph_;
197};
198
200{
201public:
202 explicit BalancePitchTimeChangeGroupUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
203 std::deque<Graph>* character_queue)
204 : TimeChangeGroupUi(rpc_value, base, "balance_pitch", graph_queue, character_queue)
205 {
206 XmlRpc::XmlRpcValue config;
207
208 config["type"] = "line";
209 if (rpc_value["config"].hasMember("color"))
210 config["color"] = rpc_value["config"]["color"];
211 else
212 config["color"] = "cyan";
213 if (rpc_value["config"].hasMember("width"))
214 config["width"] = rpc_value["config"]["width"];
215 else
216 config["width"] = 2;
217 if (rpc_value["config"].hasMember("delay"))
218 config["delay"] = rpc_value["config"]["delay"];
219 else
220 config["delay"] = 0.2;
221
222 XmlRpc::XmlRpcValue data = rpc_value["data"];
223 ROS_ASSERT(data.hasMember("centre_point") && data.hasMember("bottom_angle") && data.hasMember("length"));
224 centre_point_[0] = static_cast<int>(data["centre_point"][0]);
225 centre_point_[1] = static_cast<int>(data["centre_point"][1]);
226 bottom_angle_ = data["bottom_angle"];
227 length_ = data["length"];
228 triangle_left_point_[0] = centre_point_[0] - length_ * sin(bottom_angle_ / 2);
229 triangle_left_point_[1] = centre_point_[1] + length_ * cos(bottom_angle_ / 2);
230 triangle_right_point_[0] = centre_point_[0] + length_ * sin(bottom_angle_ / 2);
231 triangle_right_point_[1] = centre_point_[1] + length_ * cos(bottom_angle_ / 2);
232
233 config["start_position"][0] = centre_point_[0] - length_;
234 config["start_position"][1] = centre_point_[1];
235 config["end_position"][0] = centre_point_[0] + length_;
236 config["end_position"][1] = centre_point_[1];
237 graph_vector_.insert(std::make_pair<std::string, Graph*>("bottom", new Graph(config, base_, id_++)));
238
239 config["start_position"][0] = centre_point_[0];
240 config["start_position"][1] = centre_point_[1];
241 config["end_position"][0] = triangle_left_point_[0];
242 config["end_position"][1] = triangle_left_point_[1];
243 graph_vector_.insert(std::make_pair<std::string, Graph*>("triangle_left_side", new Graph(config, base_, id_++)));
244
245 config["start_position"][0] = centre_point_[0];
246 config["start_position"][1] = centre_point_[1];
247 config["end_position"][0] = triangle_right_point_[0];
248 config["end_position"][1] = triangle_right_point_[1];
249 graph_vector_.insert(std::make_pair<std::string, Graph*>("triangle_right_side", new Graph(config, base_, id_++)));
250 }
251
252 void calculatePointPosition(const rm_msgs::BalanceStateConstPtr& data, const ros::Time& time);
253
254private:
255 void updateConfig() override;
256
257 int centre_point_[2], triangle_left_point_[2], triangle_right_point_[2], length_;
258 double bottom_angle_;
259};
260
262{
263public:
264 explicit PitchAngleTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
265 std::deque<Graph>* character_queue)
266 : TimeChangeUi(rpc_value, base, "pitch", graph_queue, character_queue){};
267 void updateJointStateData(const sensor_msgs::JointState::ConstPtr data, const ros::Time& time);
268
269private:
270 void updateConfig() override;
271 double pitch_angle_ = 0.;
272};
273
275{
276public:
277 explicit ImageTransmissionAngleTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base,
278 std::deque<Graph>* graph_queue, std::deque<Graph>* character_queue)
279 : TimeChangeUi(rpc_value, base, "image_transmission", graph_queue, character_queue){};
280 void updateJointStateData(const sensor_msgs::JointState::ConstPtr data, const ros::Time& time);
281
282private:
283 void updateConfig() override;
284 double image_transmission_angle_ = 0.;
285};
286
288{
289public:
290 explicit JointPositionTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
291 std::deque<Graph>* character_queue, std::string name)
292 : TimeChangeUi(rpc_value, base, name, graph_queue, character_queue)
293 {
294 if (rpc_value.hasMember("data"))
295 {
296 XmlRpc::XmlRpcValue data = rpc_value["data"];
297 min_val_ = static_cast<double>(data["min_val"]);
298 max_val_ = static_cast<double>(data["max_val"]);
299 direction_ = static_cast<std::string>(data["direction"]);
300 length_ = static_cast<double>(data["line_length"]);
301 }
302 name_ = name;
303 };
304 void updateJointStateData(const sensor_msgs::JointState::ConstPtr data, const ros::Time& time);
305
306private:
307 void updateConfig() override;
308 std::string name_, direction_;
309 double max_val_, min_val_, current_val_, length_;
310};
311
313{
314public:
315 explicit BulletTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
316 std::deque<Graph>* character_queue)
317 : TimeChangeUi(rpc_value, base, "remaining_bullet", graph_queue, character_queue){};
318 void updateBulletData(const rm_msgs::BulletAllowance& data, const ros::Time& time);
319 void reset();
320
321private:
322 void updateConfig() override;
323 int bullet_allowance_num_17_mm_, bullet_allowance_num_42_mm_, bullet_num_17_mm_{ 0 }, bullet_num_42_mm_{ 0 };
324};
325
327{
328public:
329 explicit TargetDistanceTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
330 std::deque<Graph>* character_queue)
331 : TimeChangeUi(rpc_value, base, "target_distance", graph_queue, character_queue){};
332 void updateTargetDistanceData(const rm_msgs::TrackData::ConstPtr& data);
333
334private:
335 void updateConfig() override;
336 double target_distance_;
337};
338
340{
341public:
342 explicit DeployDistanceTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
343 std::deque<Graph>* character_queue)
344 : TimeChangeUi(rpc_value, base, "deploy_distance", graph_queue, character_queue){};
345 void updateDeployDistanceData(const geometry_msgs::PointConstPtr& data);
346
347private:
348 void updateConfig() override;
349 double deploy_distance_{};
350};
351
353{
354public:
355 explicit HeroLegTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
356 std::deque<Graph>* character_queue)
357 : TimeChangeUi(rpc_value, base, "hero_leg_feedforward_countdown", graph_queue, character_queue)
358 {
359 }
360 void updateFeedforwardCountdown(int feedforward_countdown);
361
362private:
363 void updateConfig() override;
364 int feedforward_countdown_{};
365};
367{
368public:
369 explicit DroneTowardsTimeChangeGroupUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
370 std::deque<Graph>* character_queue)
371 : TimeChangeGroupUi(rpc_value, base, "drone_towards", graph_queue, character_queue)
372 {
373 if (rpc_value.hasMember("data"))
374 {
375 XmlRpc::XmlRpcValue& data = rpc_value["data"];
376 ori_x_ = static_cast<int>(data["ori_x"]);
377 ori_y_ = static_cast<int>(data["ori_y"]);
378 }
379 else
380 ROS_WARN("DroneTowardsTimeChangeGroupUi config 's member 'data' not defined.");
381
382 graph_vector_.insert(
383 std::pair<std::string, Graph*>(graph_name_ + "_mid", new Graph(rpc_value["config"], base_, id_++)));
384 graph_vector_.insert(
385 std::pair<std::string, Graph*>(graph_name_ + "_left", new Graph(rpc_value["config"], base_, id_++)));
386 graph_vector_.insert(
387 std::pair<std::string, Graph*>(graph_name_ + "_right", new Graph(rpc_value["config"], base_, id_++)));
388 };
389 void updateTowardsData(const geometry_msgs::PoseStampedConstPtr& data);
390
391private:
392 void updateConfig() override;
393 int ori_x_, ori_y_;
394 double angle_;
395 int mid_line_x1_, mid_line_y1_, mid_line_x2_, mid_line_y2_, left_line_x2_, left_line_y2_, right_line_x2_,
396 right_line_y2_;
397};
398
400{
401public:
402 explicit FriendBulletsTimeChangeGroupUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
403 std::deque<Graph>* character_queue)
404 : TimeChangeGroupUi(rpc_value, base, "friend_bullets", graph_queue, character_queue)
405 {
406 graph_vector_.insert(std::pair<std::string, Graph*>("hero", new Graph(rpc_value["config"], base_, id_++)));
407 graph_vector_.insert(std::pair<std::string, Graph*>("standard3", new Graph(rpc_value["config"], base_, id_++)));
408 graph_vector_.insert(std::pair<std::string, Graph*>("standard4", new Graph(rpc_value["config"], base_, id_++)));
409 graph_vector_.insert(std::pair<std::string, Graph*>("standard5", new Graph(rpc_value["config"], base_, id_++)));
410 int ui_start_y = 0;
411 for (auto it = graph_vector_.begin(); it != graph_vector_.end(); ++it)
412 {
413 if (it == graph_vector_.begin())
414 ui_start_y = it->second->getConfig().start_y;
415 else
416 {
417 ui_start_y -= 40;
418 it->second->setStartY(ui_start_y);
419 }
420 }
421 };
422 void updateBulletsData(const rm_referee::BulletNumData& data);
423
424private:
425 void updateConfig() override;
426 int hero_bullets_{ 1 }, standard3_bullets_{ 3 }, standard4_bullets_{ 4 }, standard5_bullets_{ 5 };
427};
428
430{
431public:
432 explicit TargetHpTimeChangeUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
433 std::deque<Graph>* character_queue)
434 : TimeChangeUi(rpc_value, base, "target_hp", graph_queue, character_queue)
435 {
436 if (rpc_value.hasMember("enemy_id"))
437 {
438 XmlRpc::XmlRpcValue& enemy_id = rpc_value["enemy_id"];
439 for (int i = 0; i < enemy_id.size(); i++)
440 {
441 int id = static_cast<int>(enemy_id[i]);
442 enemy_robot_hp_[id] = 0;
443 }
444 }
445 }
446 void setEnemyHp(const rm_msgs::GameRobotHp& data);
447 void updateTrackID(int id);
448 void updateTargeHptData();
449
450private:
451 void updateConfig() override;
452 std::map<int, int> enemy_robot_hp_;
453 int target_hp_{}, target_id_{};
454};
455
457{
458public:
459 explicit LegThetaTimeChangeGroupUi(XmlRpc::XmlRpcValue& rpc_value, Base& base, std::deque<Graph>* graph_queue,
460 std::deque<Graph>* character_queue)
461 : TimeChangeGroupUi(rpc_value, base, "leg_theta", graph_queue, character_queue)
462 {
463 XmlRpc::XmlRpcValue line_config;
464 line_config["type"] = "line";
465 if (rpc_value.hasMember("config") && rpc_value["config"].hasMember("color"))
466 line_config["color"] = rpc_value["config"]["color"];
467 else
468 line_config["color"] = "cyan";
469 if (rpc_value.hasMember("config") && rpc_value["config"].hasMember("width"))
470 line_config["width"] = rpc_value["config"]["width"];
471 else
472 line_config["width"] = 2;
473 if (rpc_value.hasMember("config") && rpc_value["config"].hasMember("delay"))
474 line_config["delay"] = rpc_value["config"]["delay"];
475 else
476 line_config["delay"] = 0.2;
477
478 // Virtual rod is rendered as multiple short segments (dash effect).
479 XmlRpc::XmlRpcValue virtual_rod_config = line_config;
480 if (rpc_value.hasMember("config") && rpc_value["config"].hasMember("virtual_rod_color"))
481 virtual_rod_config["color"] = rpc_value["config"]["virtual_rod_color"];
482 if (rpc_value.hasMember("config") && rpc_value["config"].hasMember("virtual_rod_width"))
483 virtual_rod_config["width"] = rpc_value["config"]["virtual_rod_width"];
484 else
485 virtual_rod_config["width"] = 1;
486
487 XmlRpc::XmlRpcValue rect_config;
488 rect_config["type"] = "rectangle";
489 if (rpc_value.hasMember("config") && rpc_value["config"].hasMember("chassis_color"))
490 rect_config["color"] = rpc_value["config"]["chassis_color"];
491 else
492 rect_config["color"] = line_config["color"];
493 rect_config["width"] = line_config["width"];
494 rect_config["delay"] = line_config["delay"];
495
496 if (rpc_value.hasMember("data"))
497 {
498 XmlRpc::XmlRpcValue data = rpc_value["data"];
499 if (data.hasMember("draw_chassis"))
500 draw_chassis_ = static_cast<bool>(data["draw_chassis"]);
501 if (data.hasMember("chassis_start") && data.hasMember("chassis_end"))
502 {
503 chassis_start_[0] = static_cast<int>(data["chassis_start"][0]);
504 chassis_start_[1] = static_cast<int>(data["chassis_start"][1]);
505 chassis_end_[0] = static_cast<int>(data["chassis_end"][0]);
506 chassis_end_[1] = static_cast<int>(data["chassis_end"][1]);
507 }
508 else
509 {
510 ROS_WARN("LegThetaTimeChangeGroupUi: 'data.chassis_start/end' not defined, using default rectangle.");
511 chassis_start_[0] = 800;
512 chassis_start_[1] = 600;
513 chassis_end_[0] = 1120;
514 chassis_end_[1] = 720;
515 }
516
517 if (data.hasMember("origin_point"))
518 {
519 origin_point_[0] = static_cast<int>(data["origin_point"][0]);
520 origin_point_[1] = static_cast<int>(data["origin_point"][1]);
521 }
522 else
523 {
524 // Default: rectangle center.
525 origin_point_[0] = (chassis_start_[0] + chassis_end_[0]) / 2;
526 origin_point_[1] = (chassis_start_[1] + chassis_end_[1]) / 2;
527 }
528
529 if (data.hasMember("link1_length"))
530 link1_length_m_ = static_cast<double>(data["link1_length"]);
531 if (data.hasMember("link2_length"))
532 link2_length_m_ = static_cast<double>(data["link2_length"]);
533 if (data.hasMember("pixels_per_meter"))
534 pixels_per_meter_ = static_cast<double>(data["pixels_per_meter"]);
535 if (data.hasMember("leg_side"))
536 leg_side_ = static_cast<std::string>(data["leg_side"]);
537 }
538 else
539 {
540 ROS_WARN("LegThetaTimeChangeGroupUi config 's member 'data' not defined.");
541 }
542
543 // Chassis rectangle (left=rear, right=front).
544 if (draw_chassis_)
545 {
546 rect_config["start_position"][0] = chassis_start_[0];
547 rect_config["start_position"][1] = chassis_start_[1];
548 rect_config["end_position"][0] = chassis_end_[0];
549 rect_config["end_position"][1] = chassis_end_[1];
550 graph_vector_.insert(std::make_pair<std::string, Graph*>("chassis", new Graph(rect_config, base_, id_++)));
551 }
552
553 // Link 1 and Link 2.
554 line_config["start_position"][0] = origin_point_[0];
555 line_config["start_position"][1] = origin_point_[1];
556 line_config["end_position"][0] = origin_point_[0];
557 line_config["end_position"][1] = origin_point_[1];
558 graph_vector_.insert(std::make_pair<std::string, Graph*>("link1", new Graph(line_config, base_, id_++)));
559 graph_vector_.insert(std::make_pair<std::string, Graph*>("link2", new Graph(line_config, base_, id_++)));
560 }
561
562 void calculatePointPosition(const rm_msgs::LeggedChassisStatusConstPtr& data, const ros::Time& time);
563
564private:
565 void updateConfig() override;
566
567 int chassis_start_[2]{ 800, 600 };
568 int chassis_end_[2]{ 1120, 720 };
569 int origin_point_[2]{ 960, 660 }; // hip/pivot point in screen coordinates
570
571 bool draw_chassis_{ true };
572
573 // IK config
574 double link1_length_m_{ 0.21 };
575 double link2_length_m_{ 0.248 };
576 double pixels_per_meter_{ 600.0 };
577 std::string leg_side_{ "left" }; // "left" or "right"
578
579 // Latest input (virtual rod)
580 double virtual_rod_length_m_{ 0.0 };
581 double virtual_rod_theta_rad_{ 0.0 };
582
583 // Solved points (screen coordinates)
584 int knee_point_[2]{ 960, 660 };
585 int foot_point_[2]{ 960, 660 };
586
587 // Keep IK solution continuous across updates (avoid knee flipping between the two possible IK branches).
588 bool knee_initialized_{ false };
589};
590
591} // namespace rm_referee
Definition time_change_ui.h:200
BalancePitchTimeChangeGroupUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:202
Definition data.h:120
Definition time_change_ui.h:313
BulletTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:315
Definition time_change_ui.h:47
CapacitorTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:49
void updateRemainCharge(const double remain_charge, const ros::Time &time)
Definition time_change_ui.cpp:76
void add() override
Definition time_change_ui.cpp:50
Definition time_change_ui.h:105
void updateDartClientCmd(const rm_msgs::DartClientCmd::ConstPtr data, const ros::Time &last_get_data_time)
Definition time_change_ui.cpp:183
DartStatusTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:107
Definition time_change_ui.h:340
DeployDistanceTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:342
Definition time_change_ui.h:367
DroneTowardsTimeChangeGroupUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:369
Definition time_change_ui.h:77
void updateJointStateData(const sensor_msgs::JointState::ConstPtr data, const ros::Time &time)
Definition time_change_ui.cpp:125
EffortTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:79
Definition time_change_ui.h:400
FriendBulletsTimeChangeGroupUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:402
Definition graph.h:13
Definition ui_base.h:72
Definition time_change_ui.h:353
HeroLegTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:355
Definition time_change_ui.h:275
ImageTransmissionAngleTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:277
Definition time_change_ui.h:288
JointPositionTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue, std::string name)
Definition time_change_ui.h:290
Definition time_change_ui.h:153
double end_point_a_angle_
Definition time_change_ui.h:191
double camera_range_
Definition time_change_ui.h:189
LaneLineTimeChangeGroupUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:155
std::string reference_frame_
Definition time_change_ui.h:188
Definition time_change_ui.h:457
LegThetaTimeChangeGroupUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:459
Definition time_change_ui.h:262
PitchAngleTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:264
Definition time_change_ui.h:91
void updateEngineerUiData(const rm_msgs::EngineerUi::ConstPtr data, const ros::Time &last_get_data_time)
Definition time_change_ui.cpp:154
ProgressTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:93
Definition time_change_ui.h:61
RelocalizeProgressTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:63
void add() override
Definition time_change_ui.cpp:81
void updateRelocalizeProgress(const double data, const ros::Time &time)
Definition time_change_ui.cpp:107
Definition time_change_ui.h:118
RotationTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:120
Definition time_change_ui.h:327
TargetDistanceTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:329
Definition time_change_ui.h:430
TargetHpTimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:432
Definition time_change_ui.h:30
std::string graph_name_
Definition time_change_ui.h:43
virtual void updateConfig()
Definition time_change_ui.h:40
TimeChangeGroupUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, const std::string &graph_name, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:32
void update() override
Definition time_change_ui.cpp:18
void updateForQueue() override
Definition time_change_ui.cpp:40
Definition time_change_ui.h:16
TimeChangeUi(XmlRpc::XmlRpcValue &rpc_value, Base &base, const std::string &graph_name, std::deque< Graph > *graph_queue, std::deque< Graph > *character_queue)
Definition time_change_ui.h:18
void updateForQueue() override
Definition time_change_ui.cpp:28
virtual void updateConfig()
Definition time_change_ui.h:26
void update() override
Definition time_change_ui.cpp:11
Definition ui_base.h:20
Graph * graph_
Definition ui_base.h:59
static int id_
Definition ui_base.h:60
Base & base_
Definition ui_base.h:58
Definition data.h:109