Skip to content

MiRoboticsLab/cyberdog_ros2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

011025c · Oct 15, 2021

History

12 Commits
Oct 15, 2021
Oct 14, 2021
Oct 14, 2021
Oct 14, 2021
Oct 14, 2021
Oct 15, 2021
Oct 14, 2021
Oct 14, 2021
Oct 14, 2021
Oct 15, 2021
Sep 28, 2021
Sep 28, 2021
Sep 15, 2021
Oct 14, 2021
Oct 14, 2021
Oct 14, 2021

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了解如何向铁蛋贡献力量!