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

电机的控制信息

审核编辑 :李倩

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

    关注

    2536

    文章

    48849

    浏览量

    743528
  • 开源
    +关注

    关注

    3

    文章

    3040

    浏览量

    41829
  • 机械狗
    +关注

    关注

    0

    文章

    18

    浏览量

    4807

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

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

收藏 人收藏

    评论

    相关推荐

    浙大博导开源飞控planner源码

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

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

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

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

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

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

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

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

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

    开源获奖案例】四轴机械臂控制系统

    ——来自迪文开发者论坛本期为大家推送迪文开发者论坛获奖开源案例——四轴机械臂控制系统。工程师采用T5L智能屏,基于DGUS软件“旋转指示”控件实现机械臂的实时位置显示,并通过串口控制机械
    的头像 发表于 12-23 08:13 504次阅读
    【<b class='flag-5'>开源</b>获奖案例】四轴<b class='flag-5'>机械</b>臂控制系统

    获取Linux内核源码的方法

    件系统等关键功能,今天小编就给各位小伙伴介绍一下如何获取Linux内核源码。获取Linux内核源码的渠道Linux有一个庞大的开源社区,每个人都可以向开源社区提交代码。由
    的头像 发表于 12-13 09:49 368次阅读
    获取Linux内核<b class='flag-5'>源码</b>的方法

    php的源码是什么开源语言

    PHP的源码是用C语言编写的,是一种开源的服务器端脚本语言。下面是关于PHP源码的详细介绍。 一、PHP简介 PHP(全称:PHP: Hypertext Preprocessor)是一种开源
    的头像 发表于 12-04 16:11 893次阅读

    在基于AT32 RT-Thread的源码包中开启并下载Micropython开源

    Micropython Based On AT32 RTT讲述如何在基于AT32 RT-Thread 的源码包中开启并下载Micropython 开源包,并简单描述和展示了Micropython 在AT32 系列MCU 上正常运行起来后的现象及python 语句的执行结果
    发表于 10-25 07:06

    有没有基于PIC18F14K50的开源blaster电路图和源码

    有没有基于PIC18F14K50的开源blaster电路图和源码
    发表于 10-20 06:22

    小米机器二代来了,比上一代更瘦、更快、更强!NVIDIA主控+全志MR813+全志R329协处理器

    能看、能听、能感知,CyberDog2确实如雷军所调侃的那样,它比从前“更了”。 在刚刚结束的秋季新品发布会上,小米发布了最新的仿生四足机器人CyberDog2,虽然没有在发布会现场
    发表于 09-06 09:39

    有偿请帮忙,下载开源代码到机器

    小米cyberdog2里面的所有开源代码远程桌面,指导安装对应的软件,代码编译运行下载到机器;简单讲解一下代码。 有偿请人帮忙,可以长期合作。
    发表于 09-01 17:33

    雷军展示的CyberDog2,用了多少传感器?

    来源:财联社、环球网科技 编辑:感知芯视界 8月14日晚,小米新品发布会在北京国家会议中心举行,小米创始人、董事长雷军在发布会上展示第二代仿生四足机器人CyberDog2。外观上,CyberD
    的头像 发表于 08-17 13:32 638次阅读

    【飞凌i.MX9352开发板试用】+机械臂游戏3—游戏源代码(开源)原创首发

    【飞凌i.MX9352开发板试用】+机械臂游戏 3游戏操纵杆控制四自由度机械臂(开源)原创首发 - 飞凌嵌入式
    的头像 发表于 07-26 11:28 793次阅读

    粒子动力机械开源构建

    电子发烧友网站提供《粒子动力机械开源构建.zip》资料免费下载
    发表于 07-11 11:02 0次下载
    粒子动力<b class='flag-5'>机械</b>臂<b class='flag-5'>开源</b>构建