The arrival of spring isn’t the only thing our team was excited about in March! From releasing end-to-end machine learning management on Viam to collaborating with Simone Giertz on creating Chargla (an autonomous Tesla charging robot), it’s been a really fun month.
If ML + robots caught your attention, we won’t delay—let’s get right into what’s new this past month on Viam.
New features
1. End-to-end machine learning management
You can now train and deploy image classification models using your robots’ image data—right within Viam! With our data management service, you can manage the whole process of capturing and using data from your robots, including:
- Capturing and syncing data from your robots to the cloud
- Accessing and exporting your data
- Using the image data you’ve captured to train image classification models
- Deploying trained classification models to your robots
- Uploading and using existing ML models with your robots
Take a look at the whole flow in this video!
Learn more about training ML models using Viam in our documentation. Our goal is to make using machine learning in robotics more accessible for folks, and we hope this new feature makes it easier to get started!
Have any questions about using ML with your robots on Viam? Reach out to us using our on-site chat or on Discord.
2. Motion planning with constraints
We have added a new ‘constraint’ parameter to the Motion API. This allows you to apply constraints for how a robot can move:
- ‘linear’ means that a robot or part needs to move in a straight line
- ‘orientation’ means that a robot should maintain a particular orientation
These settings are useful for programming a robot to write on a whiteboard or hold a cup of water without spilling. The constraint system also allows you to specify that obstacles should only apply to selective frames of a robot.
For example, the end of our menorah robot was able to touch the candles of the menorah to light them, but the candle was considered to be an “obstacle” to the rest of the robot to prevent accidental robot fires.
This new motion planning feature will be on display in Viam’s booth at ICRA 2023—stop by to see it in action!
3. Fragments show up in your components and services
When you add a fragment to your robot configuration, you’ll now automatically see the added configurations in the Components or Services subtabs in the builder view mode. This makes it easier to keep track of exactly what you’ve added to your robot as fragments and how it’s configured.
(Tip: A fragment in Viam is a reusable configuration block representing a common hardware pattern. Using a fragment makes it easy to manage a fleet of multiple robots configured in the same way.)
Improvements
1. Sticky GPS keys
GPS keys you provide are now saved to your local storage so that they can be used again when you reload the page, saving you time and hassle when working with GPS data.
2. More reliable camera streams
If you ever experienced some freezing or flashing with your robots’ camera streams before, that’s now a thing of the past. Our camera stream improvements will make for a more reliable and less glitchy experience.
Camera streams now also automatically restart if you momentarily lose internet connection. Clear sights ahead!
3. Updates to logs and history
We’re always a fan of useful logs and history information. We've made some UI updates to Logs and History so you can now:
- Load a previous configuration if you want to revert to changes you made in the past
- Search your logs by filtering for specific keywords or types of logs like info or error messages
- Change your timestamp format to ISO or Local depending on your preference
We hope these small updates make it easier for you to debug and solve any issues you run into while building your robots!
Bug fixes
Here are the bugs we crushed this month:
- Previously, when remotely controlling robots, keyboard inputs sometimes got stuck repeating endlessly—not anymore!
- We tidied up editing robot parts names and seeing code samples for parts.
- For servo components, the remote control slider would sometimes show the angle set to 180°—the slider now accurately reflects the default value of a 0° angle.
And that’s a wrap on March! If you have any questions, feedback, or ideas for features you’d like to see next, definitely let us know on Discord. Our community is actively growing and we’d love to hear from you.
We look forward to a season full of robots in bloom with you!