A friend of mine from another forum showed me something he'd developed called JARVIS to control his 3D printer and it was so cool that I begged and groveled until he finally posted it on github
Now, it took me quite some time to figure out the AWS and Lambda stuff from Amazon, and then to convert it all from his hardware to the printer and attachments that I'm using, but, in the end, I have a really cool talking 3D printer 🙂
(Sorry, I don't see the button for a video link)
Pretty cool project. I didn't see this thread until just now. I'm hoping to get my robots voice interactive eventually. But it's going to be a while.
DroneBot Workshop Robotics Engineer
James
Pretty cool project. I didn't see this thread until just now. I'm hoping to get my robots voice interactive eventually. But it's going to be a while.
I thought it was very cool too. That's why I ripped it off and adapted it ?
However, while it does allow me almost full and complete access and control of my printer and its functionality anywhere that my phone has Alexa and connectivity, it doesn't address the fire hazard involved in leaving a 3D printer running while I'm out of the house
That being said, it does leave the question of "voice activation of a robot" project
I wouldn't want to use this on my robot because it relies on an internet connection, and ideally, we would want a robot to be, at least slightly, autonomous. This is why I originally started experimenting with the SNIPS project, and then the ROS project. SNIPS is easier to implement, but I'm having problems with it understanding voice commands, plus, it's only simple control, there's no "thought process". It's like a voice activated remote control.
As for ROS, I've still not gotten as far as banging the rocks together to make any judgement on it
I wouldn't want to use this on my robot because it relies on an internet connection
I too want to keep my robot free of any Internet connection. I do use WiFi to connect my notebook computer to the robot. But that WiFi connection doesn't require or use the Internet. In fact, I'm using UDP instead of TCP because it's a lot easier to work with and all I need. I don't want any apps on my robot that are dependent on the Internet.
I too would like for my robot to be able to speak and recognize speech. For that I'm planning on using the Microsoft Speech Platform. This allows me to develop my own speech and voice recognition system from scratch. That might seem like a lot of work, and it is. But I want my robot to learn, not unlike a human baby. So it's going to start out only being able to recognize and speak very few words. Its vocabulary will grow over time as it learns the meanings of new words.
Ultimately I'm hoping to have the robot be able to learn new words on its own using A.I. techniques and neural networks. It would then create its own dictionary and meaning of these words as well, again, just as a human child does. So I expect my robot to be very uneducated in the early going. ? But that's ok because that's exactly how I want it to evolve.
Of course being 70 years old myself and suffering from rapidly declining health it's hard to remain optimistic that I'll remain productive long enough to see this robot evolve to any serious degree of maturity. None the less I keep plugging away at the dream to see where it might go.
DroneBot Workshop Robotics Engineer
James
Okay, you've reminded me of something I did many years ago. Back when IRC was popular, I had a channel, and on that channel sat an eggdrop bot which I used to control the channel. See, in IRC, if everybody leaves the channel, it goes away, and the first person to join the channel actually creates it. So I had this bot which was on a server not at my house, so that the channel would never be empty. The job of the bot was to basically be a placeholder
Now, these bots could run programs in TCL/TK, and there were thousands to choose from. Some would just keep the channel open and give ops (channel operator rights) to specific people, while others could play games or random thoughts, or, just about anything else. I had one that I had programmed to be a learning bot. It didn't learn the way you and I learn, it learned by word association, and then it would randomly join the conversation when it recognized something that somebody said
For instance, if I were to say "Bill is a great guy" it would be triggered by the word "is", and associate "Bill" with "great guy", and stick those things into it's memory so that the next time it heard the word "Bill", it might say "I heard Bill was a great guy". And it might say that no matter what the conversation was about, as long as it heard "Bill".
This description is extremely rudimentary, but, I think you can get the idea. After awhile the brain database would get decently populated enough that it could add relevant things to the conversation, like if we were talking about programming or something, it could remember those things and spit them out if you asked it a question
And here's the idea you gave me... The way I'm understanding how ROS works is by being a publisher (probably the wrong word) and sending basically a text msg to a "subscriber", which then acts on the msg. I'm wondering if this type of feature is in any way something that might be useful to you. If you're interested, let me know because I just looked in my archives, and I (surprisingly) still have that brain.tcl program. Then I checked the TCL/TK eggdrop repository, and there seems to be an MQTT program written for eggdrops
Anyway, it's a thought
For instance, if I were to say "Bill is a great guy" it would be triggered by the word "is", and associate "Bill" with "great guy", and stick those things into it's memory so that the next time it heard the word "Bill", it might say "I heard Bill was a great guy". And it might say that no matter what the conversation was about, as long as it heard "Bill".
This description is extremely rudimentary, but, I think you can get the idea.
Yes, I am familiar with that type of programming. A gazillion years ago I took a course on A.I. in college. Back then A.I. was really more about "Expert Systems Programming". I was working at a TV repair shop at the time and wrote an "Expert System" to troubleshoot a TV. I wrote it in BASIC on a TRS-80 Model 1 computer. None the less it worked so well the other TV repair technicians used it and were actually quite impressed at how well it worked. In fact, some of them found my program to be extremely useful in helping them to discover the problem with a TV.
In any case, yes, I'm familiar with using special keywords to create various associations between words and/or concepts. I would love to find the time to sit down and write up some rudimentary programs.
And here's the idea you gave me... The way I'm understanding how ROS works is by being a publisher (probably the wrong word) and sending basically a text msg to a "subscriber", which then acts on the msg. I'm wondering if this type of feature is in any way something that might be useful to you. If you're interested, let me know because I just looked in my archives, and I (surprisingly) still have that brain.tcl program. Then I checked the TCL/TK eggdrop repository, and there seems to be an MQTT program written for eggdrops
Anyway, it's a thought
Yeah, I'd like to take a look at it. Not sure if I'll be able to make any sense of it though. ?
I'm pretty good at working with things I know about, but often when introduced to things I'm not familiar with my brain just shrivels up and begs me not to think about such things. ?
DroneBot Workshop Robotics Engineer
James
I couldn't figure out how to post the script to the forum so I put it up on my github page
The link doesn't appear to be working.
DroneBot Workshop Robotics Engineer
James
I appear to have created it as "private"
Try it now
Looking at these old scripts again, I remember now that brain didn't work very well, so I added one that does work called egg-fu.
Try that one instead