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

电机的控制信息

审核编辑 :李倩

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

    关注

    2574

    文章

    54417

    浏览量

    786263
  • 开源
    +关注

    关注

    3

    文章

    4038

    浏览量

    45578
  • 机械狗
    +关注

    关注

    0

    文章

    18

    浏览量

    4946

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开源 | 60余套STM32单片机、嵌入式Linux、物联网、人工智能项目(开发板+教程+源码)

    私信免费领取!60余套综合项目案例STM32单片机、嵌入式、物联网、人工智能智能车/机器/小智AI/家居/农业/安防等多领域项目文档+项目源码,全开源高校教学、学生毕设、创新竞赛、项目练手01
    的头像 发表于 12-04 11:42 124次阅读
    <b class='flag-5'>开源</b> | 60余套STM32单片机、嵌入式Linux、物联网、人工智能项目(开发板+教程+<b class='flag-5'>源码</b>)

    2025开放原子园区行暨小米开源峰会圆满落幕

    近日,开放原子园区行(小米站)暨2025小米开源峰会在小米园区成功举办。本次活动聚焦推动开源落地产业一线,不仅展示了
    的头像 发表于 10-30 09:36 359次阅读

    开源FPGA硬件】硬件黑客集结:开源FPGA开发板测评活动全网火热招募中......

    式发布!现面向全网招募第一批工程师/硬件爱好者,开发板免费试用测试! 优秀试用报告,将作为板卡配套资料发布~ 相关链接: 拥抱开源!一起来做FPGA开发板!火爆开发中 |
    发表于 10-29 11:37

    开源鸿蒙MNN AI应用开发与MNN移植经验

    本期内容由AI Model SIG提供,介绍了在开源鸿蒙中,利用MNN开源框架开发AI应用以及基于MNN源码编译与Har包封装的方法。
    的头像 发表于 09-04 11:31 3661次阅读
    <b class='flag-5'>开源</b>鸿蒙MNN AI应用开发与MNN移植经验

    储能电站机械高效巡检的无线组网整体解决方案

    项目背景 国内某大型储能电站,占地面积超10万平方米,设备布局密集复杂,传统人工巡检效率低、风险高。客户需部署数十台机械同时作业,以实现高效全覆盖巡检。然而,电站内强电磁干扰严重,常规网络信号极不
    的头像 发表于 08-13 12:16 347次阅读
    储能电站<b class='flag-5'>机械</b><b class='flag-5'>狗</b>高效巡检的无线组网整体解决方案

    开放原子开源基金会与腾讯达成合作

    近日,在北京举行的2025开放原子开源生态大会现场,开放原子开源基金会与腾讯计算(北京)有限责任公司签署“开源协作平台互联合作协议”。
    的头像 发表于 08-05 11:06 1092次阅读

    机智亮相字节豆包AIoT开源生态沙龙

    近日,字节跳动火山引擎2025原动力大会在北京隆重召开,同期由机智、火山引擎、扣子发起,联合CSDN、GitCode、广和通、奕斯伟、爱湾学院共同参与的“开源智联·具身同行”字节豆包AIoT开源
    的头像 发表于 06-16 09:50 755次阅读

    开源智联·具身同行:机智推出基于豆包的 OpenEmbodied AI技术、产品及开源方案

    6月11日机智携手火山引擎、扣子发起,联合CSDN、GitCode、广和通、奕斯伟、爱湾学院举办的“开源智联·具身同行”字节豆包AIoT开源生态沙龙圆满成功,正式推出基于豆包
    的头像 发表于 06-13 19:19 729次阅读
    <b class='flag-5'>开源</b>智联·具身同行:机智<b class='flag-5'>云</b>推出基于豆包的 OpenEmbodied AI技术、产品及<b class='flag-5'>开源</b>方案

    拥抱开源!一起来做FPGA开发板

    、熟悉嵌入式系统开发的伙伴。 主要任务: 完成PCIE上位机设计(Linux); 提交开源内容:PCIE上位机设计源码以及实验详细说明文档(原理+实现思路+操作说明) 背景概述: FPGA,这颗被誉为
    发表于 06-06 14:05

    请问下,openharmony支持哪一款龙芯的开发板?有没有开源的龙芯的openharmony源码

    想买个2k0300的开发板学习龙芯和openharmony,愣是没有看到提供openharmony源码的,也没与看到开源的代码。gitee上,openharmony的龙芯sig仓库也是关闭的,有没有人知道现在是什么情况?
    发表于 04-26 13:06

    大象机器人携手进迭时空推出 RISC-V 全栈开源六轴机械臂产品

    大象机器人成立于2016年,专注协作机器人研发与应用,产品线涵盖轻量级协作机器人、人形机器人、仿生机器人等多种形态。拳头产品myCobot系列以“全球最轻的六轴机械臂”闻名,累计销量超数万台,覆盖
    发表于 04-25 17:59

    开源项目!教你如何制作一个开源教育机械

    界面进行远程控制。这种模式非常适合物联网应用、远程监控和基于的控制。 每种模式都是完全开源的,允许自定义固件开发,以使Pedro适应特定项目需求! 收获 Pedro为机器人和电子项目提供紧凑而强大
    发表于 03-10 11:22

    科技报到:科技普惠潮流渐起,“开源”将带我们走向何方?

    科技报到:科技普惠潮流渐起,“开源”将带我们走向何方?
    的头像 发表于 02-17 12:34 458次阅读

    开源安全领航者!华为 CodeArts Governance 构建更安全的软件开发生命周期

    华为 CodeArts Governance开源治理服务是针对软件研发提供的一站式开源软件治理平台,从合法合规、网络安全、供应安全等维度消减开源软件使用风险。 最新特性
    的头像 发表于 02-12 16:50 3060次阅读
    <b class='flag-5'>开源</b>安全领航者!华为<b class='flag-5'>云</b> CodeArts Governance 构建更安全的软件开发生命周期

    小米开源2024年度报告发布

    近日,小米公司正式发布了其《小米开源2024年度报告》,该报告详细阐述了小米开源领域所取得的显著进展。在2024年这一关键年份里,
    的头像 发表于 01-24 13:50 1139次阅读