宇树科技狗Go2 ROS2服务接口调试过程
·
项目场景:
记录一下宇树科技狗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成功获取雷达点云图的截图
这是获取的雷达点云图

”—
总结:
新手调试机器狗还是要踩很多坑的,需要慢慢摸索,后面遇到的再记录吧。
更多推荐




所有评论(0)