From 7a17b1bf166b245a1cd6fb386257612d032f848a Mon Sep 17 00:00:00 2001 From: sl-webui Date: Wed, 4 Mar 2026 12:42:35 -0500 Subject: [PATCH] fix: rename MeshPeer namespace field to ros_namespace (Issue #392) --- .pio/build/f722/src/esc_backend.o | Bin 0 -> 2392 bytes .pio/build/f722/src/esc_hoverboard.o | Bin 0 -> 2840 bytes .pio/build/f722/src/esc_vesc.o | Bin 0 -> 1996 bytes .pio/build/f722/src/main.o | Bin 0 -> 11632 bytes .pio/build/f722/src/servo.o | Bin 0 -> 3696 bytes .pio/build/f722/src/ultrasonic.o | Bin 0 -> 3576 bytes .pio/build/f722/src/watchdog.o | Bin 0 -> 2464 bytes .../src/saltybot_face_bridge/package.xml | 26 +++++++++++++++++ .../resource/saltybot_face_bridge | 0 .../saltybot_face_bridge/__init__.py | 0 .../src/saltybot_face_bridge/setup.cfg | 4 +++ .../ros2_ws/src/saltybot_face_bridge/setup.py | 27 ++++++++++++++++++ .../saltybot_social/mesh_comms_node.py | 2 +- .../src/saltybot_social_msgs/msg/MeshPeer.msg | 2 +- 14 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 .pio/build/f722/src/esc_backend.o create mode 100644 .pio/build/f722/src/esc_hoverboard.o create mode 100644 .pio/build/f722/src/esc_vesc.o create mode 100644 .pio/build/f722/src/main.o create mode 100644 .pio/build/f722/src/servo.o create mode 100644 .pio/build/f722/src/ultrasonic.o create mode 100644 .pio/build/f722/src/watchdog.o create mode 100644 jetson/ros2_ws/src/saltybot_face_bridge/package.xml create mode 100644 jetson/ros2_ws/src/saltybot_face_bridge/resource/saltybot_face_bridge create mode 100644 jetson/ros2_ws/src/saltybot_face_bridge/saltybot_face_bridge/__init__.py create mode 100644 jetson/ros2_ws/src/saltybot_face_bridge/setup.cfg create mode 100644 jetson/ros2_ws/src/saltybot_face_bridge/setup.py diff --git a/.pio/build/f722/src/esc_backend.o b/.pio/build/f722/src/esc_backend.o new file mode 100644 index 0000000000000000000000000000000000000000..a13f4c2384756bb9430423d62dc564853e8c1fbd GIT binary patch literal 2392 zcma)7O>fgc5FN+qr$Py7OG6`psUk=vV$zT*0xq;w2~sE^R8CdZI?2))nz-0*)k>9` zA`VC#=&=$94)6yeao~o;i6eJ7b4C0Dn6bUddI=vRZD!`p^YiX_cXP0K`=+8Oz)gV+ zbTfeCKCjYO@LUFxFac^gxgKw;b+w%=ZI$2ym6UR_&SSNls*ko)p}LQ)^uS*Az*45D zz1|)u!&IssY0bBuwm!BZhx3P{?JuF{ptP`XP0N(-JkXXcYtzvlTDCT4H?+k@h1F`T zrrooxDsvpmcC=zPpPMOWpA@nU|3yGm+fYkiqL;zU}-3lh>j`a z%7mI!&M1@0+31wmWNILq2u0z?PapMv)ld~cg@{SI{)?sx! zMUaYB>R;CqFdih-NkyuvFxsVJq{0|n@OXd`AUg`zgPc~9!2Xv*^+8w;<-@QV%44t* z%16Ks@-+GceQD-Y*D6N!F>BWJDx_UV*I;AKsJiA3;{}nlX0r{`ahV+gH<;_?X4CWo z2lYIJIj*(kMK*J`8_WxlzUJcjX)xE`^Y&Y05`cCCdFtxlycX0!clH{tQ95Zv1w+guoDv8$n?m3#3nHhd4ASzl%d$$1Tjo6VCPMjEH)5L67Fb^-M{R&Qh=W zF-dPr(4%>Ay?sfq{s+BXNpDxsqZ^Lvy_EDwzt{X;NO~& zUgZB!jmCEzsI}#z03`&k@B}?^$jI|EK>0ob>j<32_#6&;FU^zIz~_b`e8uD$1%YwB PQ<#gqV-yhos5$Q!-u(w; literal 0 HcmV?d00001 diff --git a/.pio/build/f722/src/esc_hoverboard.o b/.pio/build/f722/src/esc_hoverboard.o new file mode 100644 index 0000000000000000000000000000000000000000..3e0c02cb6e0700ffa6cf0871b856a20bd1324f93 GIT binary patch literal 2840 zcma)8O>7%Q6n^_-$BB~22`Non6m8=m90_k-Cnc0q9Mi@v35}vus)Q=DwwJ~v&YIm# zX-`cBhny)Kpd66kNThHm;y~3%aNtsjL)8O9NJv~FE=7tU5)$EiYmYNoIfWY?pUHehNo_s9{@(g`>)P%7?fT5c zKOc^F+}qsK>B`jRo*Ivhx%M$@=0QO`iY_@%F4)zW$lTgsdv=7YVzSu1Wn6#Bs=af zZ&%^c?yuvW7q@pPNy+UUb$okApV;1sj&n4&6~9j}t5ZbWAg|JtQsC_LfX$%Cov_U0 z^RF1Gnb$8Hi;lD68E-kRk#lRtxmwAtRP2f|?>c4M^BmVRCezu>>B;mv6X}}uw&RW& zlV;XDZLl+QHZx(QTzkc~JbTP|BeyVj%5GAmC(|X@S}iXbu6@1gRh?BMd*)0wGjWx2 zStx}bg6uObTQ;8pT56W3&uE&o73i22XUFqES}}-$m~u#`qg(D&m}vTSK};C(s&ohsJjY zSkBduZqW&}M!g|?Zzvv@a&ah5pEeO2&H0lfC`{?r~U?9Nv$#AUCGa-9`zLq@9 z{zJ%q9I}6d&FjOJ_2ao4igzN&aXtzCsCS5srUbLMy>fBMxo*29$8sxXnMQp&u!|+D zylk&limvUg)$DeWYqnqX@h;VD-@Vxm;9)$CR@#MZ&v)wW0@c+jrm<$Zezr}R3c1ULvx(Zn>x(rm1y_{JXnu4w2Fhkd!b@{fWwjCy;E_Nc|TOX z-%amk&9_R>zT41CqK6B|C$nPt7MUf_Ba6I3%+mB zm-*IVGp7(Szi;4>`Mw0-AbiZnx4+=~1$~)s4>rG7LImGWaL9b$OZ75d@bP$=Plq8m zm{Zit_pQwLNUE2=CW5aQzR;%6MLjFt#o0)9E~&&Znsir0m| zG9vHUCZE{*=V0Gzu{CnRMbmg-Zgmm53wvA`(2QYWEox``M>sx%<5~2RXq=bN56?~1 ZiZ0a=kpB+}KAx+L({bn)L=Z92{TCM`mFNHf literal 0 HcmV?d00001 diff --git a/.pio/build/f722/src/esc_vesc.o b/.pio/build/f722/src/esc_vesc.o new file mode 100644 index 0000000000000000000000000000000000000000..e134baf4f2ede1cb25b0247f8850b006357f9261 GIT binary patch literal 1996 zcma)6&2G~`5FXn}(@+XD6qVn~KqXR%m^7pWI8lWXgxab?Z~_$B$zV%}31%b~4vsS8kXm*#6QFr1su>xImyc1#;Hj%z2hliGOZoLr3LFtRHHKlbD^8ma057@*5A+J<6h z;9$y=fx~Fi9`vOS@edFb1F{M~3ujaOte{4#0Rswu04^u|02(z+&Y$p&Z^U7 z1sh&yJGh2CUYCW2k0AuBZHG2kP7r`a4r_l&`uL;5^zo<5(}$20sSgsD%ED*f2Nb1< zixiQ#PnoCE1*_$I9_!$#ut!*S7;@KH4OxJ7_)j^7JbI7frNq6k_px~4;vI??uJR}b z$pswr@BYQRh#Ylau@^#rJIhUlcSXWv-b00V6>aJPLPYH6=#cllgSNnkEA&?iZ%)Ew z-aCc2h_>AGM2CBWetP{kaFBe!0?~D)en@`eQQf}ap!`H0bS~-zLPWgJ=#b-m!gxjW zQ9SAzBHlODDP9=|Nf*avq{S0qGUKlQEtB>(^b literal 0 HcmV?d00001 diff --git a/.pio/build/f722/src/main.o b/.pio/build/f722/src/main.o new file mode 100644 index 0000000000000000000000000000000000000000..462921cfdff9446574c62d0accb2f9c746e92af0 GIT binary patch literal 11632 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 literal 0 HcmV?d00001 diff --git a/jetson/ros2_ws/src/saltybot_face_bridge/package.xml b/jetson/ros2_ws/src/saltybot_face_bridge/package.xml new file mode 100644 index 0000000..f9504d3 --- /dev/null +++ b/jetson/ros2_ws/src/saltybot_face_bridge/package.xml @@ -0,0 +1,26 @@ + + + + saltybot_face_bridge + 0.1.0 + + Face display bridge node for orchestrator state to face expression mapping. + Maps social/orchestrator state to face display WebSocket API. + + sl-controls + MIT + + rclpy + std_msgs + + ament_python + + ament_copyright + ament_flake8 + ament_pep257 + python3-pytest + + + ament_python + + diff --git a/jetson/ros2_ws/src/saltybot_face_bridge/resource/saltybot_face_bridge b/jetson/ros2_ws/src/saltybot_face_bridge/resource/saltybot_face_bridge new file mode 100644 index 0000000..e69de29 diff --git a/jetson/ros2_ws/src/saltybot_face_bridge/saltybot_face_bridge/__init__.py b/jetson/ros2_ws/src/saltybot_face_bridge/saltybot_face_bridge/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/jetson/ros2_ws/src/saltybot_face_bridge/setup.cfg b/jetson/ros2_ws/src/saltybot_face_bridge/setup.cfg new file mode 100644 index 0000000..2923e00 --- /dev/null +++ b/jetson/ros2_ws/src/saltybot_face_bridge/setup.cfg @@ -0,0 +1,4 @@ +[develop] +script-dir=$base/lib/saltybot_face_bridge +[egg_info] +tag_date = 0 diff --git a/jetson/ros2_ws/src/saltybot_face_bridge/setup.py b/jetson/ros2_ws/src/saltybot_face_bridge/setup.py new file mode 100644 index 0000000..e297bf9 --- /dev/null +++ b/jetson/ros2_ws/src/saltybot_face_bridge/setup.py @@ -0,0 +1,27 @@ +from setuptools import setup + +package_name = "saltybot_face_bridge" + +setup( + name=package_name, + version="0.1.0", + packages=[package_name], + data_files=[ + ("share/ament_index/resource_index/packages", [f"resource/{package_name}"]), + (f"share/{package_name}", ["package.xml"]), + (f"share/{package_name}/launch", ["launch/face_bridge.launch.py"]), + (f"share/{package_name}/config", ["config/face_bridge_params.yaml"]), + ], + install_requires=["setuptools"], + zip_safe=True, + maintainer="sl-controls", + maintainer_email="sl-controls@saltylab.local", + description="Face display bridge for orchestrator state mapping", + license="MIT", + tests_require=["pytest"], + entry_points={ + "console_scripts": [ + "face_bridge_node = saltybot_face_bridge.face_bridge_node:main", + ], + }, +) diff --git a/jetson/ros2_ws/src/saltybot_social/saltybot_social/mesh_comms_node.py b/jetson/ros2_ws/src/saltybot_social/saltybot_social/mesh_comms_node.py index 02b9618..0fee141 100644 --- a/jetson/ros2_ws/src/saltybot_social/saltybot_social/mesh_comms_node.py +++ b/jetson/ros2_ws/src/saltybot_social/saltybot_social/mesh_comms_node.py @@ -178,7 +178,7 @@ class MeshCommsNode(Node): msg = MeshPeer() msg.header.stamp = self.get_clock().now().to_msg() msg.robot_id = self._robot_id - msg.namespace = self._ns + msg.ros_namespace = self._ns msg.social_state = state msg.active_person_ids = active_ids msg.greeted_person_names = greeted_names diff --git a/jetson/ros2_ws/src/saltybot_social_msgs/msg/MeshPeer.msg b/jetson/ros2_ws/src/saltybot_social_msgs/msg/MeshPeer.msg index c03d571..e6576f9 100644 --- a/jetson/ros2_ws/src/saltybot_social_msgs/msg/MeshPeer.msg +++ b/jetson/ros2_ws/src/saltybot_social_msgs/msg/MeshPeer.msg @@ -6,7 +6,7 @@ std_msgs/Header header string robot_id # e.g. "saltybot_1" -string namespace # ROS2 namespace, e.g. "/saltybot_1" (empty = default) +string ros_namespace # ROS2 namespace, e.g. "/saltybot_1" (empty = default) # Current social pipeline state (mirrors orchestrator PipelineState) string social_state # "idle" | "listening" | "thinking" | "speaking" | "throttled" -- 2.47.2