0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

小米机械狗CyberDog云体验源码开源啦!

云深之无迹 来源:云深之无迹 作者:云深之无迹 2022-08-02 11:13 次阅读

我到处说小米没开源,我真没素质,其实人家已经开源了...不过是20个月前开的,是我的锅. 小米机械狗CyberDog云体验 其实在当时我已经写一个这样的与体验的文章,听着群里面的怂恿还在微博上面私信了雷军(真的是属于教唆犯罪了),结果当然是没有尿我啦~ 不过之后也有读者加我给我展示他买的狗子,哈哈哈,翻跟头的声音有点大了,之后AirLAB实验室也有一只狗子,不过我也没有去摸了,遗憾~ 好了,闲话不多说让我们开始今天的这个文章主题.Cyberdog主要使用了MIT的开源代码Mini Cheetah(也就是MPC) 以及 ROS 2的开源平台制作的一个机器人.

传感器包括:Intel Realsense D450深度摄像头、AI交互相机、双目超广角相机、TOF传感器、环境光传感器、超声波传感器、惯性测量单元、GPS模组、地磁传感器、光流计、6MIC环型阵列、触摸传感器.

CyberDog全身的自由度是12,单腿的自由度是3,即每只脚大腿关节处有两个电机,小腿关节处有一个电机,共12个电机。

12个电机的组合让CyberDog可以自由地做出奔跑、跳跃、空翻等高难度动作。据悉,这12个伺服电机均由小米自研,单个最大扭矩达32N·m,最大转速为220rpm,可以让这只14KG重的CyberDog以11.5km/h的速度前进.

CyberDog“小脑”使用的国内知名芯片设计厂商全志科技的Allwinner MR813。MR813将负责MPC算法的执行、运动控制、电源系统管理和OTA系统管理等工作。即CyberDog的四只脚以及上面的12个伺服电机,都将在MR813的控制下有序地行动,让CyberDog不会出现顺拐或者“扑街”。也就是说通过全志MR813芯片对全身的运动模块进行控制。

MR813是全志针对运动机器人市场推出的高性能SoC,4核A53架构,主频高达1.6GHz,拥有丰富的音视频接口和运动驱动接口。

MR系列芯片已经在在扫地机器人产品上被广泛应用,其中包括小米、石头、追觅等。

7aada8fa-11b1-11ed-ba43-dac502259ad0.png

蓝色的全志的东西

7b0ce7ac-11b1-11ed-ba43-dac502259ad0.png

就是这样

7b6f59d2-11b1-11ed-ba43-dac502259ad0.png

Github上面的话是发现了一个新的库,是关于电机控制的固件的,我还没有看代码,不知道是什么样的.

好了,今天的主角是Cyberdog.一开始的代码其实是小米自己的Gitlab服务器(应该是),在后面的时候迁移到Github上面. 我们从软件的构架图开始代码的研究之旅,你也不要问我有没有用,因为没有人写,写也是论文的解读,个人觉得做产品最可贵的事情就是把论文变成代码.可能这些文章就像老师说的一样,由于你的没有耐心没有写下去,但是总归是有用的.

7b8ffd68-11b1-11ed-ba43-dac502259ad0.png

这个是软件的构架图

7bab0e6e-11b1-11ed-ba43-dac502259ad0.png

系统框图

7bcebe9a-11b1-11ed-ba43-dac502259ad0.png

这个看的可能更清晰

注意,这里两个板子之间的通讯使用网口。

7bff8002-11b1-11ed-ba43-dac502259ad0.png

这个是在左上角的一部分节点,作用是使用手机的APP控制,至于蓝牙是模块实现了:注册蓝牙GATT service,发送BLE广播,等待手机APP连接成功后,接收APP发送的Wifi信息,实现Wifi的联网操作,并返回联网结果,以及通过APP提供的命令,实现蓝牙手柄的扫描,连接,达到通过手柄控制CyberDog的目的。

手机这里我也没有用过,按照这个写法,应该是可以在手机这里实时的看到狗子回传的画面,使用的RTSP,这个具体的控制使用的是GRPC.SHM是什么?我不知道,有同学可以给我解读一下.

7c1c1b18-11b1-11ed-ba43-dac502259ad0.png

CAN是这里使用的通信方式,至于是什么作用,这里就看命名方式就行

7c402b52-11b1-11ed-ba43-dac502259ad0.png

就像这样Node的作用,自己看名字吧,没什么好说的

7c6ca7c2-11b1-11ed-ba43-dac502259ad0.png

灯传感器,语音助手,触摸检测,Intel的相机都是单独的节点

7c974e82-11b1-11ed-ba43-dac502259ad0.png

这个是电池,还有语音功能,远程的控制命令

7cb3eeac-11b1-11ed-ba43-dac502259ad0.png

定位,建图,追踪的功能在这里

7ce585c0-11b1-11ed-ba43-dac502259ad0.png

上面的所有服务都集成到DDS,做统一的处理

7d035096-11b1-11ed-ba43-dac502259ad0.png

目前要读的源码就是这些,太多了,朋友

7d24c514-11b1-11ed-ba43-dac502259ad0.png

核心的库目前就是这三个

7d3f76a2-11b1-11ed-ba43-dac502259ad0.png

最核心的事情都放在这里,ROS2

通用类:

athena_bringup:启动系统相关,在ROS 2的Launch启动系统上设计了更简约的启动项管理,对启动脚本(Python3)和启动内容进行了隔离。通过简单的参数配置,新的节点或新的进程便可被添加到启动项,而无需修改脚本内容。同时也支持参数管理、调试和开关等功能。

athena_grpc:机器人与外部通讯的媒介,目前与手机App进行连接是基于GRPC的。

athena_utils:本项目的通用功能仓,包括基于cascade_lifecycle修改的LifecycleNode基类,和传感器相关节点共用的基类等。

media_vendor:多媒体相关应用需要使用的CMake配置项。

toml11_vendor:toml11的桥接包。

感知类

athena_bms:CyberDog上的电池管理模块,主要负责电池信息的接收与分发。

athena_body_state:该模块实现了整机运动状态的感知功能,并通过BodyState上报posequat和speed_vector两种message的数据(posequat表示整机姿态四元数;speed_vector表示整机运动的瞬时速度,单位:m/s)。

athena_lightsensor:该模块创建了机器人感知系统中Light Sensor的service和publisher,当机器人需要感知周围环境光的强度时,可通过上层决策层启动该service和publisher,获取环境光照度信息。

athena_obstacledetection:该模块创建了机器人感知系统中Ultrasonic Sensor的service和publisher。

athena_scenedetection:该模块为机器人提供场景检测功能,通过定位芯片获取当前位置信息,同时通过卫星信号质量判断机器人当前处于室内或室外。

交互类:

bluetooth:该模块实现了:注册蓝牙GATT service,发送BLE广播,等待手机APP连接成功后,接收APP发送的Wifi信息,实现Wifi的联网操作,并返回联网结果,以及通过APP提供的命令,实现蓝牙手柄的扫描,连接,达到通过手柄控制CyberDog的目的。

wifirssi:该模块的主要功能是创建定时任务,实时查询当前已连接Wifi的信号强度,并通过ros2的topic通讯进行传输。

audio_base:该模块用于播放多段或单段不定长PCM音频数据、wav格式音频文件,其底层实现为SDL2与SDL_mixer。

audio_interaction:该模块用于实现整个音频模块的交互部分,主要包括与其它模块之间关于通用播放的交互、语音助手相关控制与交互功能和与APP(grpc)之间关于音量调解的交互功能。

athena_audio

athena_camera:该模块基于NVIDIA Argus和ROS 2实现了相机的基础功能,包括拍照和录像等,并为其他模块(视觉SDK、图传等)提供调用接口。

athena_led:该模块用于统一决策系统所有的LED灯效请求,基于ROS2 Service以及sensor_utils类实现,通过定义不同client的LED消息优先级以及timeout来实现对CyberDog头灯和尾灯的控制显示功能。

athena_livestream

athena_touch:该模块提供了topic为TouchState的publisher, 继承于athena_utils::LifecycleNode.

目前支持单指单击报LPWG_SINGLETAP_DETECTED 和单指长按3s报LPWG_TOUCHANDHOLD_DETECTED事件。

athena_wireless

决策类:

athena_decisionmaker:面向业务层,负责实现具体业务功能。目前提供了automation_manager、ception_manager、interaction_manager和motion_manager。分别用于自动化功能、感知功能、人机交互功能和运动功能的管理和决策。该四个模块均继承cascade_manager,并在基础上根据业务功能稍作改动。

athena_decisionutils:决策相关功能的基类和工具类集合,负责实现通用功能。目前提供了cascade_manager,该模块继承于athena_utils::LifecycleNode,具备级联/并联和单点控制的功能,可以快速管控其作用域下的节点的启动和关闭。

接口类:

athena_interfaces:接口总抽象包。

automation_msgs:自动化功能相关接口。

cascade_lifecycle_msgs:级联节点相关接口。

ception_msgs:感知功能相关接口。

interaction_msgs:交互功能相关接口。

motion_msgs:运动功能相关接口。

7d6a16dc-11b1-11ed-ba43-dac502259ad0.png

这个是开源的电机接口

SDK开放了电机驱动器和机身IMU传感器接口,配合cyberdog 1.0.0.94及以上版本使用,方便用户进行运动控制的二次开发。

7d8361e6-11b1-11ed-ba43-dac502259ad0.png

具体的一个接口

7d9fd204-11b1-11ed-ba43-dac502259ad0.png

通用的接口

7dc3a134-11b1-11ed-ba43-dac502259ad0.png

在电机的内部还有很多的数据结构

7de9b342-11b1-11ed-ba43-dac502259ad0.png

电机的控制信息

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2551

    文章

    51090

    浏览量

    753485
  • 开源
    +关注

    关注

    3

    文章

    3345

    浏览量

    42493
  • 机械狗
    +关注

    关注

    0

    文章

    18

    浏览量

    4836

原文标题:小米Cyberdog源码开源啦!

文章出处:【微信号:TT1827652464,微信公众号:云深之无迹】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    阿里开源推理大模型QwQ

    近日,阿里通义团队宣布推出全新AI推理模型QwQ-32B-Preview,并同步实现了开源。这一举措标志着阿里在AI推理领域迈出了重要一步。 据评测数据显示,QwQ预览版本已具备研究生水平的科学
    的头像 发表于 11-29 11:30 555次阅读

    科技报到:假开源真噱头?开源大模型和你想的不一样!

    科技报到原创。 25年前,著名的计算机程序员、开源软件运动旗手Eric S·Raymond出版了《大教堂与集市》一书,首次提出了开放源代码(Open Source)的概念,提倡软件源代码能被任何人
    的头像 发表于 11-03 10:46 230次阅读

    Matepad pro12.2 已上市半个月,但是还没有在开源网站看到该项目的开源信息,违背开源精神

    任何该项目的开源计划,违背开源精神 按照开源社区 licsence和公共库开源licsence要求,对应的项目上市后都需要尽快开源并及时公布
    发表于 08-27 17:25

    Jtti:服务器OpenStack的优势分析

    混合环境中得到广泛应用。本文将详细分析OpenStack服务器的优势,以帮助企业和开发者理解其在构建基础设施方面的独特价值。 1. 开源和社区驱动 开放性 自由访问
    的头像 发表于 08-07 16:29 326次阅读

    大象机器人开源协作机械机械臂接入GPT4o大模型!

    和智能化的任务,提升了人机协作的效率和效果。我们个人平时接触不太到机械臂这类的机器人产品,但是有一种小型的机械臂我们人人都可以拥有它myCobot,价格低廉的一种桌面型机械臂。 案例介绍 本文介绍同济子豪兄
    的头像 发表于 07-03 14:09 885次阅读
    大象机器人<b class='flag-5'>开源</b>协作<b class='flag-5'>机械</b>臂<b class='flag-5'>机械</b>臂接入GPT4o大模型!

    浙大博导开源飞控planner源码

    浙大博导开源飞控planner源码
    发表于 06-12 11:43 4次下载

    小米机器人入驻小米汽车工厂,已研发铁大、铁蛋等机器人

    6月5日消息,北京亦庄公众号发布文章,透露小米机器人技术有限公司(下文称小米机器人)近日在北京经济技术开发区(亦庄)举行了盛大的乔迁仪式。现场,小米第二代仿生四足机器人CyberDog
    的头像 发表于 06-05 16:38 1279次阅读

    阿里与中兴通讯达成开源数据库合作

    近日,阿里与中兴通讯宣布达成开源数据库领域的深度合作。中兴通讯正式加入PolarDB开源社区,并荣任首届理事会成员单位,这一举措标志着两大科技巨头在数据库领域的合作迈向新的高度。
    的头像 发表于 05-17 10:47 565次阅读

    阿里与中兴通讯达成开源数据库合作,助推国产数据库发展

    据悉,阿里与中兴通讯于5月16日公布了开源数据库合作事宜。中兴通讯正式宣布加入PolarDB开源社区,并担任首届理事会成员单位。
    的头像 发表于 05-16 16:34 457次阅读

    Redis 开源社区持续壮大,华为为 Valkey 项目注入新的活力

    版本开始,将原先比较宽松的 BSD 源码使用协议修改为 RSAv2 和 SSPLv1 协议,意味着 Redis 在 OSI(开放源代码促进会)定义下不再是严格的开源
    的头像 发表于 05-09 22:59 725次阅读
    Redis <b class='flag-5'>开源</b>社区持续壮大,华为<b class='flag-5'>云</b>为 Valkey 项目注入新的活力

    商业开源MES+源码+送可拖拽式数据大屏

    商业开源MES+源码+送可拖拽式数据大屏+开发学习的好机会
    的头像 发表于 04-15 11:21 915次阅读
    商业<b class='flag-5'>开源</b>MES+<b class='flag-5'>源码</b>+送可拖拽式数据大屏

    阿里魔搭发起“ModelScope-Sora开源计划”

    在备受瞩目的2024全球开发者先锋大会上,阿里魔搭社区宣布了一项重要举措——“ModelScope-Sora开源计划”。此举旨在借助开源的力量,推动中国类Sora模型的探索与创新进程。
    的头像 发表于 03-26 09:18 594次阅读

    银牛微电子3D视觉感知方案赋能小米CyberDog系列仿生四足机器人

    2024年3月21日,合肥银牛微电子宣布小米CyberDog系列仿生四足机器人的AI多模态融合感知决策系统正式采用银牛的双目立体视觉产品解决方案。
    的头像 发表于 03-21 13:55 833次阅读

    基于Android13的AOSP源码下载及编译指南

    AOSP(Android Open Source Project)是Android操作系统的开源项目,通过下载和编译AOSP源码,您可以获得原始的Android系统,并进行定制和开发。本教程将向您介绍如何下载AOSP源码并进行编
    的头像 发表于 01-17 09:49 3953次阅读
    基于Android13的AOSP<b class='flag-5'>源码</b>下载及编译指南

    Apache Doris聚合函数源码解析

    笔者最近由于工作需要开始调研 Apache Doris,通过阅读聚合函数代码切入 Apache Doris 内核,同时也秉承着开源的精神,开发了 array_agg 函数并贡献给社区。笔者通过这篇文章记录下对源码的一些理解,同时也方便后面的新人更快速地上手
    的头像 发表于 01-16 09:52 1023次阅读
    Apache Doris聚合函数<b class='flag-5'>源码</b>解析