This project contains the main ROS 2 packages of Xiaomi CyberDog®.

Overview

Xiaomi CyberDog ROS 2

License

CyberDogDog

文档包含简体中文和English

简介 - Introduction

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

This project contains the main ROS 2 packages of Xiaomi CyberDog®.

基本信息 - Basic Information

  • 铁蛋默认用户是mi, 密码为123
  • The default user of CyberDog is mi, dafault password is 123
  • 使用USB线连接Download接口, 可通过ssh [email protected]连接铁蛋进行内部操作
  • You can use a USB cable to connect to the Download interface, and use ssh [email protected] to connect to CyberDog for internal operations

软件架构 - Software Architecture

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

Most of the robot applications are implemented based on ROS -As shown in the framework diagram, it includes functions such as multi-device connection, multi-modal perception, multi-modal human-computer interaction, autonomous decision-making, localization, navigation, and target tracking. Currently, the DDS middleware in use is Cyclone DDS, and the ROS 2 Package is implemented at Foxy.

SoftwareArchitecture

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

Due to NVIDIA only provides support for Ubuntu 18.04 for the Jetson series (202109) as yet, we have adapted and modified ROS 2 for Ubuntu 18.04. The specific modification content can be pulled through mini.repos. We have removed some unnecessary repositories, and added some repositories that need to be used (The file is of the Galactic version, and we will adapt to this version in the future).

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

The documentation of this project is in the root directory of each submodule. If necessary, feel free to read the README files.

  • 通用类 - Common

    • cyberdog_bringup: 启动系统相关, 我们在ROS 2的Launch启动系统上设计了更简约的启动项管理, 对启动脚本(Python3)和启动内容进行了隔离. 通过简单的参数配置, 新的节点或新的进程便可被添加到启动项, 而无需修改脚本内容. 同时也支持参数管理、调试和开关等功能.
    • cyberdog_bringup: Startup program. We designed simpler management on the ROS 2 Launch system and isolated the startup script (Python3) and startup content. Through simple parameter configuration, new nodes or processes can be added to the startup item without modifying the script content. It also supports functions such as parameter management, debugging and switching, etc.
    • cyberdog_grpc: 机器人与外部通讯的媒介, 目前与手机App进行连接是基于GRPC的. 在未来将支持多机识别和多机通讯.
    • cyberdog_grpc: The communication agent between the robot and the real world. Currently, the connection with the mobile app is based on GRPC. In the future, it will support multi-device identification and multi-device communication.
    • cyberdog_utils: 本项目的通用功能仓, 包括基于cascade_lifecycle修改的LifecycleNode基类, 和传感器相关节点共用的基类等.
    • cyberdog_utils: The general function repository of this project. It contains the base class of LifecycleNode cascade_lifecycle and the base class shared with sensor-related nodes, etc.
    • media_vendor: 多媒体相关应用需要使用的CMake配置项.
    • media_vendor: The CMake configuration items that multimedia related applications need to use.
    • toml11_vendor: toml11的桥接包.
    • toml11_vendor: Bridge package of toml11.
  • 感知类 - Perception

    • cyberdog_bms: CyberDog上的电池管理模块, 主要负责电池信息的接收与分发.
    • cyberdog_bms: The battery management module on CyberDog. It is mainly responsible for receiving and distributing battery information.
    • cyberdog_body_state:该模块实现了整机运动状态的感知功能, 并通过BodyState上报posequat和speed_vector两种message的数据(posequat表示整机姿态四元数;speed_vector表示整机运动的瞬时速度, 单位:m/s).
    • cyberdog_body_state: This module realizes the perception function of the whole machine motion state, and reports the data of posequat and speed_vector through BodyState (posequat represents the posture quaternion of the robot; speed_vector represents the instantaneous speed of the robot motion, unit: m/s).
    • cyberdog_lightsensor: 该模块创建了机器人感知系统中Light Sensor的service和publisher, 当机器人需要感知周围环境光的强度时, 可通过上层决策层启动该service和publisher, 获取环境光照度信息.
    • cyberdog_lightsensor: This module creates the service and publisher of the Light Sensor in the robot perception system. When the robot needs to perceive the intensity of the ambient light, it can start the service and publisher through the upper decision making layer to obtain the ambient light information.
    • cyberdog_obstacledetection: 该模块创建了机器人感知系统中Ultrasonic Sensor的service和publisher.
    • cyberdog_obstacledetection: This module creates the service and publisher of Ultrasonic Sensor in the robot perception system.
    • cyberdog_scenedetection: 该模块为机器人提供场景检测功能, 通过定位芯片获取当前位置信息, 同时通过卫星信号质量判断机器人当前处于室内或室外.
    • cyberdog_scenedetection: This module provides a scene detection function for the robot. Obtain the current position information through the position chip. Determine whether the robot is currently indoors or outdoors based on the quality of the satellite signal.
  • 交互类 - Interaction

    • cyberdog_audio
      • audio_assistant: 该模块集成了小米小爱SDK的功能, 并作为ROS 2节点桥接了这部分功能.
      • audio_assitant: This module integrates the functions of Xiaomi Xiaoai SDK and bridges these functions as a ROS 2 node.
      • audio_base: 该模块提供播放多段或单段不定长PCM音频数据和wav格式音频文件的方法, 其底层实现为SDL2与SDL_mixer.
      • audio_base: This module is used to play multi-segment or single-segment variable length PCM audio data, audio files with wav format. Its bottom layer is implemented as SDL2 and SDL_mixer.
      • audio_interaction: 该模块实现了整个音频模块的交互部分, 主要包括与其它模块之间关于通用播放的交互、语音助手相关控制与交互功能和与APP(grpc)之间关于音量调解的交互功能.
      • audio_interaction: This module is used to implement the interactive part of the audio module, which mainly includes the interaction with other modules on common playback, the control and interaction functions of the voice assistant, and the interaction function with APP (grpc) about volume adjustment.
      • cyberdog_audio: 音频功能包的完整包, 负责整合所有功能.
      • cyberdog_audio: The complete package of the audio function package is responsible for integrating all functions.
      • xiaoai_sdk_vendor: 该模块提供了小爱SDK的完整打包, 并集成ROS 2的编译体系.
      • xiaoai_sdk_vendor: This module provides a complete package of Xiaoai SDK and integration the ROS 2 compilation system.
    • cyberdog_camera
      • cyberdog_camera: 该模块基于NVIDIA Argus和ROS 2实现了相机的基础功能, 包括拍照和录像等, 并为其他模块(视觉SDK、图传等)提供调用接口.
      • cyberdog_camera: This module implements the basic functions of the camera based on NVIDIA Argus and ROS 2, including taking pictures and videos, and provides a calling interface for other modules (visual SDK, image transmission, etc.).
      • cyberdog_vision: 该模块集成了小米AI视觉的功能, 包括人脸、人体和手势识别, 并编译成库供使用.
      • cyberdog_vision: This module integrates the functions of Xiaomi AI vision, including face, human body and gesture recognition, and is compiled into a library for use.
      • vision_sdk_vendor: 该模块提供了小米AI视觉SDK的完整打包, 并集成ROS 2的编译体系.
      • vision_sdk_vendor: This module provides a complete package of Xiaomi AI Vision SDK and integration the ROS 2 compilation system.
    • cyberdog_led: 该模块用于统一决策系统所有的LED灯效请求, 基于ROS2 Service以及sensor_utils类实现, 通过定义不同client的LED消息优先级以及timeout来实现对CyberDog头灯和尾灯的控制显示功能.
    • cyberdog_led: This module is used to unify all the LED lighting requests of the decision-making system. It is based on ROS2 Service and sensor_utils. It realizes the control and display function of CyberDog headlights and taillights by defining the LED message priority and timeout of different clients.
    • cyberdog_livestream: 图传模块的库.
    • cyberdog_livestream: Library of video stream transmission modules.
    • cyberdog_touch: 该模块提供了topic为TouchState的publisher, 继承于cyberdog_utils::LifecycleNode. 目前支持单指单击报 LPWG_SINGLETAP_DETECTED 和单指长按3s报LPWG_TOUCHANDHOLD_DETECTED事件.
    • cyberdog_touch: This module provides a publisher of topic TouchState, and is a subclass of cyberdog_utils::LifecycleNode. Currently, it supports to report LPWG_SINGLETAP_DETECTED event with a single finger to single-click and report LPWG_TOUCHANDHOLD_DETECTED event with a single finger to hold for 3 seconds.
    • cyberdog_wireless
      • bluetooth: 该模块实现了:注册蓝牙GATT service, 发送BLE广播, 等待手机APP连接成功后, 接收APP发送的Wifi信息, 实现Wifi的联网操作, 并返回联网结果, 以及通过APP提供的命令, 实现蓝牙手柄的扫描, 连接, 达到通过手柄控制CyberDog的目的.
      • bluetooth: The module realizes: register Bluetooth GATT service; send BLE broadcast; after waiting for the mobile APP to connect successfully, receive the Wifi information sent by the APP; realize the Wifi networking operation; return the networking results; realize the Bluetooth handle through the commands provided by the APP Scan and connect. Achieve the purpose of controlling CyberDog through the handle.
      • wifirssi: 该模块的主要功能是创建定时任务, 实时查询当前已连接Wifi的信号强度, 并通过ros2的topic通讯进行传输.
      • wifirssi: The main function of this module is to create a timed task, query the signal strength of the currently connected Wifi in real time, and transmit it through the topic of ros2.
  • 决策类 - Decision

    • cyberdog_decisionmaker: 面向业务层, 负责实现具体业务功能. 目前提供了automation_managerception_managerinteraction_managermotion_manager. 分别用于自动化功能、感知功能、人机交互功能和运动功能的管理和决策. 该四个模块均继承cascade_manager, 并在基础上根据业务功能稍作改动.
    • cyberdog_decisionmaker: Towards business layer, responsible for realizing specific business functions. Currently it provides automation_manager, ception_manager, interaction_manager and motion_manager, respectively used for automation functions, perception functions, human-computer interaction functions, management and decision making of motion functions. These four modules all are subclasses of the cascade_manager and make slight changes based on the business functions.
    • cyberdog_decisionutils: 决策相关功能的基类和工具类集合, 负责实现通用功能. 目前提供了cascade_manager, 该模块继承于cyberdog_utils::LifecycleNode, 具备级联/并联和单点控制的功能, 可以快速管控其作用域下的节点的启动和关闭.
    • cyberdog_decisionutils: A collection of base classes and tool classes for decision making, responsible for implementing general functions. Currently, it provides cascade_manager, which inherits from cyberdog_utils::LifecycleNode and has the functions of cascade/parallel connection and single point of control. It can control the startup and shutdown of nodes under its scope quickly.
  • 接口类 - Interface

前置条件 - Precondition

如在交叉环境进行编译, 可参考交叉编译铁蛋源码进行了解环境的配置.

If you are compiling in a cross environment, you can refer to Cross Compiling CyberDog Source Code to understand the environment configuration.

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

If you are directly compiling on the target device, you need to ensure that you have connected to the Internet. The preferred environment is CyberDog, and the second choice is the development environment of the NVIDIA Jetson series.

如是后者, 需要保证安装:

If the latter, you need to ensure the following packages are installed:

  • ROS 2: 最小必须. 并且需要至少包含mini.repos中的功能包.
  • ROS 2 (Foxy): Required for construction of minimal package. And it needs to contain at least the package mini.repos.
  • LCM:最小必须. 可通过下载源码编译安装.
  • LCM: Required for construction of minimal package. It can be compiled and installed by downloading the source code.
  • 媒体库: mpg123,SDL2和SDL2_Mixer: 基础必须. 最好通过源码安装, 并确保按照前面所写的顺序编译安装.
  • Media libraries: mpg123, SDL2 and SDL2_Mixer: Required for construction of basic package. It is best to install through source code and make sure to compile and install in the order written above.
  • NV相关库: 基础必须. 可nvidia-l4t-jetson-multimedia-apicuda-compiler-10-2.
  • NV-related libraries: Required for construction of basic package. You can use nvidia-l4t-jetson-multimedia-api and cuda-compiler-10-2.
  • 其他库: OpenCV和librealsense.
  • Other libraries: OpenCV and librealsense.

构建 & 部署 - Build & Deploy

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

This project supports two construction strategies:

  • 最小功能包: 只编译影响整机启动和运动的相关功能包.
  • Minimal package: Only compile the relevant packages that affect the startup and motion of the whole machine.
  • 基础功能包: 编译本仓(cyberdog_ros2)的全部功能包.
  • Basic package: Compile all packages of this repository(cyberdog_ros2).

最小功能包的构建 - Construction of Minimal Package

编译方法:

Compilation process:

  • 下载cyberdog_ros2.
  • Download cyberdog_ros2.
$ mkdir -p ros_apps/src
$ cd ros_apps/src
$ git clone https://github.com/MiRoboticsLab/cyberdog_ros2.git
$ cd ..
$ colcon build --merge-install --packages-up-to cyberdog_bringup

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

Or, compile to the specified directory. Note: If necessary, please replace /opt/ros2/cyberdog with your path.

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

基础功能包 - Basic package

编译方法:

Compilation process:

  • 下载cyberdog_ros2.
  • Download cyberdog_ros2.
$ mkdir -p ros_apps/src
$ cd ros_apps/src
$ git clone https://github.com/MiRoboticsLab/cyberdog_ros2.git
$ cd ..
$ colcon build --merge-install

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

Or, compile to the specified directory. Note: If necessary, please replace /opt/ros2/cyberdog with your path.

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

通用的部署方式 - General deployment method

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

If you use the /opt/ros2/cyberdog path to compile and the environment is cyberdog, restart the machine or service to complete the deployment.

重启服务的方式:

To restart the service:

$ sudo systemctl restart cyberdog_ros2.service

相关项目 - Related Projects

  • CyberDog_Ctrl:使用GRPC控制铁蛋 - Control your CyberDog with GRPC

相关资源 - Related Resources

向铁蛋贡献力量! - Contribute to CyberDog!

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

Go through the page CONTRIBUTING.md to learn how to contribute to CyberDog!

Comments
  • 按照文档的编译环境,没有一个能跑通

    按照文档的编译环境,没有一个能跑通

    按照文档操作,从docker 到ubuntu 20.04 的虚拟机,编译都报错,丢包少库。

    连docker 都少库,这个文档有检验过吗?

    https://github.com/MiRoboticsLab/cyberdog_ros2/wiki/%E4%BB%8E%E6%BA%90%E7%A0%81%E5%AE%89%E8%A3%85ROS-2-%7C-Building-ROS-2-from-source

    opened by whlsxl 25
  • 运动控制相关的开发

    运动控制相关的开发

    Brief modification description

    想用铁蛋做些运动控制相关的开发。

    Detailed information

    铁蛋的硬件主要包括:电源板、运动控制板(MR813+两块STM32,相当于mini cheetah上的up board和SPine),英伟达主控板和扩展板,12个电机驱动器。目前看开源的部分主要是英伟达主板上跑的代码。这部分主要能做的开发是感知类的开发,例如视觉、语音等,这部分的开源和其它ROS教育类的机器人没有什么区别,体现不出四足的特点。运动控制板上有MR813和两块STM32的debug口,但在没有硬件IO分配信息的情况下,改代码也显得难度巨大。不知道官方有没有底层运动控制开源的计划?另外想了解一下现在电机驱动CAN总线上的协议和mini cheetah上的是不是一样的?谢谢!

    good first issue help wanted 
    opened by xygh 11
  • Could you provide the urdf file and STEP file for CyberDog?

    Could you provide the urdf file and STEP file for CyberDog?

    Brief modification description

    providing URDF file for cyberdog

    Detailed information

    We wish that by having the urdf file, we can make a simulation interface based on PyBullet. And robot learning research based on cyberdog can be performed

    help wanted 
    opened by ZiwenZhuang 9
  • 刷机导致蓝牙连接不上

    刷机导致蓝牙连接不上

    硬件平台:铁蛋

    问题:刷机后 蓝牙连接失败;之前刷过一次小米镜像,没出问题,我今天刷了一次Jetpack官方镜像,又刷回小米镜像,发现手机app连不上蓝牙了, 网上的两个版本镜像都试了,都不行;我发现有bluetooth有报错,如下;

    报错详情:bluetooth_ros2.service报错如下: Nov 08 02:53:57 lubuntu ros2[17548]: 2021-11-08 02:53:57,015 - gattserver.py[line:1041] - DEBUG: main: set bleStatus BLE_STATUS_NONE -> BLE_STATUS_ADV Nov 08 02:53:57 lubuntu ros2[17548]: 2021-11-08 02:53:57,016 - gattserver.py[line:950] - INFO: RegADV: RegisterAdvertisement Nov 08 02:53:57 lubuntu ros2[17548]: 2021-11-08 02:53:57,017 - gattserver.py[line:962] - INFO: RegATT: RegisterApplication Nov 08 02:53:57 lubuntu ros2[17548]: 2021-11-08 02:53:57,017 - gattserver.py[line:253] - INFO: get_path: <bluetooth.gattserver.RobotApplication at / at 0x7f9ae12518> Nov 08 02:53:57 lubuntu ros2[17548]: 2021-11-08 02:53:57,020 - gattserver.py[line:1045] - DEBUG: main init and send audio cmd BOOT_COMPLETE Nov 08 02:53:57 lubuntu ros2[17548]: 2021-11-08 02:53:57,024 - gattserver.py[line:1048] - DEBUG: RegADV: BT enable adv, set LED_BT_ADV Nov 08 02:53:57 lubuntu ros2[17548]: 2021-11-08 02:53:57,040 - gattserver.py[line:783] - INFO: register_app_cb: GATT application registered!!! Nov 08 02:53:57 lubuntu ros2[17548]: 2021-11-08 02:53:57,041 - gattserver.py[line:198] - INFO: GetAll Nov 08 02:53:57 lubuntu ros2[17548]: 2021-11-08 02:53:57,041 - gattserver.py[line:201] - INFO: returning props Nov 08 02:53:57 lubuntu ros2[17548]: *ERROR:dbus.service:Unable to append ({'Type': 'peripheral', 'ServiceUUIDs': dbus.Array(['C420'], signature=dbus.Signature('s')), 'ManufacturerData': dbus.Dictionary({65535: dbus.Array([0, 1, 2, 3, 4], signature=dbus.Signature('y'))}, signature=dbus.Signature('qv')), 'ServiceData': dbus.Dictionary({'9999': dbus.Array([0, 1, 2, 3, 4], signature=dbus.Signature('y'))}, signature=dbus.Signature('sv')), 'LocalName': dbus.String('铁蛋ne QED_ROCE_MODIFY\nne QED_ROCE_MODIFY\nne QED_ROCE_MODIFY\nne QED_ROCE_MODIFY\n_MDS_OP_LOOKUPSNAP\n\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\nne _NET_PSNAP_H\nne HFI1_CAP_EXTEND\nne PCI_EXP_SLTCAP\nef void (APIENTRYP\nef Bool ( PFNGLXQ\nef void (GLAPIENTR\nFUN_EXPORT PFNGLEV\nest.Adobe-DPS-Exte\nest.Adobe-DPS-Exte\n'), 'IncludeTxPower': dbus.Boolean(True)},) to message with signature a{sv}: <class 'ValueError'>: embedded null byte Nov 08 02:53:57 lubuntu ros2[17548]: 2021-11-08 02:53:57,048 - gattserver.py[line:794] - INFO: register_ad_cb: Advertisement registered!!! Nov 08 02:53:57 lubuntu ros2[17548]: INFO:/var/log/bluetooth.log:register_ad_cb: Advertisement registered!!!

    opened by liseri 8
  • 如果正确更新铁蛋内部的jetpack版本

    如果正确更新铁蛋内部的jetpack版本

    目前铁蛋的jetpack版本是4.5.1,对应着L4T是32.5.1. 但是目前最新的jetpack版本是4.6.1,对应着L4T是32.6.1 这个更新还是蛮大的,从tensorrt7到了trt8,cuda和cudnn也都有升级。

    自己也尝试直接在铁蛋内部使用jetpack官方的OTA升级方式升级,更新源、apt-get update和apt-get upgrade-dis等,不过升级完jtop和cuda驱动找不到了,cuda代码能编译但是运行不了呃。不过铁蛋的ros2是能正常跑

    怀疑可能是这个ubuntu已经被修改过一些东西,在更新的时候我发现有一些warning疑似和kernel有关,或许我更新的姿势不对,,海果大大们能给点建议么。

    或者我可以直接刷jetson最新版(会抹掉原来的系统),然后再搭建铁蛋环境么? 感谢!

    good first issue help wanted 
    opened by Oldpan 4
  • Question: ROS2 control of Cyberdog

    Question: ROS2 control of Cyberdog

    Hi!

    I'm using the robot and so far I'm really impressed with it, awesome work! I was able to get sample gRPC code running, and build some sample apps on top of that.

    I'm curious whether there are any simple examples of operating using ROS2 directly? If not, do you have any recommendations on how to approach it? So far, the best idea I have is to instantiate Cyberdog_app Node and go from there.

    Best, Tomasz

    good first issue help wanted 
    opened by tomek-l 3
  • Dependency problem of building ros2(mini.reps) from source

    Dependency problem of building ros2(mini.reps) from source

    #rmw_implementation: No definition of [rmw_connextdds] for OS version [bionic]

    Missing rmw_connextdds in mini.repos

    #imu_tools: Cannot locate rosdep definition for [rviz_imu_plugin]

    imu_tools depends on rviz_imu_plugin that not include in mini.repos

    opened by zbwu 3
  • colcon build error

    colcon build error

    The previous version is ok,but current version :

    • git pull

    • build:

    `[email protected]:~/ros_apps$ colcon build --merge-install --packages-up-to cyberdog_bringup Starting >>> cascade_lifecycle_msgs Starting >>> ception_msgs
    Starting >>> interaction_msgs Starting >>> lcm_vendor
    Starting >>> motion_msgs Starting >>> toml11_vendor
    --- stderr: lcm_vendor
    CMake Error: The source directory "/home/mi/ros_apps/src/cyberdog_ros2/cyberdog_common/lcm_vendor" does not exist. Specify --help for usage, or press the help button on the CMake GUI. make: *** [cmake_check_build_system] Error 1

    Failed <<< lcm_vendor [0.98s, exited with code 2] --- stderr: toml11_vendor
    CMake Error: The source directory "/home/mi/ros_apps/src/cyberdog_ros2/cyberdog_common/toml11_vendor" does not exist. Specify --help for usage, or press the help button on the CMake GUI. make: *** [cmake_check_build_system] Error 1

    Failed <<< toml11_vendor [1.19s, exited with code 2] Aborted <<< cascade_lifecycle_msgs [2.96s]
    Aborted <<< ception_msgs [3.24s]
    Aborted <<< motion_msgs [3.12s]
    Aborted <<< interaction_msgs [3.54s]

    Summary: 0 packages finished [7.82s] 2 packages failed: lcm_vendor toml11_vendor 4 packages aborted: cascade_lifecycle_msgs ception_msgs interaction_msgs motion_msgs 2 packages had stderr output: lcm_vendor toml11_vendor 8 packages not processed `

    opened by bigbencat 2
  • compiler error

    compiler error

    Please provide information for your bug report:

    • if you're using from source, provide the Git commit hash (via git log -1 --format="%H" | xargs): c8f2ce285115f0d55b5e0dfafd435849cb06becc

    • provide all information that is needed to analyze and reproduce the bug

    [email protected]:~/ros_apps$ colcon build --merge-install --install-base $OUTPUT_DIR Starting >>> cascade_lifecycle_msgs Starting >>> ception_msgs Starting >>> interaction_msgs
    Starting >>> motion_msgs Starting >>> toml11_vendor
    Starting >>> lcm_vendor Finished <<< toml11_vendor [2.93s]
    Starting >>> behaviortreecppv3_vendor Finished <<< lcm_vendor [3.15s]
    Starting >>> lcm_translate_msgs
    Finished <<< lcm_translate_msgs [2.04s]
    Starting >>> ception_base Finished <<< cascade_lifecycle_msgs [6.64s]
    Starting >>> cyberdog_utils Finished <<< ception_base [2.25s]
    Starting >>> cyberdog_ception_bridge Finished <<< cyberdog_ception_bridge [2.23s]
    Starting >>> mpg123_vendor Finished <<< ception_msgs [11.5s]
    Starting >>> grpc_vendor Finished <<< cyberdog_utils [4.85s] Starting >>> cyberdog_motion_bridge [17.039s] WARNING:colcon.colcon_cmake.task.cmake.build:Could not run installation step for package 'grpc_vendor' because it has no 'install' target
    Finished <<< grpc_vendor [1.43s]
    Starting >>> xiaoai_sdk_vendor Finished <<< motion_msgs [13.2s]
    Finished <<< mpg123_vendor [3.51s]
    Starting >>> automation_msgs Starting >>> sdl2_vendor
    Finished <<< cyberdog_motion_bridge [2.29s]
    Starting >>> bcmgps_plugin [18.965s] WARNING:colcon.colcon_cmake.task.cmake.build:Could not run installation step for package 'xiaoai_sdk_vendor' because it has no 'install' target
    Finished <<< xiaoai_sdk_vendor [1.73s]
    Starting >>> cyberdog_decisionutils Finished <<< interaction_msgs [15.3s]
    Starting >>> live_stream Finished <<< behaviortreecppv3_vendor [12.5s]
    Starting >>> cyberdog_bt_engine Finished <<< bcmgps_plugin [2.32s]
    Starting >>> cyberdog_bms Finished <<< cyberdog_decisionutils [2.78s]
    Starting >>> bluetooth Finished <<< live_stream [2.59s]
    Starting >>> wifirssi Finished <<< cyberdog_bt_engine [4.11s]
    Starting >>> cyberdog_body_state
    Finished <<< cyberdog_bms [5.28s]
    Starting >>> cyberdog_camera Finished <<< bluetooth [4.13s]
    Starting >>> cyberdog_gps Finished <<< automation_msgs [9.40s]
    Starting >>> cyberdog_interfaces
    Finished <<< wifirssi [5.34s]
    Starting >>> cyberdog_lightsensor Finished <<< cyberdog_interfaces [1.59s]
    Starting >>> cyberdog_decisionmaker --- stderr: cyberdog_body_state
    CMake Error at CMakeLists.txt:22 (find_package): By not providing "Findcyberdog_utils.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "cyberdog_utils", but CMake did not find one.

    Could not find a package configuration file provided by "cyberdog_utils" with any of the following names:

    cyberdog_utilsConfig.cmake
    cyberdog_utils-config.cmake
    

    Add the installation prefix of "cyberdog_utils" to CMAKE_PREFIX_PATH or set "cyberdog_utils_DIR" to a directory containing one of the above files. If "cyberdog_utils" provides a separate development package or SDK, be sure it has been installed.


    Failed <<< cyberdog_body_state [5.92s, exited with code 1] Aborted <<< cyberdog_decisionmaker [2.52s]
    Aborted <<< cyberdog_camera [6.50s]
    Aborted <<< cyberdog_lightsensor [4.85s]
    Aborted <<< cyberdog_gps [11.6s]
    Aborted <<< sdl2_vendor [4min 30s]

    Summary: 24 packages finished [4min 48s] 1 package failed: cyberdog_body_state 5 packages aborted: cyberdog_camera cyberdog_decisionmaker cyberdog_gps cyberdog_lightsensor sdl2_vendor 5 packages had stderr output: cyberdog_body_state cyberdog_camera cyberdog_gps cyberdog_lightsensor sdl2_vendor 13 packages not processed

    so how can I recorrect this error? thank you

    bug help wanted 
    opened by Peterxjerk 2
  • compile err :colcon build --merge-install --packages-up-to cyberdog_bringup

    compile err :colcon build --merge-install --packages-up-to cyberdog_bringup

    [email protected]:~/ws_cyberdog$ colcon build --merge-install --packages-up-to cyberdog_bringup

    Starting >>> cascade_lifecycle_msgs Starting >>> ception_msgs
    Starting >>> interaction_msgs Starting >>> lcm_vendor Starting >>> motion_msgs Starting >>> behaviortreecppv3_vendor Starting >>> grpc_vendor Starting >>> toml11_vendor --- stderr: ception_msgs
    CMake Error at /opt/ros/foxy/share/rosidl_adapter/cmake/rosidl_adapt_interfaces.cmake:60 (message): execute_process(/usr/bin/python3 -m rosidl_adapter --package-name ception_msgs --arguments-file /home/tmi/ws_cyberdog/build/ception_msgs/rosidl_adapter__arguments__ception_msgs.json --output-dir /home/tmi/ws_cyberdog/build/ception_msgs/rosidl_adapter/ception_msgs --output-file /home/tmi/ws_cyberdog/build/ception_msgs/rosidl_adapter/ception_msgs.idls) returned error code 1:

    Traceback (most recent call last):

    File "/opt/ros/foxy/lib/python3.8/site-packages/rosidl_adapter/parser.py", line 738, in parse_primitive_value_string
      value = int(value_string)
    

    ValueError: invalid literal for int() with base 10: '0xFFFFFFFFFFFFFFFF'

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):

    File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
      return _run_code(code, main_globals, None,
    File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
      exec(code, run_globals)
    File "/opt/ros/foxy/lib/python3.8/site-packages/rosidl_adapter/__main__.py", line 19, in <module>
      sys.exit(main())
    File "/opt/ros/foxy/lib/python3.8/site-packages/rosidl_adapter/main.py", line 53, in main
      abs_idl_file = convert_to_idl(
    File "/opt/ros/foxy/lib/python3.8/site-packages/rosidl_adapter/__init__.py", line 24, in convert_to_idl
      return convert_srv_to_idl(
    File "/opt/ros/foxy/lib/python3.8/site-packages/rosidl_adapter/srv/__init__.py", line 28, in convert_srv_to_idl
      srv = parse_service_string(package_name, input_file.stem, content)
    File "/opt/ros/foxy/lib/python3.8/site-packages/rosidl_adapter/parser.py", line 842, in parse_service_string
      request_message = parse_message_string(
    File "/opt/ros/foxy/lib/python3.8/site-packages/rosidl_adapter/parser.py", line 528, in parse_message_string
      constants.append(Constant(type_string, name, value))
    File "/opt/ros/foxy/lib/python3.8/site-packages/rosidl_adapter/parser.py", line 326, in __init__
      self.value = parse_primitive_value_string(
    File "/opt/ros/foxy/lib/python3.8/site-packages/rosidl_adapter/parser.py", line 740, in parse_primitive_value_string
      raise ex
    
    opened by dbdxnuliba 2
  • Cannot Log in to the Cyberdog

    Cannot Log in to the Cyberdog

    Hello, I've tried to log in to the Cyberdog onboard system with the following steps but failed:

    1. Press the start button of the Cyberdog until both lights on the head and tail shine (blue and red separately).

    2. Connect the download cable (not the charging cable) with the Cyberdog (on the download port) and a PC/laptop

    3. Use ssh [email protected] (on a Ubuntu 18.04 PC) or Mobaxterm/putty (on a Windows10 laptop) to log in.

    Both cases returned Connection timed out.

    BTW, when connect to the Windows10 laptop, it reports that the APX driver is missing.

    What's the problem?

    opened by Entromorgan 2
  • 铁蛋的运动控制板(192.168.55.233),如何可以让我们用户像正常的linux系统一样使用?现在它是只读模式(read-only)

    铁蛋的运动控制板(192.168.55.233),如何可以让我们用户像正常的linux系统一样使用?现在它是只读模式(read-only)

    opened by HoiCeong 0
  • Typo in melodic build doc:

    Typo in melodic build doc: "从源码安装ROS 2 | Building ROS 2 from source"

    https://github.com/MiRoboticsLab/cyberdog_ros2/wiki/从源码安装ROS-2-%7C-Building-ROS-2-from-source#English

    [email protected]:~/cyberdog_ros2$ git diff
    diff --git a/tools/ros2_fork/extend.repos b/tools/ros2_fork/extend.repos
    index 6ae5252..d7828e3 100644
    --- a/tools/ros2_fork/extend.repos
    +++ b/tools/ros2_fork/extend.repos
    @@ -23,7 +23,7 @@ repositories:
         type: git
         url: https://github.com/ros-planning/navigation_msgs.git
         version: 2.1.0
    -   ros-visualization/interactive_markers:
    +  ros-visualization/interactive_markers:
         type: git
         url: https://github.com/ros-visualization/interactive_markers.git
         version: 2.2.0
    

    Will cause the following error when following the instructions

    [email protected]:~/ros_src$ vcs import src < extend.repos
    Input data is not valid yaml format: while parsing a block mapping
      in "<stdin>", line 2, column 3
    expected <block end>, but found '<block mapping start>'
      in "<stdin>", line 26, column 4
    
    opened by MAVProxyUser 0
  • Dog can not flip, how to use mc_flip.dat on Tina controller

    Dog can not flip, how to use mc_flip.dat on Tina controller

    [email protected]:/robot/robot-software/config# ls -al mc_flip.dat -rw-r--r-- 1 root root 66880 Jan 13 2022 mc_flip.dat

    We know he flips... but how!? https://www.youtube.com/watch?v=Jj95byxQCeU

    opened by MAVProxyUser 0
  • V1.0.0.94 open source, where can i download it

    V1.0.0.94 open source, where can i download it

    Discussed in https://github.com/MiRoboticsLab/cyberdog_ros2/discussions/153

    Originally posted by tarikbeijing September 12, 2022 您好,您能告诉我在哪里可以找到与V1.0.0.94版本相关的开源软件吗?在github上,它不是,https://partner-gitlab.mioffice.cn/cyberdog它也不是V1.0.0.94版本。感谢您的帮助。 Hello, can you tell me where I can find the open source software related to v1.0.0.94? On GitHub, it is not, https://partner-gitlab.mioffice.cn/cyberdog https://partner-gitlab.mioffice.cn/cyberdog/ Original repos: git clone https://partner-gitlab.mioffice.cn/cyberdog/athena_drivers_gd_bin.git git clone https://partner-gitlab.mioffice.cn/cyberdog/athena_locomotion_bin.git git clone https://partner-gitlab.mioffice.cn/cyberdog/athena_cyberdog.git git clone https://partner-gitlab.mioffice.cn/cyberdog/athena_kernel.git git clone https://partner-gitlab.mioffice.cn/cyberdog/athena_vision.git git clone https://partner-gitlab.mioffice.cn/cyberdog/athena_assistant.git git clone https://partner-gitlab.mioffice.cn/cyberdog/athena_automation.git git clone https://partner-gitlab.mioffice.cn/cyberdog/athena_repos.git git clone https://partner-gitlab.mioffice.cn/cyberdog/athena_lcm_type.git git clone https://partner-gitlab.mioffice.cn/cyberdog/athena_drivers_st.git git clone https://partner-gitlab.mioffice.cn/cyberdog/build_extra.git It is not the v1.0.0.94. I compiled it , it is not running well, also lot of communication problem with the ap. I installed the 1.0.094 code it run very well. so where can i find the opencode of 1.0.0.94?Thank you for your help.

    opened by tarikbeijing 0
Releases(1.0.0.3)
  • 1.0.0.3(Oct 15, 2021)

    What's Changed

    • [Modify] Modifications for movement to GitHub by @homalozoa in https://github.com/MiRoboticsLab/cyberdog_ros2/pull/1
    • [New/Fix] Add template & Fix mermaid display by @homalozoa in https://github.com/MiRoboticsLab/cyberdog_ros2/pull/7
    • [Fix] The name of a Publisher should end with "pub_" instead of "sub_" by @sqybi in https://github.com/MiRoboticsLab/cyberdog_ros2/pull/11
    • Fix readme typo by @erjanmx in https://github.com/MiRoboticsLab/cyberdog_ros2/pull/16
    • [Fix] Fix repos & dockerfiles & mds & vendor_pkgs by @homalozoa in https://github.com/MiRoboticsLab/cyberdog_ros2/pull/20
    • [Fix] Remove imu_tools & Fix README by @homalozoa in https://github.com/MiRoboticsLab/cyberdog_ros2/pull/25
    • [Add] Enable CI & Add vendors & Remove vision pkgs by @homalozoa in https://github.com/MiRoboticsLab/cyberdog_ros2/pull/27

    New Contributors

    • @homalozoa made their first contribution in https://github.com/MiRoboticsLab/cyberdog_ros2/pull/1
    • @sqybi made their first contribution in https://github.com/MiRoboticsLab/cyberdog_ros2/pull/11
    • @erjanmx made their first contribution in https://github.com/MiRoboticsLab/cyberdog_ros2/pull/16

    Full Changelog: https://github.com/MiRoboticsLab/cyberdog_ros2/commits/1.0.0.3

    Source code(tar.gz)
    Source code(zip)
Owner
null
Core ROS packages

Robot Operating System (ROS) =============================================================================== ROS is a meta-operating system for your

ROS core stacks 2.1k Dec 30, 2022
Raspberry Pi Pico (RP2040) and Micro-ROS (ROS 2) Integration

The Pico is an amazing microcontroller and I couldn't wait for ROS 2 support or Arduino Core, so here is my approach. Once the Arduino Core for RP2040 is out it will be easier to use micro_ros_arduino.

Darko Lukić 19 Jun 19, 2022
The main repository for the Darkflame Universe Server Emulator project.

Darkflame Universe Introduction Darkflame Universe (DLU) is a server emulator for LEGO® Universe. Development started in 2013 and has gone through mul

null 492 Jan 7, 2023
OpenBK7231T project - main application

Building Clone the SDK repo to a folder, e.g. bk7231sdk/ Clone the app repo into bk7231sdk/apps/ - e.g. bk7231sdk\apps\openbk7231app On Windows, start

null 428 Jan 9, 2023
ESPHome integration for the Xiaomi Mijia Bedside Lamp v2.

esphome-xiaomi_bslamp2 Warning: this code is still under development This code might not yet be production-ready. At this point, it is declared beta-q

Maurice Makaay 136 Dec 27, 2022
CAFest kernel for Xiaomi SM8250/SM8250-AC devices

Linux kernel ============ There are several guides for kernel developers and users. These guides can be rendered in a number of formats, like HTML an

Utsav Balar 130 Dec 29, 2022
Nexus CAF 4.14 Kernel Source For Xiaomi Miatoll Devices.

Linux kernel ============ This file was moved to Documentation/admin-guide/README.rst Please notice that there are several guides for kernel develop

RoHaN 7 Mar 21, 2022
Common Device Source For Xiaomi Redmi Note 5 Pro (whyred)

The Redmi Note 5 Pro (codenamed "whyred") are high-end mid-range smartphones from Xiaomi announced and released in February 2018. Device specification

Yash Biyani 0 Dec 22, 2021
Kernel Nethunter Xiaomi Redmi Note 9 pro (joyeuse)

How to compile kernel for Redmi Note 9 Pro (joyeuse) Intro I just added some features for nethunter and fix when adding features. Features Differences

null 2 Nov 1, 2022
Kernel Tree of Xiaomi Redmi Note 4/4X (mido)

Kernel Tree of Xiaomi Redmi Note 4/4X (mido)

MUHAMAD KHOIRON 1 Jan 18, 2022
Device Tree of Xiaomi Redmi Note 4/4X (mido)

Device Tree for Xiaomi Redmi Note 4 & 4x (Mido) Spec Sheet Feature Specification CPU Octa-core 2.0 GHz Cortex-A53 Chipset Qualcomm MSM8953 Snapdragon

MUHAMAD KHOIRON 1 Jan 23, 2022
Device Tree for Xiaomi Redmi 8 (olive)

Device Tree for Xiaomi Redmi 8 (olive) Spec Sheet Feature Specification CPU Octa-core 2.0 GHz Cortex-A53 Chipset Qualcomm MSM8937 Snapdragon 439 GPU A

deadlylxrd 2 Mar 3, 2022
Boilerplate to create a project with: STM32 + Ethernet + micro-ROS + FreeRTOS + Arduino + PlatformIO

micro_ros_stm32_template Boilerplate to create a project with: STM32 + Ethernet + micro-ROS + FreeRTOS + Arduino + PlatformIO Default config STM32F407

Husarion 14 Aug 29, 2022
ros2_control packages for ROBOTIS Dynamixel

dynamixel_control The ros2_control implementation for any kind of ROBOTIS Dynamixel robots. dynamixel_hardware: the SystemInterface implementation for

Yutaka Kondo 63 Dec 4, 2022
Packages for simulating the Tethys-class Long-Range AUV (LRAUV) from the Monterey Bay Aquarium Research Institute (MBARI).

LRAUV Simulation This repository contains packages for simulating the Tethys-class Long-Range AUV (LRAUV) from the Monterey Bay Aquarium Research Inst

Open Robotics 31 Dec 22, 2022
OpenWrt Packages

NueXini_Packages 1.如何使用NueXini_Packages? / How to use NueXini_Packages? cd lede sed -i '$a src-git NueXini_Packages https://github.com/NueXini/NueXini

null 194 Jan 2, 2023
It's a static library that's provide a way to do hooking (intercepting software components) in native shared object from some Android Packages

ARM_hook It's a static library that's provide a way to do hooking (intercepting software components) in native shared object from some Android Package

Gabriel Correia 1 Feb 17, 2022
EarlyBird process hollowing technique (BOF) - Spawns a process in a suspended state, inject shellcode, hijack main thread with APC, and execute shellcode

HOLLOW - Cobalt Strike BOF Authors: Bobby Cooke (@0xBoku) Justin Hamilton (@JTHam0) Octavio Paguaga (@OakTree__) Matt Kingstone (@n00bRage) Beacon Obj

Bobby Cooke 203 Dec 20, 2022