February 28, 2023

February '23 Product Roundup

Written by
Fahmina Ahmed
Product Manager

This past month has been nothing short of exciting. As a team, we’ve held the NY Hardware Meetup at our office, sponsored February’s NYC Robotics Meetup at Newlab, led a workshop and judged at MakeMIT, and released several tools to our platform.

Today, we're thrilled to highlight some of the sparkly new updates we've made to the platform based on recommendations from our community. So scroll through—and maybe even get inspired to use some of these features on your next build.

New features

1. Reusing rovers in Try Viam

If you’ve previously used Try Viam and thought, “I wish I could save my progress to return to later,” you’re in luck. Individuals can now reuse a robot config if they want to continue working on a project they started in a prior session. With this feature, you can:

  • Access past configurations including ones with any added components or services
  • Leverage computer vision and data management to train the Viam Rover to identify a shape or color within the “rover rink.”
  • …and more

On the Try tab, you can now access a rover you previously used
On the Try tab, you can now access a rover you previously used

2. SDK dynamic updates

You no longer have to import and give the name of all the components and services you add to your robot’s config—because the code samples provided by our app do it for you. The code sample for each SDK dynamically updates as resources are added to the config and provides an example of calling a simple "Get" method for each resource on your robot.

Check out the examples below to see how to get started coding with the Viam Python SDK—without having to read through a lot of documentation.

Example of the python sample generated for the Viam Rover fragment
Example of the Python sample generated for the Viam Rover fragment

Example output from running the example code used in the Try Viam experience
Example output from running the example code used in the Try Viam experience

3. TypeScript SDK

While the interface in our Control tab is perfect for testing your robot, we understand that you might want to track other elements within the UI. That’s why our Typescript SDK exists—to allow you to easily create a customizable web interface to control your robots.

Here are some examples of elements you can add to your interface with this SDK:

  • Accelerometer Readings: know how fast or slow your robot is moving
  • Motor controls: create specific controls unique to your robot and easily access them

As part of this update, the RDK server running on the robot can detect if a given Typescript SDK client session has lost communication by monitoring the robot’s heartbeat every 2 seconds. If communication is lost, the RDK server automatically stops taking commands from the client.

🚀 How to install the Typescript SDK

npm install --save @viamrobotics/sdk

Teleop example from our GitHub page
Teleop example from our GitHub

4. Frame system visualizer

Within Viam's interface, you can now set up a frame system on your robot using a 3D visualizer. This tool enables the RDK to transform poses between different component reference frames.

This is highly beneficial for motion planning, as it gives individual components a geometry so the RDK's built-in motion planner can avoid obstacles during path planning.

To use this new update, head to the "Frame System" tab on the config UI. See it in action below.

Configuring a frame system for a Viam Rover with a camera and a lidar
Configuring a frame system for a Viam Rover with a camera and a lidar

5. Viam for microcontrollers

Micro-RDK is a lightweight version of the RDK capable of running on an ESP32. To see examples of this in use or to set this up, head to our Micro-RDK GitHub repo.

Bug fixes

Check out the February 2023 release notes in our documentation to see more about these bugs we crushed this month:

  • Viam Server goes into restart loop instead of using cached config
  • Never have long-lived I2CHandle objects
  • Sensor does not show GPS readings
  • Add implicit dependencies to servo implementation
  • Switch cpp SDK build system to CMake

If you have any feedback you'd like to have implemented, join our active Discord server—our engineers and product managers are constantly scanning for recommendations on how we can level up Viam. 

And, if you want to look through our past monthly updates, head to our release notes or our blog (here are our January ’23 and December ’22 roundups).

Now, let's build some more robots. 🦾


Get started with Viam today!