Robot Not a Dev? Pre-order Now
Not a Dev?

Meta Discussion: What is the simplest, good way to set up initial skills sharing in the Misty community

meta
skills-store

#1

We’ve been discussing how to enable sharing, finding, and downloading Misty skills in a world prior to an official “Skills Store” paradigm. We’ve discussed creating a simple directory of GitHub repos, some sort of Misty package manager, and many more ideas, but I wanted to broaden this conversion to include everyone in the community. What do people think? How should we initially enable skills sharing and discovery?


#2

GitHub works fine for me. Although it can seem a bit intimidating with a minefield of folders and libs to navigate if it’s not managed and structured well. Unless you have someone maintaining and “indexing” the contributions I sense it could get messy when others start to contribute.
A great place for us all to go to first though and download a master file of “starter” or “useful” code for us to copy and run when Misty II first arrives.
Unfortunately I don’t have any viable alternatives at this stage that I think answer all my concerns. Other collaboration platforms I use are Slack (which I know your VIP community make use of right now) and Trello.


#3

@MTO013 I don’t think I would structure it so that all of the skills live in the same repository. At least not unless the developer wants to manage it that way. The way that I was thinking about it when talking with @Ben last week was that we might stand up a simple site that would let people post what repository their skill lives in and a relative path to a metadata file in that repository that the service could read to understand what the skill effects (i.e. vision, audio, etc.) I was thinking of it was a very very lightweight version of NPM website. But those are just my thoughts, if there are other code distribution models that people like I’m all ears!

Definitely interested in what the community has to say on the subject so if anyone is reading this post and not sure what to say, anything is better than nothing! :smile:


#4

I think Github would work as well since it’s a familiar platform. If there was a central site as @justin mentioned that linked out to individual skill repositories it would keep the code compartmentalized but still readily accessible.


#5

in terms of prior work, have you studied the packaging infrastructure used in the ROS community?

they have a simple review process to onboard new packages into their index, which in turns points to the upstream repo where the package source code is maintained. the process is documented at rosdistro/Tutorials/Indexing Your ROS Repository for Documentation Generation - ROS Wiki


#6

furthermore, I recommend studying the ROS Community Build Farm, which automates building of packages maintained in the ROS package ecosystem (i.e., contributed from “the community”).
https://wiki.ros.org/build.ros.org

the ROS ecosystem provides a good example because they solved a harder problem in terms of diversity of platforms that the various software packages target. however, as far as I know, they did not develop a notion of apps that can be sold and purchased, which might be a business model that you want to advocate eventually.


#7

Has there been any more consideration of this issue? If someone modifies one of the sample skills and wants to share it what is the suggested way to do that? Will each of us need to establish a github repository for this?


#9

Hi, here goes nothing. I don’t know what is a github, but I have got a view at those stats: 100 views, 6 replies, 5 likes, 2 links. Not much of a score for a Broadwide sharing skills topic. People who replies seems to know what they are in too. As for the others, maybe they are on the own or most of us don’t even know what is that concept of sharing skills… I don’t think nobody cares, I shure don’t. When I have talked to a cie associate, I ask if the Misty II could wonder around the appartment, fool around, say something like Hello by itself, and go back to sleep. D assured me yes. I bought the Misty saying to myself that I’ll go from there and learn my way into coding. This is what I am. I have bought something with great interest in learning in a work and progress. I don’t expect anybody to make answer for me. In my case the learning and sharing skills needs to be user friendly or maybe I’m to old for this concept. Recently I have played with that logic puzzle of the Apple Corp (Swift App), which I find very user friendly. I’m playing my way up to «notation code». I don’t do that all day, when I’m stuck, I stop a few days. Some say that it is for kids, but I have found it very friendly, and I have fun playing and learning code. So it is my guess that, what ever who want to choose a skill sharing library or anything else related to programing, building… it will have to be user friendly and fun. I don’t think that one should start with a choosing a application, without understanding most of the people who boughts Mistys.
Thank you for reading this.


#10

I agree totally with your desire to have Misty randomly wander around the house. Misty II, when it ships, should have one or two such skills that are well-honed and work without fail. Those skills will increase the chances that the press says that Misty is a success. As a test, I downloaded the skills from github and tried the Wander skill out. Unfortunately, the robot drove straight into our couch and stayed there.

I am not a JavaScript programmer. I have spent time trying to improve the Wander skill. With my modifications, at least in my home test environment, Misty is able to wander about for longer periods of time without getting stuck. Misty also plays a simple humming tune while wandering about and then makes brief exclamations when it encounters an obstacle. I would like to share my version with the community and see what improvements others can make. But I don’t see a simple way to do that. Github might be an option but it doesn’t look to me like an easy thing to do. Also, I am hesitant to post any Misty material in a public forum, as I am pretty sure the contract I signed prohibits that.

One feature I would really like to add to the Wander skill is the ability for a person to verbally tell Misty to stop. Occasionally Misty goes out of bounds. Currently I need to dash back to my PC and click on the Stop button on the Wander skill web page.

Another feature the Wander skill needs is the ability to recognize fenced-off areas that it should avoid. This capability should be something simple, but I haven’t figured anything out yet.

Also, as you mentioned, it would be entertaining for Misty to say “Hello”, or some other phrase, at random times whenever it notices a person nearby. Maybe this will be possible with face recognition.

Finally, you are right about the difficulty of programming Misty. After I downloaded and unzipped the Misty material from github, it took me awhile to realize that I could just double-click on the Wander.html file, enter the robot’s IP address in the box, and click the Wander button to get Misty to start executing the Wander skill. Once I realized this, and figured out how to open up the JavaScript console in the browser, it was not hard to start making minor changes to the HTML file and immediately see the results.

I sincerely hope that Misty is a success. Other recent robot products have failed because they spread themselves too thin or set customer expectations too high. We really want Misty to break the pattern.


#11

Thank you for the feedback, guys, and your patience. Part of what you may be encountering with the current Wander skill is that it is using our current “API Skill” architecture, where Misty’s skills run remotely, not locally onboard the robot. With Wander in particular, the lag time can definitely cause issues. The good news here is that we are very close to being able to release our onboard SDK for everyone to try. @Chris is also working on an updated version of Wander that is SDK-based and will run locally on Misty. Internally, we’ve already seen that the SDK-based Wander is much more pleasant to use.

That said, I think you are also running into issues of the current batch of GitHub skills being very lightly documented. Ideally, we should have ReadMe’s for all our skills that talk about how to activate them, if you’ve not done so before. I’ll attempt to get that addressed today, if possible.

Finally, there is also the not-inconsiderable matter of the Misty I prototype robots and our whole ecosystem being very early, “developer preview” type products. We greatly appreciate all of your patience with this. Until we get to the launch of our production product – Misty II – things may continue to be rough. Please know that our goal for all our bleeding-edge Misty I developers is to be as supportive and responsive as possible to any issues you find.

Thank you again. And please do not stop letting us know where you are running into issues. It’s our hope that you won’t, but if you do, we want to make it better.


#12

Thanks @slivingston, We’ve just started digging into this. We’ll keep you updated!


#13

@Ron - I did want to let you know that I’ve just now improved our GitHub skill ReadMe a bit, so it might be easier to use. GitHub does have a little learning curve, but it’s not bad once you are used to it. Feel free to reach out if you have questions or feedback, even if it’s just: “That ReadMe is still not good enough!” :wink:

As for the repo stats, those numbers are indeed small :slight_smile: but we think they’ll grow, now that more than a tiny handful of folks have Misty I robots. And you and Miker are absolutely right that it remains to be seen whether our developers will feel comfortable sharing their skills this way. While GitHub may not be our ultimate skill-sharing solution, we’ve thought it worth trying. And again, your feedback on this, as everything, is very appreciated.


#14

@miker I think your comments are more about what/how to share your work today, which I’ll open a new thread on what we recommend and add you to it.

For Ben’s question which started this thread, I think what we’re interested in is what peoples preferences are around the workflow for collaborating and sharing. Our whole intention is making this process easy, but there will be a an incremental nature to how we release these features between now and when Misty II is shipped.

So how have you shared and collaborated on projects in the past? What has worked well? What would your ideal workflow look like if you had a skill that you wanted someone else to test?


#15

Thank you, the readme files seems adequat for Misty I. Will it be the same files with Misty II? Or, will it be something completly different. If it’s the same, why don’t you rename the forum files to Misty without the ‘‘I’’ ? Just for the record I have bought a Misty II F.P. Recently I was ask to pick up the color. But I don’t see nothing about Misty II except for the selling site.

Maybe I misunderstood the topic ‘‘sharing files’’ for ‘‘understanding files’’, or ‘‘playing files’’. Years ago, I have builted three turtlebots from a plan in the bonanza robot book. I have downloaded the basic programming files and the bots all worked find, but I did not understand the files, the codes, or even why I needed a H Bridge for the processor. Now, I want to understand files, maths, robotics and physics related as far has I can, not only pick them up in a library file and run them down hoping that they will work. I don’t want this bot to sat down and look nice like my sphero or woowhee bots.


#16

On the “general” channel of Slack @ 1207AM this morning “Station” posted an example face recognition sample that he had previously put in his github repository. His Slack posting contains a brief description of what his sample does. The repository contains the html file of his sample. Something similar to this would probably work for sharing. Maybe establishing a separate Slack channel just for sharing? People could append a description of the item they are sharing and upload a zip file that contains the code, associated media files and a README on how it is to be used. Is there some way to process a Slack channel content to distill an index of all of the submissions, a brief description and a date of submission? If Slack is inappropriate as a vehicle possibly a wiki?


#17

Slack does have the search bar that allows you to search for any messages/content in the channel, however, without each of those posts having a key-phrase in the messages such as “sample code”, it would be more of a guessing game on what keywords to search. I don’t know if it is possible to “filter” all the messages in the channel to give an index of the submissions. As of now, Slack could stand in as this sharing platform by attaching the files to the message, but in the long run, I don’t know if Slack will be the best service to use. In the meantime, we can discuss creating a new channel specifically for sharing example code and new skills as a temporary means.


#18

Hi @Ron! Misty II has more sensors and built-in capabilities than does Misty I, so the skills you write for Misty II will differ at least in that regard. That said, as you suggest, we may yet rename everything “Misty” (with no I or II), but probably not yet.

Currently we’re focusing on supporting our Misty I developers, so that’s why all the information is about Misty I. There will be a lot more development/programming info for Misty II available by the time she ships, though.


#19

I think GitHub would be great, but that said I’m a dev by trade.
It was interesting to watch my last couple of interns trying to pull down a package. I had opening individual files and using copy/paste.

I would think a more user friendly front end that links back to the github repo would be beneficial if we are trying to pull in a wider audience.
Maybe a direct download to the skill along with a link to the repo should they be interested in participating in that skills further development.

Back to the ‘front end’ one in which people can also vote, up vote and comment on the skill or so on.

People love voting, catching likes or thumbs up and so on.

Community actions here too…
Maybe an ‘award’ or some form of recognition for the creator of the skill with the most likes this month.

t