open-ai-robot / awesome-dji-robomaster

Awesome DJI Robomaster S1
81 stars 12 forks source link

When the Python SDK will be released? #2

Closed caiweining closed 4 years ago

caiweining commented 4 years ago

Will the python SDK of Robomaster S1 be released? And When?

unbug commented 4 years ago

I haven't got the device, but according to its manual book (page 41) and FAQ, it does support Python programming.

Manual: https://dl.djicdn.com/downloads/robomaster-s1/20190612/RoboMaster_S1_User_Manual_v1.0_EN.pdf FAQ: https://www.dji.com/cn/robomaster-s1/faq

caiweining commented 4 years ago

Python is embeded in the Robomaster S1, but does it support third-party modules?

unbug commented 4 years ago

Im not sure, do you have the deivce?

GlideLeo commented 4 years ago

仔细找过了相关的介绍,目前只有scratch有比较详细的资料,python方面只有一些demo,但是并没有提供相关的编程手册。我前几天在robomaster现场购买了s1,目前发现s1可开发性较低,没有面向开发者的文档。当然,我的想法是外接控制板,因为S1的机械结构以及用料都很好,操控性能不错。目前能看到的希望就是它的主控带一个uart口,也许可以作为通信接口使用,剩下的是S-BUS(舵机)和PWM接口,它的PWM接口也不确定是否可以作为GPIO使用。

unbug commented 4 years ago

@JassyL 没有Remote SDK, 不能 WiFi 控制我觉得可编程性更低,官网说是可以将 python 上传,我觉得很鸡肋,S1 不比英伟达 Jason Nano 直接支持机器学习运算,就需要远程的电脑来运算,并远程驱动S1。目前看来太偏玩具了,不能编程加入 AI。 我现在还没有机子,有没有兴趣一起写一篇文章喷一下DJI,迫使他们提供 Remote SDK?

GlideLeo commented 4 years ago

@unbug aha,S1确实没有达到我预期的可编程性,不过对于青少年编程来说还是非常棒的。也许DJI并没有打算开放这些接口,这款产品也仅仅是面向青少年入门而已。python上传的方式也无法做到开机运行,只是作为一个特定动作/功能,像它的视频演示一样远程启动。不过它运算应该是在本地的,它有一块NXP的rt1021作为运动控制主控,另外摄像头和wifi也有一块独立的主控。我目前的想法是,如果DJI开放运动控制接口,我就可以不用它自带的摄像头和wifi,外扩其它设备来控制,也是有可玩性的。 另外还有一点很头疼的是,S1的电池是DJI的智能型电池,在没有协议的情况下,我无法更换其它电池或者直接连接电源。想要改动得直接将电源接到主控板的稳压模块前端,比较不好动手。 当然,我目前手上有S1,如果需要相关的协助我可以帮助你

unbug commented 4 years ago

@JassyL 我对嵌入式开发不熟,但是应用层比较熟。不见得 DJI 会花精力去打造这个生态,特别是他们没有创新压力和营销压力的话。 但是如果我们可以烧一个固件,就能做到二次开发,我们可以维护一个非官方 Python SDK, 用来做机器学习,AR相关的开发,可玩性会更高。现在S1 如果不是多人对战可玩性太低了,几乎拼完大部分时间都是吃灰,离现实 FPS 还相差甚远,但是如果借助CV+AR就能实现单人打僵尸,单人塔防,看门狗巡航等,iOS, android 平台的SDK 都能很容易实现 AR, 甚至可以做个 Robomaster 的游戏市场让更多开发者一起加入发布有趣的小游戏,潜力是很大的。 我邀请你加入 OAR 了, 来一起折腾

GlideLeo commented 4 years ago

@unbug 重新烧写固件难度太大,固件的配置需要根据硬件来定,而且也没有原理图放出来。我们能做的是想办法获取运动系统的控制接口,包括各个方向的移动、速度、位移以及云台的指向等等,

unbug commented 4 years ago

官方要是放出固件来改就好了,可能性不大

zhangjiany2929 commented 4 years ago

支持一下楼上的想法。买来之后玩了两天就发现虽然是很好玩,但是可扩展性太差,要么官方升级一下python成为完整版Python,可以引入外部模块。或者就是开放硬件接口或者通过wifi开放接口供外部调用,如果有了这个功能,基本玩法就取决于想象力了。。强烈要求官方尽快提供

unbug commented 4 years ago

@zhangjiany2929 有人认识大疆的人吗?上次微博at官方没有任何回复

nobodxbodon commented 4 years ago

前两天在大疆论坛上问python问题(还没入手), 版主说"Python 编程相关咨询可联系我们 SDK 团队(dev@dji.com)". 回复还挺及时的. 提bug也会回应. 也问了第三方库支持问题. 下面是回复:

不知今后是否打算支持import第三方库? ==> 很抱歉,暂无法给您准确答复后续是否会支持Python第三方库,如果您有相关需求,建议您点击右侧的超链接填写相关需求信息, https://formcrafts.com/a/dji-developer-feedback-cn
为了更好地满足您的需求,试着在填写包括以下信息:

  1. 所需的功能和需求
  2. 公司/机构简介
  3. 使用此特性需求的项目描述
  4. 个人背景或简介
unbug commented 4 years ago

@nobodxbodon 原来是先服务企业用户,这个就比较慢了

nobodxbodon commented 4 years ago

感觉机构会以教育目的为主, 而Python API的英文命名会是很大门槛. 也许汉化了Scratch的目的是为了入门级教育用户, 而Python的主要目标群体是为高阶玩家吧. 如果这样的话第三方库是最好早早支持, 有兴趣的话也许移植一个Python库进去做点炫酷的效果会促进官方支持import?

初步打算把Python的官方API也中文化, 看看会不会对降低门槛有益. 毕竟相比Scratch, Python版可塑性强很多, 可测试性(单元测试)也好很多.

unbug commented 4 years ago

过早去 汉化没太多意义,S1本身它面向中国市场就是主要市场,大疆回去做好这个事情。 先自己折腾玩自己想玩的,每个人精力有限,放在自己想做的方面,到了后面自然看到方向。

nobodxbodon commented 4 years ago

@unbug 嗯. 主要是希望社区推动可以让官方早日意识到API可读性的问题吧, 像chassis_ctrl.get_position_based_power_on(rm_define.chassis_rotate)实在是不大好读. 今天到手之后, 先用中文标识符写点例子, 再看哪些用到的API值得中文封装. 对了, 现在有没有针对机甲的Python例程的repo? 没的话, 打算建一个. 方便分享交流.

nobodxbodon commented 4 years ago

刚建了一个机甲Python例程库, 欢迎提交.

unbug commented 4 years ago

@nobodxbodon 为什么代码和文件名是中文?把视野放长点,最终都会是英文,你的目的是中文有助于理解,那就写规范的注释,并总结可读性高,有干货的的文档,代码汉化是走倒退的路子。

用正确的方法去做自己有热情的事,这样热情就不会冷掉了。

nobodxbodon commented 4 years ago

@unbug 请参考Python3选择支持非ASCII码标识符的缘由, 个人感觉优势一目了然(相较英文源码). 当然不排斥他人向该repo提英文代码.

wallacer89 commented 4 years ago

Can someone tell me in English if this is possible now or not?

nobodxbodon commented 4 years ago

@wallacer89 here are some demos showing how to control LED using Python API, IIH. I'm trying to go through all the Python APIs while learning. The code is mostly in Chinese but at least you can see the effects through the videos in each link.

unbug commented 4 years ago

DJI has updated the Python API in the Programming Guide. The programming lab offers both block and python examples.

Offical Programming Guide, 简体中文

image

cc: @wallacer89 @caiweining