# June '23 product roundup

Natalia Jacobowitz

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](https://discord.gg/viam)!

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**](https://app.viam.com/data/view?view=sensors) **in the Viam app**—head to the Sensors tab on the Data page to take a look.

_Sensor data from a_ [_Try Viam_](https://docs.viam.com/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.](https://python.viam.dev/)

### **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**](https://github.com/viamrobotics/odrive) 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](https://docs.viam.com/services/motion/) as a Viam [modular resource](https://docs.viam.com/extend/modular-resources/)!

All you need to do is implement three endpoints of the [Arm API](https://docs.viam.com/components/arm/#api):  _getJointPositions_, _movetoJointPositions_, and _GetKinematics_

From there, you can use the [motion planning service](https://docs.viam.com/services/motion/) 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](https://discord.gg/viam) community 🦾

### **5\. Apply a crop transform to camera views**

Now you can **apply a** [**crop transform**](https://docs.viam.com/components/camera/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:

[Cropping a robot's camera view in Viam](https://www.youtube.com/watch?v=fGMzT8vraWY)

## Improvements

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

From 3D printers to manufacturing warehouses, [robotic gantries](https://howtorobot.com/expert-insight/gantry-robot) 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](https://docs.viam.com/components/gantry/) 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**](/content/post/may-23-product-roundup/index.html) 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](https://docs.viam.com/manage/ml/) on your robots an intuitive and flexible experience.

**Have you trained an object detection model in Viam?** Let us know on [Discord](https://discord.gg/viam) about how it went and what you used the model for!

You can also check out [our May product roundup](/content/post/may-23-product-roundup/index.html) to learn more about that feature and other updates we’ve made in the last few months.

And as always, our [Discord community](https://discord.gg/viam) 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!
