Skip to content

Commit 8c614f0

Browse files
Add C++ conversion APIs to bosdyn_*msgs (#72)
* Bump ros_utilities from `41b3177` to `2dc3c6b` Signed-off-by: Michel Hidalgo <[email protected]> * Adapt bosdyn_*msgs to generate C++ conversion APIs Signed-off-by: Michel Hidalgo <[email protected]> * Add missing bosdyn* Python package peg Signed-off-by: Michel Hidalgo <[email protected]> * Update bundle builds to deal with Spot C++ Signed-off-by: Michel Hidalgo <[email protected]> * Update CI workflow Signed-off-by: Michel Hidalgo <[email protected]> --------- Signed-off-by: Michel Hidalgo <[email protected]>
1 parent ff5fa6a commit 8c614f0

File tree

43 files changed

+275
-8
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+275
-8
lines changed

.github/workflows/ci.yml

+5-2
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,12 @@ jobs:
3636
submodules: true
3737
- name: Install dependencies
3838
run: |
39-
apt update && apt install -y python3-pip
39+
apt update && apt install -y python3-pip wget
4040
export PIP_CONSTRAINT=src/bosdyn_msgs/pip-constraint.txt
41-
rosdep update && rosdep install -i -y --from-path src
41+
rosdep update && rosdep install -i -y --from-path src --skip-keys "$(cat src/bosdyn_msgs/rosdep-skip.txt)"
42+
for url in $(cat src/bosdyn_msgs/${{ matrix.config.arch }}-dpkg.txt); do
43+
wget $url && apt install -y ./$(basename $url);
44+
done
4245
- name: Build and run tests for ${{ matrix.config.arch }}
4346
run: |
4447
source /opt/ros/humble/setup.bash

.tooling/docker/amd64/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ RUN apt-get update && apt-get install -y \
77
python3-bloom \
88
makeself \
99
dpkg-dev \
10-
debhelper && \
10+
debhelper \
11+
wget && \
1112
rm -rf /var/lib/apt/lists/*
1213

1314
COPY .tooling/pip/pip.conf /etc/pip.conf

.tooling/docker/arm64/Dockerfile

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ RUN apt-get update && apt-get install -y \
77
python3-bloom \
88
makeself \
99
dpkg-dev \
10-
debhelper && \
10+
debhelper \
11+
wget && \
1112
rm -rf /var/lib/apt/lists/*
1213

1314
COPY .tooling/pip/pip.conf /etc/pip.conf

.tooling/scripts/install-bundle

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
set -e
44

5+
(cd apt && if [ -s files.txt ]; then sudo apt update && for url in $(cat files.txt); do wget $url && sudo apt install ./$(basename $url); done; fi)
56
(cd apt && if [ -s packages.txt ]; then sudo apt update && sudo apt install python3-pip $(cat packages.txt); fi)
67
(cd pip && if [ -s requirements.txt ]; then pip install -c constraint.txt -r requirements.txt; fi)
78
(cd rosdep && sudo cp -r * ${ROSDEP_SOURCE_PATH:-/etc/ros/rosdep}/. && rosdep update)

Makefile

+8-2
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,17 @@ ros-$(DISTRO)-%-$(OS_VERSION).run: FORCE
4949
mkdir -p $(BUILD_DIR)/$(ALIAS)/{bloom,rosdep} $(BUILD_DIR)/$(ALIAS)/out/{pip,apt,rosdep}
5050
rosdep update
5151
rosdep keys --from-paths $(SOURCE_DIR) | grep -e '-pip$$' > $(BUILD_DIR)/$(ALIAS)/rosdep/skip.txt
52+
[ -f $(SOURCE_DIR)/rosdep-skip.txt ] && cat < $(SOURCE_DIR)/rosdep-skip.txt >> $(BUILD_DIR)/$(ALIAS)/rosdep/skip.txt
5253
rosdep resolve $$(cat $(BUILD_DIR)/$(ALIAS)/rosdep/skip.txt | grep pip) | grep -v \# | tr ' ' '\n' > $(BUILD_DIR)/$(ALIAS)/out/pip/requirements.txt
5354
touch $(BUILD_DIR)/$(ALIAS)/out/pip/constraint.txt
5455
[ -f $(SOURCE_DIR)/pip-constraint.txt ] && cp -f $(SOURCE_DIR)/pip-constraint.txt $(BUILD_DIR)/$(ALIAS)/out/pip/constraint.txt
5556
if [ -s $(BUILD_DIR)/$(ALIAS)/out/pip/requirements.txt ]; then \
5657
pip install -c $(BUILD_DIR)/$(ALIAS)/out/pip/constraint.txt -r $(BUILD_DIR)/$(ALIAS)/out/pip/requirements.txt; \
5758
fi
59+
if [ -f $(SOURCE_DIR)/${ARCH}-dpkg.txt ]; then \
60+
cp -f $(SOURCE_DIR)/${ARCH}-dpkg.txt $(BUILD_DIR)/$(ALIAS)/out/apt/files.txt; \
61+
for url in $$(cat $(SOURCE_DIR)/${ARCH}-dpkg.txt); do wget -P /tmp $$url && sudo apt install -y /tmp/$$(basename $$url); done; \
62+
fi
5863
$(SCRIPTS_DIR)/rosdep2null -o $(BUILD_DIR)/$(ALIAS)/rosdep -v $(OS_NAME) \
5964
$$(colcon --log-base /dev/null list -t -n --packages-up-to $*) $$(cat $(BUILD_DIR)/$(ALIAS)/rosdep/skip.txt)
6065
ROSDEP_SOURCE_PATH=$(BUILD_DIR)/$(ALIAS)/rosdep/sources.list.d:$${ROSDEP_SOURCE_PATH:-$(DEFAULT_ROSDEP_PATH)/sources.list.d} rosdep update
@@ -65,7 +70,8 @@ ros-$(DISTRO)-%-$(OS_VERSION).run: FORCE
6570
bloom-generate rosdebian --os-name $(OS_NAME) --os-version $(OS_VERSION) --ros-distro $(DISTRO); \
6671
sed -i 's/dh_auto_build$$/true # no dh_auto_build, builds on install/g' debian/rules; \
6772
sed -i 's/dh_auto_install$$/dh_auto_install --parallel/g' debian/rules; \
68-
DEB_BUILD_OPTIONS="nocheck notest parallel=$(NUM_JOBS)" debian/rules binary; \
73+
sudo apt-get build-dep -y .; \
74+
DEB_BUILD_OPTIONS="nocheck notest parallel=$(NUM_JOBS)" dpkg-buildpackage -b -us -uc; \
6975
popd; \
7076
sudo apt install -y $(BUILD_DIR)/$(ALIAS)/bloom/ros-$(DISTRO)-$${name//_/-}*.deb; \
7177
done
@@ -75,7 +81,7 @@ ros-$(DISTRO)-%-$(OS_VERSION).run: FORCE
7581
echo "./$$(basename $$path)"; \
7682
done > $(BUILD_DIR)/$(ALIAS)/out/apt/packages.txt
7783
$(SCRIPTS_DIR)/rosdep2null -o $(BUILD_DIR)/$(ALIAS)/out/rosdep -i $(DEFAULT_ROSDEP_PATH) -v $(OS_NAME) \
78-
-s $*-bundle $$(colcon --log-base /dev/null list -t -n --packages-up-to $*)
84+
-s $*-bundle $$(colcon --log-base /dev/null list -t -n --packages-up-to $*) $$(cat $(SOURCE_DIR)/rosdep-skip.txt 2>&- || true)
7985
cp $(SCRIPTS_DIR)/install-bundle $(BUILD_DIR)/$(ALIAS)/out/install
8086
chmod a+w $(BUILD_DIR) && chmod -R a+w $(BUILD_DIR)/$(ALIAS)
8187
makeself --keep-umask $(BUILD_DIR)/$(ALIAS)/out $(ALIAS) "$*-bundle installer" ./install

amd64-dpkg.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
https://github.com/bdaiinstitute/spot-cpp-sdk/releases/download/v4.0.2/spot-cpp-sdk_4.0.2_amd64.deb

arm64-dpkg.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
https://github.com/bdaiinstitute/spot-cpp-sdk/releases/download/v4.0.2/spot-cpp-sdk_4.0.2_arm64.deb

bosdyn_api_msgs/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ find_package(ament_cmake REQUIRED)
1010
find_package(geometry_msgs REQUIRED)
1111
find_package(proto2ros REQUIRED)
1212

13+
find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
1314
find_package(bosdyn_cmake_module REQUIRED)
1415

1516
fetch_spot_sdk(spotsdk)
@@ -24,6 +25,7 @@ proto2ros_vendor_package(${PROJECT_NAME}
2425
PROTOS ${${PROJECT_NAME}_PROTOS}
2526
IMPORT_DIRS ${${PROJECT_NAME}_PROTO_DIR}
2627
CONFIG_OVERLAYS config/overlay.yaml
28+
CPP_DEPENDENCIES bosdyn::bosdyn_api
2729
ROS_DEPENDENCIES geometry_msgs
2830
)
2931

bosdyn_api_msgs/config/overlay.yaml

+9
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,14 @@ message_mapping:
77
python_imports:
88
- bosdyn.api.geometry_pb2
99
- geometry_msgs.msg
10+
cpp_headers:
11+
- bosdyn/api/geometry.pb.h
12+
- geometry_msgs/msg/polygon.hpp
13+
- geometry_msgs/msg/pose.hpp
14+
- geometry_msgs/msg/quaternion.hpp
15+
- geometry_msgs/msg/twist.hpp
16+
- geometry_msgs/msg/vector3.hpp
17+
- geometry_msgs/msg/wrench.hpp
18+
- bosdyn_api_msgs/manual_conversions.hpp
1019
inline_python_imports:
1120
- bosdyn_api_msgs.manual_conversions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
// Copyright (c) 2024 Boston Dynamics AI Institute LLC. All rights reserved.
2+
3+
#pragma once
4+
5+
#include <bosdyn/api/geometry.pb.h>
6+
7+
#include <geometry_msgs/msg/vector3.hpp>
8+
#include <geometry_msgs/msg/quaternion.hpp>
9+
#include <geometry_msgs/msg/pose.hpp>
10+
#include <geometry_msgs/msg/twist.hpp>
11+
#include <geometry_msgs/msg/wrench.hpp>
12+
13+
namespace bosdyn_api_msgs::conversions {
14+
15+
/// Convert from geometry_msgs/Vector3 ROS messages to bosdyn.api.Vec3 Protobuf messages.
16+
void Convert(const geometry_msgs::msg::Vector3& ros_msg, bosdyn::api::Vec3* proto_msg);
17+
18+
/// Convert from bosdyn.api.Vec3 Protobuf messages to geometry_msgs/Vector3 ROS messages.
19+
void Convert(const bosdyn::api::Vec3& proto_msg, geometry_msgs::msg::Vector3* ros_msg);
20+
21+
/// Convert from geometry_msgs/Point ROS messages to bosdyn.api.Vec3 Protobuf messages.
22+
void Convert(const geometry_msgs::msg::Point& ros_msg, bosdyn::api::Vec3* proto_msg);
23+
24+
/// Convert from bosdyn.api.Vec3 Protobuf messages to geometry_msgs/Point ROS messages.
25+
void Convert(const bosdyn::api::Vec3& proto_msg, geometry_msgs::msg::Point* ros_msg);
26+
27+
/// Convert from geometry_msgs/Quaternion ROS messages to bosdyn.api.Quaternion Protobuf messages.
28+
void Convert(const geometry_msgs::msg::Quaternion& ros_msg, bosdyn::api::Quaternion* proto_msg);
29+
30+
/// Convert from bosdyn.api.Quaternion Protobuf messages to geometry_msgs/Quaternion ROS messages.
31+
void Convert(const bosdyn::api::Quaternion& proto_msg, geometry_msgs::msg::Quaternion* ros_msg);
32+
33+
/// Convert from geometry_msgs/Pose ROS messages to bosdyn.api.SE3Pose Protobuf messages.
34+
void Convert(const geometry_msgs::msg::Pose& ros_msg, bosdyn::api::SE3Pose* proto_msg);
35+
36+
/// Convert from bosdyn.api.SE3Pose Protobuf messages to geometry_msgs/Pose ROS messages.
37+
void Convert(const bosdyn::api::SE3Pose& proto_msg, geometry_msgs::msg::Pose* ros_msg);
38+
39+
/// Convert from geometry_msgs/Twist ROS messages to bosdyn.api.SE3Velocity Protobuf messages.
40+
void Convert(const geometry_msgs::msg::Twist& ros_msg, bosdyn::api::SE3Velocity* proto_msg);
41+
42+
/// Convert from bosdyn.api.SE3Velocity Protobuf messages to geometry_msgs/Twist ROS messages.
43+
void Convert(const bosdyn::api::SE3Velocity& proto_msg, geometry_msgs::msg::Twist* ros_msg);
44+
45+
/// Convert from geometry_msgs/Wrench ROS messages to bosdyn.api.Wrench Protobuf messages.
46+
void Convert(const geometry_msgs::msg::Wrench& ros_msg, bosdyn::api::Wrench* proto_msg);
47+
48+
/// Convert from bosdyn.api.Wrench Protobuf messages to geometry_msgs/Wrench ROS messages.
49+
void Convert(const bosdyn::api::Wrench& proto_msg, geometry_msgs::msg::Wrench* ros_msg);
50+
51+
} // namespace bosdyn_api_msgs::conversions

bosdyn_api_msgs/package.xml

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Copyright (c) 2023 Boston Dynamics AI Institute LLC. All rights reserved.
1515
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
1616
<buildtool_depend>rosidl_default_generators</buildtool_depend>
1717

18+
<depend>bosdyn-spot-cpp</depend>
1819
<depend>geometry_msgs</depend>
1920
<depend>proto2ros</depend>
2021

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
// Copyright (c) 2024 Boston Dynamics AI Institute LLC. All rights reserved.
2+
3+
#include "bosdyn_api_msgs/manual_conversions.hpp"
4+
5+
namespace bosdyn_api_msgs::conversions {
6+
7+
void Convert(const geometry_msgs::msg::Vector3& ros_msg, bosdyn::api::Vec3* proto_msg) {
8+
proto_msg->set_x(ros_msg.x);
9+
proto_msg->set_y(ros_msg.y);
10+
proto_msg->set_z(ros_msg.z);
11+
}
12+
13+
void Convert(const bosdyn::api::Vec3& proto_msg, geometry_msgs::msg::Vector3* ros_msg) {
14+
ros_msg->x = proto_msg.x();
15+
ros_msg->y = proto_msg.y();
16+
ros_msg->z = proto_msg.z();
17+
}
18+
19+
void Convert(const geometry_msgs::msg::Point& ros_msg, bosdyn::api::Vec3* proto_msg) {
20+
proto_msg->set_x(ros_msg.x);
21+
proto_msg->set_y(ros_msg.y);
22+
proto_msg->set_z(ros_msg.z);
23+
}
24+
25+
void Convert(const bosdyn::api::Vec3& proto_msg, geometry_msgs::msg::Point* ros_msg) {
26+
ros_msg->x = proto_msg.x();
27+
ros_msg->y = proto_msg.y();
28+
ros_msg->z = proto_msg.z();
29+
}
30+
31+
void Convert(const geometry_msgs::msg::Quaternion& ros_msg, bosdyn::api::Quaternion* proto_msg) {
32+
proto_msg->set_x(ros_msg.x);
33+
proto_msg->set_y(ros_msg.y);
34+
proto_msg->set_z(ros_msg.z);
35+
proto_msg->set_w(ros_msg.w);
36+
}
37+
38+
void Convert(const bosdyn::api::Quaternion& proto_msg, geometry_msgs::msg::Quaternion* ros_msg) {
39+
ros_msg->x = proto_msg.x();
40+
ros_msg->y = proto_msg.y();
41+
ros_msg->z = proto_msg.z();
42+
ros_msg->w = proto_msg.w();
43+
}
44+
45+
void Convert(const geometry_msgs::msg::Pose& ros_msg, bosdyn::api::SE3Pose* proto_msg) {
46+
Convert(ros_msg.position, proto_msg->mutable_position());
47+
Convert(ros_msg.orientation, proto_msg->mutable_rotation());
48+
}
49+
50+
void Convert(const bosdyn::api::SE3Pose& proto_msg, geometry_msgs::msg::Pose* ros_msg) {
51+
Convert(proto_msg.position(), &ros_msg->position);
52+
Convert(proto_msg.rotation(), &ros_msg->orientation);
53+
}
54+
55+
void Convert(const geometry_msgs::msg::Twist& ros_msg, bosdyn::api::SE3Velocity* proto_msg) {
56+
Convert(ros_msg.linear, proto_msg->mutable_linear());
57+
Convert(ros_msg.angular, proto_msg->mutable_angular());
58+
}
59+
60+
void Convert(const bosdyn::api::SE3Velocity& proto_msg, geometry_msgs::msg::Twist* ros_msg) {
61+
Convert(proto_msg.linear(), &ros_msg->linear);
62+
Convert(proto_msg.angular(), &ros_msg->angular);
63+
}
64+
65+
void Convert(const geometry_msgs::msg::Wrench& ros_msg, bosdyn::api::Wrench* proto_msg) {
66+
Convert(ros_msg.force, proto_msg->mutable_force());
67+
Convert(ros_msg.torque, proto_msg->mutable_torque());
68+
}
69+
70+
void Convert(const bosdyn::api::Wrench& proto_msg, geometry_msgs::msg::Wrench* ros_msg) {
71+
Convert(proto_msg.force(), &ros_msg->force);
72+
Convert(proto_msg.torque(), &ros_msg->torque);
73+
}
74+
75+
} // namespace bosdyn_api_msgs::conversions

bosdyn_auto_return_api_msgs/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ find_package(ament_cmake REQUIRED)
1010
find_package(proto2ros REQUIRED)
1111
find_package(bosdyn_api_msgs REQUIRED)
1212

13+
find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
1314
find_package(bosdyn_cmake_module REQUIRED)
1415

1516
fetch_spot_sdk(spotsdk)
@@ -22,6 +23,7 @@ proto2ros_vendor_package(${PROJECT_NAME}
2223
PROTOS ${${PROJECT_NAME}_PROTOS}
2324
IMPORT_DIRS ${${PROJECT_NAME}_PROTO_DIR}
2425
CONFIG_OVERLAYS config/overlay.yaml
26+
CPP_DEPENDENCIES bosdyn::bosdyn_api
2527
ROS_DEPENDENCIES bosdyn_api_msgs
2628
)
2729

bosdyn_auto_return_api_msgs/config/overlay.yaml

+5
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,10 @@ python_imports:
1212
- bosdyn_api_msgs.msg
1313
inline_python_imports:
1414
- bosdyn_api_msgs.conversions
15+
cpp_headers:
16+
- bosdyn_api_msgs/conversions.hpp
17+
- bosdyn_api_msgs/manual_conversions.hpp
18+
inline_cpp_namespaces:
19+
- bosdyn_api_msgs::conversions
1520
package_specifications:
1621
- bosdyn_api_msgs.specifications

bosdyn_auto_return_api_msgs/package.xml

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,9 @@
1212
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
1313
<buildtool_depend>rosidl_default_generators</buildtool_depend>
1414

15-
<depend>proto2ros</depend>
15+
<depend>bosdyn-spot-cpp</depend>
1616
<depend>bosdyn_api_msgs</depend>
17+
<depend>proto2ros</depend>
1718

1819
<exec_depend>rosidl_default_runtime</exec_depend>
1920

bosdyn_autowalk_api_msgs/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ find_package(bosdyn_spot_api_msgs REQUIRED)
1414
find_package(bosdyn_spot_cam_api_msgs REQUIRED)
1515
find_package(proto2ros REQUIRED)
1616

17+
find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
1718
find_package(bosdyn_cmake_module REQUIRED)
1819

1920
fetch_spot_sdk(spotsdk)
@@ -26,6 +27,7 @@ proto2ros_vendor_package(${PROJECT_NAME}
2627
PROTOS ${${PROJECT_NAME}_PROTOS}
2728
IMPORT_DIRS ${${PROJECT_NAME}_PROTO_DIR}
2829
CONFIG_OVERLAYS config/overlay.yaml
30+
CPP_DEPENDENCIES bosdyn::bosdyn_api
2931
ROS_DEPENDENCIES
3032
bosdyn_api_msgs
3133
bosdyn_graph_nav_api_msgs

bosdyn_autowalk_api_msgs/config/overlay.yaml

+13
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,19 @@ inline_python_imports:
2424
- bosdyn_mission_api_msgs.conversions
2525
- bosdyn_spot_api_msgs.conversions
2626
- bosdyn_spot_cam_api_msgs.conversions
27+
cpp_headers:
28+
- bosdyn_api_msgs/conversions.hpp
29+
- bosdyn_api_msgs/manual_conversions.hpp
30+
- bosdyn_graph_nav_api_msgs/conversions.hpp
31+
- bosdyn_mission_api_msgs/conversions.hpp
32+
- bosdyn_spot_api_msgs/conversions.hpp
33+
- bosdyn_spot_cam_api_msgs/conversions.hpp
34+
inline_cpp_namespaces:
35+
- bosdyn_api_msgs::conversions
36+
- bosdyn_graph_nav_api_msgs::conversions
37+
- bosdyn_mission_api_msgs::conversions
38+
- bosdyn_spot_api_msgs::conversions
39+
- bosdyn_spot_cam_api_msgs::conversions
2740
package_specifications:
2841
- bosdyn_api_msgs.specifications
2942
- bosdyn_graph_nav_api_msgs.specifications

bosdyn_autowalk_api_msgs/package.xml

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
1313
<buildtool_depend>rosidl_default_generators</buildtool_depend>
1414

15+
<depend>bosdyn-spot-cpp</depend>
1516
<depend>bosdyn_api_msgs</depend>
1617
<depend>bosdyn_graph_nav_api_msgs</depend>
1718
<depend>bosdyn_mission_api_msgs</depend>

bosdyn_graph_nav_api_msgs/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ find_package(bosdyn_api_msgs REQUIRED)
1111
find_package(bosdyn_spot_api_msgs REQUIRED)
1212
find_package(proto2ros REQUIRED)
1313

14+
find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
1415
find_package(bosdyn_cmake_module REQUIRED)
1516

1617
fetch_spot_sdk(spotsdk)
@@ -23,6 +24,7 @@ proto2ros_vendor_package(${PROJECT_NAME}
2324
PROTOS ${${PROJECT_NAME}_PROTOS}
2425
IMPORT_DIRS ${${PROJECT_NAME}_PROTO_DIR}
2526
CONFIG_OVERLAYS config/overlay.yaml
27+
CPP_DEPENDENCIES bosdyn::bosdyn_api
2628
ROS_DEPENDENCIES bosdyn_api_msgs bosdyn_spot_api_msgs
2729
)
2830

bosdyn_graph_nav_api_msgs/config/overlay.yaml

+7
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ python_imports:
1515
inline_python_imports:
1616
- bosdyn_api_msgs.conversions
1717
- bosdyn_spot_api_msgs.conversions
18+
cpp_headers:
19+
- bosdyn_api_msgs/conversions.hpp
20+
- bosdyn_api_msgs/manual_conversions.hpp
21+
- bosdyn_spot_api_msgs/conversions.hpp
22+
inline_cpp_namespaces:
23+
- bosdyn_api_msgs::conversions
24+
- bosdyn_spot_api_msgs::conversions
1825
package_specifications:
1926
- bosdyn_api_msgs.specifications
2027
- bosdyn_spot_api_msgs.specifications

bosdyn_graph_nav_api_msgs/package.xml

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
<buildtool_depend>bosdyn_cmake_module</buildtool_depend>
1313
<buildtool_depend>rosidl_default_generators</buildtool_depend>
1414

15+
<depend>bosdyn-spot-cpp</depend>>
1516
<depend>bosdyn_api_msgs</depend>
1617
<depend>bosdyn_spot_api_msgs</depend>
1718
<depend>proto2ros</depend>

bosdyn_keepalive_api_msgs/CMakeLists.txt

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ find_package(bosdyn_api_msgs REQUIRED)
1111
find_package(bosdyn_auto_return_api_msgs REQUIRED)
1212
find_package(proto2ros REQUIRED)
1313

14+
find_package(bosdyn REQUIRED PATHS /opt/spot-cpp-sdk)
1415
find_package(bosdyn_cmake_module REQUIRED)
1516

1617
fetch_spot_sdk(spotsdk)
@@ -23,6 +24,7 @@ proto2ros_vendor_package(${PROJECT_NAME}
2324
PROTOS ${${PROJECT_NAME}_PROTOS}
2425
IMPORT_DIRS ${${PROJECT_NAME}_PROTO_DIR}
2526
CONFIG_OVERLAYS config/overlay.yaml
27+
CPP_DEPENDENCIES bosdyn::bosdyn_api
2628
ROS_DEPENDENCIES bosdyn_api_msgs bosdyn_auto_return_api_msgs
2729
)
2830

0 commit comments

Comments
 (0)