From 4f02323091e6ea1004276926191a1e37be800c13 Mon Sep 17 00:00:00 2001 From: NuoDaJia Date: Tue, 3 Mar 2026 17:03:37 +0800 Subject: [PATCH] add estop function --- src/CMakeLists.txt | 2 ++ src/msg/EStopState.msg | 12 ++++++++++++ src/msg/RobotArmStatus.msg | 2 ++ src/srv/ResetEStop.srv | 11 +++++++++++ 4 files changed, 27 insertions(+) create mode 100644 src/msg/EStopState.msg create mode 100644 src/srv/ResetEStop.srv diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ffdd168..4866d80 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -32,6 +32,7 @@ set(msg_files msg/ArmMotionParams.msg msg/ArmError.msg msg/GripperStatus.msg + msg/EStopState.msg ) set(action_files action/MoveToPosition.action @@ -61,6 +62,7 @@ set(srv_files srv/ClearArmError.srv srv/InverseKinematics.srv srv/SetArmEnable.srv + srv/ResetEStop.srv ) if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/include") diff --git a/src/msg/EStopState.msg b/src/msg/EStopState.msg new file mode 100644 index 0000000..6d9d372 --- /dev/null +++ b/src/msg/EStopState.msg @@ -0,0 +1,12 @@ +# EStopState.msg +# 急停状态广播消息(由HAL/驱动层向上游发布) +# +# 语义: +# - latched=true 表示急停已触发并处于锁存态 +# - generation 每次“新触发事件”递增,便于上层检测边沿 + +builtin_interfaces/Time stamp # 状态时间戳 +bool latched # 急停锁存状态 +uint8 source # 触发源(0=unknown,1=io,2=plc,3=driver_fault,4=software) +string reason # 触发原因文本 +uint32 generation # 触发代次(单调递增) diff --git a/src/msg/RobotArmStatus.msg b/src/msg/RobotArmStatus.msg index ae821fc..0c1ca36 100644 --- a/src/msg/RobotArmStatus.msg +++ b/src/msg/RobotArmStatus.msg @@ -3,5 +3,7 @@ string[] joint_names float64[] joint_positions bool[] joint_enabled int32[] joint_error_codes +bool estop_latched +uint32 estop_generation geometry_msgs/Pose left_arm_pose geometry_msgs/Pose right_arm_pose diff --git a/src/srv/ResetEStop.srv b/src/srv/ResetEStop.srv new file mode 100644 index 0000000..2bd938c --- /dev/null +++ b/src/srv/ResetEStop.srv @@ -0,0 +1,11 @@ +# ResetEStop.srv +# 急停复位服务(用于清除上层软件锁存态) +# +# 注意: +# - 该服务仅表达“复位请求”,是否允许复位由安全链路策略决定 +# - 硬件安全回路未恢复时,应返回 success=false + +bool reset # true=请求复位,false=无效请求 +--- +bool success # true=复位成功,false=复位失败 +string message # 结果描述(失败原因/诊断信息)