From 7cec35e3c92b28adfe7a9133a39125243901623a Mon Sep 17 00:00:00 2001 From: v4hn Date: Wed, 10 Sep 2025 12:31:08 +0200 Subject: [PATCH 1/2] support PyYAML 5.1 - works/required even in ROS noetic --- ros_ws/src/crazyswarm/scripts/chooser.py | 4 ++-- ros_ws/src/crazyswarm/scripts/pycrazyswarm/crazyflie.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ros_ws/src/crazyswarm/scripts/chooser.py b/ros_ws/src/crazyswarm/scripts/chooser.py index cb8e6b5dc..3ebff6597 100644 --- a/ros_ws/src/crazyswarm/scripts/chooser.py +++ b/ros_ws/src/crazyswarm/scripts/chooser.py @@ -45,7 +45,7 @@ def read_by_id(path): by_id = {} with open(path, 'r') as ymlfile: - root = yaml.load(ymlfile) + root = yaml.load(ymlfile, Loader=yaml.FullLoader) for node in root["crazyflies"]: id = int(node["id"]) by_id[id] = node @@ -63,7 +63,7 @@ def save(): allCrazyflies = read_by_id(os.path.join(args.configpath, "allCrazyflies.yaml")) enabled = read_by_id(os.path.join(args.configpath, "crazyflies.yaml")).keys() with open(os.path.join(args.configpath, "crazyflieTypes.yaml"), 'r') as ymlfile: - data = yaml.load(ymlfile) + data = yaml.load(ymlfile, Loader=yaml.FullLoader) cfTypes = data["crazyflieTypes"] # compute absolute pixel coordinates from the initial positions diff --git a/ros_ws/src/crazyswarm/scripts/pycrazyswarm/crazyflie.py b/ros_ws/src/crazyswarm/scripts/pycrazyswarm/crazyflie.py index d065f52de..aaeae1634 100644 --- a/ros_ws/src/crazyswarm/scripts/pycrazyswarm/crazyflie.py +++ b/ros_ws/src/crazyswarm/scripts/pycrazyswarm/crazyflie.py @@ -585,9 +585,9 @@ def __init__(self, crazyflies_yaml="../launch/crazyflies.yaml"): if crazyflies_yaml.endswith(".yaml"): with open(crazyflies_yaml, 'r') as ymlfile: - cfg = yaml.load(ymlfile) + cfg = yaml.load(ymlfile, Loader=yaml.FullLoader) else: - cfg = yaml.load(crazyflies_yaml) + cfg = yaml.load(crazyflies_yaml, Loader=yaml.FullLoader) self.tf = TransformListener() From f5e05a2d9944f281e5deff3e750f1b388a740b59 Mon Sep 17 00:00:00 2001 From: v4hn Date: Wed, 10 Sep 2025 12:34:44 +0200 Subject: [PATCH 2/2] fix motion_capture_interface_ip parameter nl.param<>(std::string, std::string) returns the value of the parameter from the function. The return value was ignored here, leading to an empty string being passed in as interface ip - breaking with an invalid parameter exception in boost later on. --- ros_ws/src/crazyswarm/src/crazyswarm_server.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ros_ws/src/crazyswarm/src/crazyswarm_server.cpp b/ros_ws/src/crazyswarm/src/crazyswarm_server.cpp index 6172ec58c..43d9e7f21 100644 --- a/ros_ws/src/crazyswarm/src/crazyswarm_server.cpp +++ b/ros_ws/src/crazyswarm/src/crazyswarm_server.cpp @@ -1456,7 +1456,7 @@ class CrazyflieServer cfg["hostname"] = hostname; if (nl.hasParam("motion_capture_interface_ip")) { std::string interface_ip; - nl.param("motion_capture_interface_ip", interface_ip); + nl.getParam("motion_capture_interface_ip", interface_ip); cfg["interface_ip"] = interface_ip; }