Repo symbol

cyberdog_ros2 repository

robotics ros ros2 cyberdog
Repo symbol

cyberdog_ros2 repository

robotics ros ros2 cyberdog
Repo symbol

cyberdog_ros2 repository

robotics ros ros2 cyberdog
Repo symbol

cyberdog_ros2 repository

robotics ros ros2 cyberdog

Repository Summary

Description ROS 2 packages for CyberDog
Checkout URI https://github.com/miroboticslab/cyberdog_ros2.git
VCS Type git
VCS Version main
Last Updated 2021-10-15
Dev Status UNKNOWN
Released UNRELEASED
Tags robotics ros ros2 cyberdog
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

README

Xiaomi CyberDog ROS 2

License

CyberDogDog

English

简介

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

基本信息

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

软件架构

我们基于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的值为其他.

File truncated at 100 lines see the full file

CONTRIBUTING

向小米铁蛋贡献力量!

感谢您关注我们的项目。

About license

本项目遵守Apache 2.0开源协议。

成为开发者前

确保您已经签署个人独立贡献者许可协议(CLA)。如果已签署,请直接阅读开发者签名认证,如未签署,请继续往下读。

为环保和效率起见,目前只支持电子签署

电子签署方式

开发者签名认证

开发者需要使用签署CLA的邮箱对所提交修改进行签名,即使用git commit -s进行递交commit信息。

代码审查

所有递交都按照合入请求(Merge Requst)的方式进行,并只接收GitHub的拉取请求(Pull Request)的流程方式。

代码格式

所有ROS 2相关代码均遵从ROS 2的标准代码规范。可阅读Code style and language versions进行了解。建议在提交代码前,使用ament_lint 工具或借助colcon test进行快速审查。

分支管理

我们所有的仓库均分为两条分支进行开发,分别是develmain

  • devel分支用于日常的合入请求和每日版本的打包,属于开发分支。
  • main分支用于存放稳定版本,当且仅当需要发行新版本时,冻结devel分支,并从devel分支创建合入请求,并经过:

    • 撰写改动记录,梳理预发行的新功能和预修复的问题,确定版本号。
    • CI完全通过,包括构建和测试部分。
    • 测试工程师介入,并按照1中的新功能和预修复的问题进行摸底测试。如有问题,需要相关开发者按照修复问题的方式及时向devel分支递交修复代码。
    • 如测试通过,则对项目的代码和二进制包进行打包和封装。
    • Release界面进行发布。
# 向小米铁蛋贡献力量! 感谢您关注我们的项目。 ## About license 本项目遵守Apache 2.0开源协议。 ## 成为开发者前 确保您已经签署个人独立贡献者许可协议(CLA)。如果已签署,请直接阅读[开发者签名认证](#开发者签名认证),如未签署,请继续往下读。 为环保和效率起见,目前只支持`电子签署`。 ### 电子签署方式 - 下载[个人独立贡献者许可协议](https://cdn.cnbj2m.fds.api.mi-img.com/cyberdog-package/packages/doc_materials/cla_zh_en.pdf) - 使用PDF软件签署协议,注意签名部分需要手写(电子签名即可)。 - 将签署完毕的协议文件发送至邮箱[mi-cyberdog@xiaomi.com](mailto:mi-cyberdog@xiaomi.com) ## 开发者签名认证 开发者需要使用签署CLA的邮箱对所提交修改进行签名,即使用`git commit -s`进行递交commit信息。 ## 代码审查 所有递交都按照合入请求(Merge Requst)的方式进行,并只接收GitHub的拉取请求(Pull Request)的流程方式。 ### 代码格式 所有ROS 2相关代码均遵从`ROS 2`的标准代码规范。可阅读[Code style and language versions](https://docs.ros.org/en/foxy/Contributing/Code-Style-Language-Versions.html)进行了解。建议在提交代码前,使用[ament_lint](https://github.com/ament/ament_lint) 工具或借助`colcon test`进行快速审查。 ## 分支管理 我们所有的仓库均分为两条分支进行开发,分别是`devel`和`main`。 - `devel`分支用于日常的合入请求和每日版本的打包,属于开发分支。 - `main`分支用于存放稳定版本,当且仅当需要发行新版本时,冻结`devel`分支,并从`devel`分支创建合入请求,并经过: - 撰写改动记录,梳理预发行的新功能和预修复的问题,确定版本号。 - CI完全通过,包括构建和测试部分。 - 测试工程师介入,并按照1中的新功能和预修复的问题进行摸底测试。如有问题,需要相关开发者按照修复问题的方式及时向`devel`分支递交修复代码。 - 如测试通过,则对项目的代码和二进制包进行打包和封装。 - 在`Release`界面进行发布。
Repo symbol

cyberdog_ros2 repository

robotics ros ros2 cyberdog
Repo symbol

cyberdog_ros2 repository

robotics ros ros2 cyberdog
Repo symbol

cyberdog_ros2 repository

robotics ros ros2 cyberdog
Repo symbol

cyberdog_ros2 repository

robotics ros ros2 cyberdog