Build robots FASTER with Viam!

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hello welcome to Dan makes things my name's Dan and I'm building a companion robot I've been working on the robot for a few years now and recently decided it was time to look at improving the software so that I wouldn't need to create everything myself from online examples and to allow me to take advantage of the latest tools and Frameworks VM is a software platform that's been designed to enable faster development of robots and smart machines by providing easy configuration and prototyping simple sharing ing a functionality and a community to support any issues this video is sponsored by VM but I want to be clear that I approach them to propose a partnership because I believe that their software is a solid approach to leveling up my project and hopefully other projects in the Future Let's Take a [Music] Look VM works by installing the vm's server on your device with a few simple commands once you're connected you can configure the components you're using such as Motors and cameras then control them directly from the UI write code to teach them how to interact or use one of their already existing examples as you're configuring your robot a web enabled logger will output the status and any debug output which can be helpful if you have issues before you get started on your own device you can rent a Rover for free this is a limited time use of one of the VM Rovers that are configured in the VM offices by renting a Rover you can try out the features and configuration without needing to access your own robot you can even program the Robos remotely in this example you can see that I have direct access to the motor controls a camera and even an overhead camera to show where it is in relation to the rest of the space I can enable keyboard navigation scroll down so I can see the camera and use my keyboard to move the robot this is particularly impressive because this FM Rover is in New York and I'm base in England there's very little lag and it's easy enough to control you you can also see some code samples ready to run so that you can use them as a starting point to program this Rover yourself when your time runs out you can either extend your access or cancel and use it again another time getting set up to use VM is easy just create an account at app.vn and follow the steps first you want to create your new machine you should then see the option to view setup instructions you can go in configure your architecture and Os and then begin the install process if you're using a device such as a Raspberry Pi take a look at the additional installation guide which takes you through the steps in order to be able to install the OST or SD card install any dependencies and get set up fully to use Vim there's even a video to talk you through the whole process once you're set up you can go to the configure Tab and begin adding components services and other modules that you might find useful in your project you can see here in my example I have a few modules that I've already configured you can configure them easily via the UI or if you have an existing example to use you can modify the Json configuration directly this makes it very easy to share configuration between different machines and with the wider Community VM has a number of existing modular resources that you can leverage to build your robot this makes the whole process much easier than building from scratch as you just need to add the module set the configuration and VM will do the rest if you can't find what you're looking for there's also a modular registry that allows community members to publish their own modules for others to use I have a few available there myself just jump into docs. vm.com go to platform registry scroll down to modular resources and search for the type of module you're interested in each module will link to a repository with installation instructions and any other prerequisites you might need the modules from the registry can be configured as easily as the VM owned modules but bear in mind that the quality of these can vary depending on the state of completion and the compatibility with your Hardware as an example let's take a look at this offline large language model module that VM has published when I go into the repo I can see the installation instructions down at the bottom as long as you're running python 3.8 plus you should find that you can use this module yourself and there are very few configuration steps involved in fact you can copy the attributes that you need in in order to configure it to set this up on my existing robot I'm going to go to add then service and then search for llm and you can see it's easily visible in the search I'm going to add the module I'm going to give it my own name I like to keep the name in convention so that I understand what each module is and does now I can take the attributes directly from the instructions copy them in you'll notice that if there is a problem with the formatting you actually get an error explaining exactly what the issue is and once I've added those in I can click save generally when you make a change to the configuration the VM server will incorporate those changes in this case we can see the installation process starts automatically and it's waiting for the module to complete startup and registration the logs can take a little bit of getting used to so don't worry too much about that for now if you do find there are any issues with installation my tip would be to open up this menu click restart and confirm and then you'll see the servers restart in the background once the robot is showing is live again and you have package sync complete that generally means that everything's installed and working correctly I can also see some debug output from my custom modules but how do we interact with this new module well if you jump into the connect tab you can see some code samples available in different languages and it even includes some of the modules you've installed as examples I can also go into the usage section of the read me and see some options here you'll notice that there are some placeholder variables in this that's because every robot has its own unique API key key ID and address don't share these with anyone because that means they will be able to connect to your device if you toggle this the code will substitute those placeholders with the actual variables and you can then just copy the code directly I'm going to take the example from the python here and include this in a test script my script basically takes the example code including the connect method with the API Keys populated it then Imports the chat service API this isn't installed by default as part of the VM server if you ever need to know how to install additional module the API assistant can help then I've taken the example code which is basically three lines I've changed the name to match the name that I've entered within the configuration this will then retrieve access to that service then I can call a method on the service with a text variable that I'm passing into Main and then it'll print a response simple as that now if I run the script and include a question at the end we should get a response from the llm so let's talk about the advantages of using VM in my project specifically the modu of biped uses python for everything except the Arduino script most of this has been pulled together and modified from example scripts on the internet although I've done my best to keep everything in order there are deviating standards and messy scripts littered throughout the entire code base this makes the project difficult to maintain and difficult for others to learn in addition the configuration of the robot involves installing all the dependencies for all the modules at once which can often lead to errors and given that the IDE is to make the project modular can mean people are installing dependencies for modules they'll never use in contrast vm's configuration process means that each module has its own dependency installation step so if someone isn't using the module they won't have to install the dependencies and if the dependencies for a module change the latest version can be published and those dependencies will be managed automatically in order to configure the module that currently have separate Json files for each component or module again this makes modification and maintenance difficult although easier than it used to be vum has a single Json that can be imported to set everyone up with the same configuration which can then be modified via the UI as needed this approach means that the setup of the robot goes from a long list of manual steps to a few easy UI BAS based steps I can also start to Leverage The modular registry and the growing list of modules that are available there rather than building everything from scratch the Discord support means that if I have any issues with the module I'm configuring someone is there to help loging is also much more simple as it's managed by the server logs are available for all modules running and any errors are easy to track down there are also improvements on the VM road map here to make it easier to use in Future Okay this all sounds good but what about cost generally software like this comes with a monthly subscription or one-time fee in vm's case the on-machine software is totally free and open source for cloud-based consumption there is a pay for what you use model in place so for example if I want to train a machine learning model based on 10,000 images I could do that with existing tools offline for free but if I want the ease and convenience of doing that with vm's online ml training tools I pay for the storage of the images and the resources used to train the model I want to be clear using the model once it's trained is purely on machine and therefore free it's the cloud resources that would be chargeable VM also gives you $5 a month which is generally enough for basic usage in the example above and the pricing tiers are reasonable if you did want to go beyond that if if you're looking for more information on this take a look at this pricing page or reach out to VM directly so what are the next steps for me to take advantage of all the benefits of VM I'm planning on migrating my existing python modules into VM modules and making them available on the registry I'll also take some time to review existing VM modules and see what I can integrate before I reinvent the wheel so to speak one challenge I've had is that my modules rely heavily on the publisher subscriber design pattern using the p sub module to communicate with each other I'm working with the VM team on an approach to manage this so I'll publish another video with the details soon if you're interested in trying out VM visit app.vn and create a robot or render one to test theirs out I'd love to hear more about how you use VM in your projects so feel free to join the community and share your progress links in the description thanks for watching
Info
Channel: Dan Makes Things
Views: 3,039
Rating: undefined out of 5
Keywords:
Id: WM4f_WrR9QY
Channel Id: undefined
Length: 12min 57sec (777 seconds)
Published: Sat Apr 27 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.