Skip to content

MiRoboticsLab/cyberdog_ros2

Repository files navigation

Xiaomi CyberDog ROS 2

License

CyberDogDog

English

简介

本项目包含小米铁蛋®的ROS 2主要功能包.

基本信息

  • 铁蛋默认用户是mi, 密码为123
  • 使用USB线连接Download接口, 可通过ssh [email protected]连接铁蛋进行内部操作

软件架构

我们基于ROS 2实现了大部分的机器人应用, 如架构图所示, 包括多设备链接、多模态感知、多模态人机交互、自主决策、空间定位、导航和目标追踪等功能. 目前使用的DDS中间件是Cyclone DDS, ROS 2的版本为Galactic.

由于NVIDIA对Jetson系列截至目前(202109)只提供了Ubuntu 18.04的支持, 故我们对Ubuntu 18.04进行了ROS 2的适配和修改. 具体的修改内容可以通过mini.repos进行拉取, 我们去除了部分没必要的仓, 并添加了一些需要使用的仓库.

本项目的详细文档都在各个子模块的根目录里, 如有需要可以直接点击进行了解

前置条件

如在目标设备上直接编译, 需要保证已连接互联网. 首选环境是铁蛋, 次选环境是Docker开发环境.

如是前者,需要保证执行如下指令:

$ apt-get update
$ apt-get install nvidia-l4t-jetson-multimedia-api cuda-compiler-10-2

如是后者, 可以考虑使用arm64的Docker. 我们在未来会支持交叉编译。

大陆地区加速

如果您在中华人民共和国大陆地区, 可以使用我们提供的Docker的构建加速和colcon的编译加速

构建Docker时, 可使用docker build -t arm_docker:1.0 . --build-arg gfw=1进行构建镜像, 以提高速度.

使用colcon编译包时, 可在colcon编译的语句最后添加--cmake-args -DBUILD_INSIDE_GFW=ON以获取加速, 如colcon build --merge-install --packages-select sdl2_vendor lcm_vendor mpg123_vendor toml11_vendor --cmake-args -DBUILD_INSIDE_GFW=ON.

构建 & 部署

本项目支持两种构建策略:

  • 最小功能包: 只编译影响整机启动和运动的相关功能包.
  • 基础功能包: 编译本仓(cyberdog_ros2)的全部功能包.

最小功能包

编译方法:

  • 下载cyberdog_ros2.
$ mkdir -p ros_apps/src
$ cd ros_apps/src
$ git clone https://github.com/MiRoboticsLab/cyberdog_ros2.git
$ cd ..
  • 使用--packages-up-to编译(确保source过ROS 2的环境变量)
$ colcon build --merge-install --packages-up-to cyberdog_bringup

或者, 编译到指定目录, 注意: 如有需要请替换/opt/ros2/cyberdog的值为其他.

$ export OUTPUT_DIR=/opt/ros2/cyberdog
$ colcon build --merge-install --install-base $OUTPUT_DIR --packages-up-to cyberdog_bringup

基础功能包

编译方法:

  • 下载cyberdog_ros2.
  • Download cyberdog_ros2.
$ mkdir -p ros_apps/src
$ cd ros_apps/src
$ git clone https://github.com/MiRoboticsLab/cyberdog_ros2.git
$ cd ..
  • 直接编译所有的包(确保source过ROS 2的环境变量)
$ colcon build --merge-install

或者, 编译到指定目录, 注意:如有需要请替换/opt/ros2/cyberdog的值为其他.

$ export OUTPUT_DIR=/opt/ros2/cyberdog
$ colcon build --merge-install --install-base $OUTPUT_DIR

此外,小米提供的部分闭源功能包:小爱同学支持默认不打开,需要通过在--cmake-args后添加-DXIAOMI_XIAOAI=ON分别打开两个功能的编译。

通用的部署方式

如果使用的是/opt/ros2/cyberdog路径进行编译, 且环境是铁蛋, 重启机器或服务即可部署完毕.

重启服务的方式:

To restart the service:

$ sudo systemctl restart cyberdog_ros2.service

相关项目

相关资源

向铁蛋贡献力量!

浏览页面CONTRIBUTING.md了解如何向铁蛋贡献力量!