July 5, 2023

June '23 Product Roundup

Written by
Natalia Jacobwitz
Product Manager

Hey, Viam community! How did you spend June? ☀️ We’d love to hear about your summer robotics adventures—share with us on Discord!

As for our team, we spent June working on some exciting new features and updates that give you more options for building robots with Viam:

  • See your sensor data within Viam: Check that your sensors are working as expected more easily.
  • Session management in the Python SDK: Enhanced safety with auto-cancel on lost connections.
  • Connect an ODrive motor controller: Integrate it as a Viam modular resource in Python.
  • Implement custom robotic arms: Integrate your own arm prototypes as Viam modules.
  • Crop transforms for camera views: Focus on a specific area of your camera feed.

We've also improved control of gantries and made using object detection models more efficient. Learn more about each update below!

New features

1. See your sensor data within Viam

First up, you can now view your sensor data in the Viam app—head to the Sensors tab on the Data page to take a look.

Sensor data from a Try Viam rover showing ticks for an encoder component and the position of a motor component

This feature was motivated by hearing our users say they want to ensure their sensors are creating data and that the data is being captured correctly in Viam. If sensor data is crucial to how plan and control your robot's operation, being able to quickly see and work with that sensor data in Viam helps you save time.

This is just the start of how we’re making your robots' data more visible in Viam—stay tuned in the coming months for more updates!

2. Session management in our Python SDK

The Python SDK now includes sessions—a safety feature that automatically cancels operations made by the Python client if it loses connection to your robot

Session management helps you ensure safer operation of your robot when dealing with actuating controls. Sessions are enabled by default, but you can disable them by setting RobotClient.Options.disable_sessions = True

Learn more about session management in our Python SDK.

3. Connect an ODrive motor controller as a Viam module

Are you a fan of ODrive motor controllers and their precision with brushless DC motors? We’ve got good news—now you can create a Viam modular resource in Python to integrate and control an ODrive motor controller. We’re excited to see what you build with more options for setting up and controlling your robots’ movement!

See the repo on GitHub to learn how to connect and use an ODrive motor controller with Viam, including sample configs like the one below.

4. Implement custom robotic arms as Viam modules

Prototyping your own robotic arm and want a way to move it without having to implement your own motion planning?  It’s now possible to implement custom models of an arm component as a Viam modular resource!

All you need to do is implement three endpoints of the Arm APIgetJointPositions, movetoJointPositions, and GetKinematics

From there, you can use the motion planning service to specify which poses you want your arm to go to, and Viam will handle the rest. Then you can show off its tricks in our Discord community 🦾

5. Apply a crop transform to camera views

Now you can apply a crop transform to the views of your connected cameras in the Viam app. 

If you want to focus on a specific area of your camera feed (for example, crop a video stream of a busy street to just the sidewalk), this handy transform will do the trick. You can also export screenshots for further analysis. 

See it in action in this quick video: 


1. Gantry component: pass speed values & set a home position 

From 3D printers to manufacturing warehouses, robotic gantries play a pivotal role in applying automation in various industries. 

To better control gantries with Viam, you can now pass speed values into calls of the MovetoPosition method on Gantry components. This lets you set the speed at which each axis travels to a desired position, giving you more precise control over the gantry’s movement.

You can now also set a home position for Gantry components, so it’s easier to reset their position or make sure they always start moving from a specific point in space.

Learn more here about working with Gantry components in Viam.

2. Faster inference time & reduced size for Viam-trained object detection models

We’re pleased to share some speed and model size improvements for training object detection models in Viam! (The following points are based on retraining on the same dataset.)

  • Faster model inference: 76% decrease in model run time for camera streams
  • Faster model training: 64% decrease in time to train object detection models
  • Smaller model sizes: 46% reduction in compressed model size

Through these ongoing improvements, our goal is to make applying Viam’s machine learning service on your robots an intuitive and flexible experience.

Have you trained an object detection model in Viam? Let us know on Discord about how it went and what you used the model for! 

You can also check out our May product roundup to learn more about that feature and other updates we’ve made in the last few months.

And as always, our Discord community is open for anyone to reach out to our team, ask robotics questions, or share ideas with other robotics enthusiasts.

See you next month with another roundup!


Get started with Viam today!