From 9fc9517a4a082da29ceb39cc3421ba0fed3d9df3 Mon Sep 17 00:00:00 2001 From: Charles McCabe Date: Sun, 24 May 2026 10:37:09 -0400 Subject: [PATCH 1/2] added risk to Gui --- .../QWidget/QCarInfoWidget/QCarInfoWidget.cpp | 22 +++++++++++++++++-- .../QWidget/QCarInfoWidget/QCarInfoWidget.hpp | 8 +++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/sim_ws/src/arcus_gui/src/QWidget/QCarInfoWidget/QCarInfoWidget.cpp b/sim_ws/src/arcus_gui/src/QWidget/QCarInfoWidget/QCarInfoWidget.cpp index a21de31..a50274e 100644 --- a/sim_ws/src/arcus_gui/src/QWidget/QCarInfoWidget/QCarInfoWidget.cpp +++ b/sim_ws/src/arcus_gui/src/QWidget/QCarInfoWidget/QCarInfoWidget.cpp @@ -11,6 +11,8 @@ QCarInfoWidget::QCarInfoWidget(std::shared_ptr node_, QWidget* par connect(this, &QCarInfoWidget::updateSpeedIU, this, &QCarInfoWidget::onUpdateSpeedUI); connect( this, &QCarInfoWidget::updateAngleIU, this, &QCarInfoWidget::onUpdateAngleUI); + + connect( this, &QCarInfoWidget::updateRiskIU, this, &QCarInfoWidget::onUpdateRiskUI); } void QCarInfoWidget::initSubscriber(void) @@ -26,8 +28,12 @@ void QCarInfoWidget::initSubscriber(void) _sub_acker = _node->create_subscription(DRIVE_TOPIC, 1, [this](ackermann_msgs::msg::AckermannDriveStamped msg_){ this->CB_driver(msg_); - }); - } + }); + + _sub_risk = _node->create_subscription(RISK_TOPIC, 1, [this](std_msgs::msg::Float32 msg_){ + this->CB_risk(msg_); + }); + } else { assert(false && "Error: GUI node is null"); @@ -48,6 +54,13 @@ void QCarInfoWidget::CB_driver(ackermann_msgs::msg::AckermannDriveStamped& msg_) emit this->updateAngleIU(angle); } +void QCarInfoWidget::CB_risk(std_msgs::msg::Float32& msg_) +{ + float risk = msg_.data; + + emit this->updateRiskIU(risk); +} + void QCarInfoWidget::onUpdateSpeedUI(float speed_) { this->_ui.lcdSpeed->display(QString::number(speed_,'f',2)); @@ -58,3 +71,8 @@ void QCarInfoWidget::onUpdateAngleUI(float angle_) this->_ui.lcdAngle->display(QString::number((180.0*angle_/pi),'f',2)); } +void QCarInfoWidget::onUpdateRiskUI(float risk_) +{ + this->_ui.lcdX1->display(QString::number(risk_,'f',2)); +} + diff --git a/sim_ws/src/arcus_gui/src/QWidget/QCarInfoWidget/QCarInfoWidget.hpp b/sim_ws/src/arcus_gui/src/QWidget/QCarInfoWidget/QCarInfoWidget.hpp index 3ccdd04..796b1b9 100644 --- a/sim_ws/src/arcus_gui/src/QWidget/QCarInfoWidget/QCarInfoWidget.hpp +++ b/sim_ws/src/arcus_gui/src/QWidget/QCarInfoWidget/QCarInfoWidget.hpp @@ -3,6 +3,7 @@ #include "UI_CarInfo.h" #include "nav_msgs/msg/odometry.hpp" +#include "std_msgs/msg/float32.hpp" #include "ackermann_msgs/msg/ackermann_drive_stamped.hpp" #include @@ -14,6 +15,7 @@ class QCarInfoWidget : public QWidget static constexpr const char* TOPIC_ODOM = "/odometry/filtered"; static constexpr const char* DRIVE_TOPIC = "/drive"; + static constexpr const char* RISK_TOPIC = "/pure_pursuit/trajectory_risk"; static constexpr const float pi = 3.14159265359; @@ -24,10 +26,12 @@ class QCarInfoWidget : public QWidget signals: void updateSpeedIU(float speed_); void updateAngleIU(float angle_); + void updateRiskIU(float risk_); private slots: void onUpdateAngleUI(float angle_); void onUpdateSpeedUI(float speed_); + void onUpdateRiskUI(float risk_); private: @@ -39,10 +43,14 @@ class QCarInfoWidget : public QWidget void CB_driver(ackermann_msgs::msg::AckermannDriveStamped& msg_); + void CB_risk(std_msgs::msg::Float32& msg_); + std::shared_ptr> _sub_odom; std::shared_ptr> _sub_acker; + std::shared_ptr> _sub_risk; + std::shared_ptr _node; Ui::CarInfoWidget _ui; From e6f23334b9573b6eca14e36c686f67b90cf9a186 Mon Sep 17 00:00:00 2001 From: gabduf Date: Sun, 24 May 2026 10:44:50 -0400 Subject: [PATCH 2/2] info x -> risk --- sim_ws/src/arcus_gui/ui/ui/CarInfo.ui | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sim_ws/src/arcus_gui/ui/ui/CarInfo.ui b/sim_ws/src/arcus_gui/ui/ui/CarInfo.ui index d4862dc..e958911 100644 --- a/sim_ws/src/arcus_gui/ui/ui/CarInfo.ui +++ b/sim_ws/src/arcus_gui/ui/ui/CarInfo.ui @@ -62,7 +62,7 @@ - Info 1... : + Risk : @@ -218,7 +218,7 @@ - Info 2... : + @@ -248,7 +248,7 @@ - Info 3... : +