You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何编译包含unitree_ros2功能包的ROS2工作空间?

如何编译包含unitree_ros2功能包的ROS2工作空间?

嘿,我之前也踩过这个坑!按照官方教程编译Unitree_ros2的时候,确实只会生成并编译少数几个子包,这就导致咱们自己搭建ROS2工作空间、想要用到Unitree_ros2里其他功能的时候,总会碰到各种依赖或者找不到包的问题。

其实这个情况的原因很简单:Unitree_ros2并不是作为单一的ROS2功能包来管理的,它是由多个独立的子功能包组合而成的,官方默认的编译配置只开启了部分常用子包的编译开关,所以才会出现只编译少数子包的情况。

下面是我亲测有效的解决步骤,帮你编译完整的Unitree_ros2功能包:

1. 确保获取到完整的Unitree_ros2源码

把完整的Unitree_ros2源码仓库克隆到你的ROS2工作空间的src目录下,别只拉取部分子包哦。

2. 修改编译配置,开启所有子包的编译

进入Unitree_ros2的根目录,找到编译配置文件(通常是根目录下的CMakeLists.txt或者colcon.meta,不同版本可能略有差异):

  • 如果你看到类似set(BUILD_SUBDIRECTORIES "unitree_legged_msgs;unitree_legged_real")这样的配置,说明这里指定了仅编译列出的子包,你可以把需要的其他子包名称加进去,或者直接把这个值设为空字符串"",这样就会编译所有子包。
  • 有些版本里可能是用编译选项来控制的,比如option(BUILD_XXX "Build XXX package" OFF),把你需要的子包对应的OFF改成ON就行。

3. 编译整个ROS2工作空间

回到你的ROS2工作空间根目录,用colcon命令进行编译,建议加上--symlink-install参数,方便后续修改代码后不用重新编译:

cd ~/your_ros2_workspace
colcon build --symlink-install

4. 验证编译结果

编译完成后,先source一下工作空间的setup文件:

source install/setup.bash

然后用ros2 pkg list命令查看已安装的ROS2包,如果你能看到所有需要的Unitree_ros2子包,就说明编译成功啦!

一些额外的小提示

  • 不同版本的Unitree_ros2编译配置可能不一样,如果找不到上述配置,可以仔细看看仓库根目录的README文件,里面一般会有关于编译更多子包的说明。
  • 如果编译时出现依赖缺失的报错,根据错误提示安装对应的ROS2依赖包即可,比如Ubuntu系统下可以用sudo apt install ros-<你的ROS2版本>-<依赖包名称>来安装。

备注:内容来源于stack exchange,提问作者haobo du

火山引擎 最新活动