项目场景:

记录一下宇树科技狗Go2 ROS2 服务接口的调试过程。
官网SDK:ROS2 服务接口

官网的服务接口说得比较详细,可能是我对这一块不太熟悉,也踩了不少坑,记录一下。

问题描述

1、编译cyclone-dds

官网说的是*“由于 Go2 使用的是 cyclonedds 0.10.2 版本,因此需要先更改 ROS2 的 DDS 实现”*,但是没给出具体的步骤。
在这里插入图片描述
我首先尝试在ROS2中编译cyclonedds-0.10.2,这是在网上找到的方法,但是没有编译通过。
下面说一下我的编译步骤。
(1)完全清理构建环境:

cd ~/unitree_ros2/cyclonedds_ws
rm -rf build install log src/cyclonedds/CMakeCache.txt

(2)修复核心库依赖顺序:

nano src/cyclonedds/src/tools/idlc/CMakeLists.txt

在 target_link_libraries(idlc …) 部分开头 显式添加 ddsc 库:

cmake
target_link_libraries(idlc
  ddsc  # 添加这一行确保先链接核心库
  ${LINK_LIBS}
  ${CMAKE_DL_LIBS}
)

保存退出 (Ctrl+X, Y)

(3)强制重新生成类型系统:

cd src/cyclonedds
find src/core/xtypes -name "*.c" -delete
find src/core/xtypes -name "*.h" -delete
touch src/core/xtypes/types.c
cd ../..

(4)分步构建:

# 先构建核心库
colcon build --packages-select cyclonedds \
  --cmake-args --target ddsc \
  --event-handlers console_direct+
# 再构建完整项目(禁用问题组件)
colcon build --packages-select cyclonedds \
  --cmake-args -DBUILD_DDSPERF=OFF

最后构建完整项目的时候没有报错的话,那么编译 cyclone-dds就编译成功了。

下面是ros2成功获取雷达点云图的截图

ros2获取点云图

这是获取的雷达点云图
在这里插入图片描述

”—

总结:

新手调试机器狗还是要踩很多坑的,需要慢慢摸索,后面遇到的再记录吧。

Logo

立足具身智能前沿赛道,致力于搭建全球化、开源化、全栈式技术交流与实践共创平台。

更多推荐