diff --git a/assets/js/index.js b/assets/js/index.js index d7e7ea89af..b7e3459e25 100644 --- a/assets/js/index.js +++ b/assets/js/index.js @@ -74,13 +74,15 @@ if (toc) { // Cache element references and measurements tocItems = tocItems.map( function( item ) { var anchor = item.querySelector( 'a' ); - var target = document.getElementById( anchor.getAttribute( 'href' ).slice( 1 ) ); - - return { - listItem: item, - anchor: anchor, - target: target - }; + if(anchor) { + var target = document.getElementById( anchor.getAttribute( 'href' ).slice( 1 ) ); + + return { + listItem: item, + anchor: anchor, + target: target + }; + } } ); setActiveElements(); @@ -96,7 +98,7 @@ if (toc) { for (var i = 0; i < tocItems.length; i++) { let item = tocItems[i]; - if (item.target) { + if (item && item.target) { var targetBounds = item.target.getBoundingClientRect(); diff --git a/assets/scss/_styles_project.scss b/assets/scss/_styles_project.scss index 6a79349fe3..5e8fbaeafc 100644 --- a/assets/scss/_styles_project.scss +++ b/assets/scss/_styles_project.scss @@ -1539,3 +1539,39 @@ input[type=search]::-webkit-search-cancel-button { text-decoration: underline; text-decoration-style: dotted; } + +// Changelog labels + +.changelog-outer { + display: flex; +} + +.changelog div { + padding-right: 4px; +} + +.changelog div span { + text-transform: uppercase; + padding: 0.1rem 0.25rem; + border: 1px solid black; + font-size: 1rem; + font-weight: 500; + line-height: 1.3; + vertical-align: top; +} + +.changelog-added { + background-color: #00ef83; +} + +.changelog-improved { + background-color: #00e8e8; +} + +.changelog-changed { + background-color: #ffd400; +} + +.changelog-removed { + background-color: #ff0047; +} diff --git a/assets/scss/_variables_project.scss b/assets/scss/_variables_project.scss index 14746069a6..26bb974419 100644 --- a/assets/scss/_variables_project.scss +++ b/assets/scss/_variables_project.scss @@ -135,7 +135,7 @@ BEGIN CSS CHANGES FOR MARKETING } $google_font_name: "Public Sans" !default; -$google_font_family: "Public+Sans:300,300i,400,400i,700,700i" !default; +$google_font_family: "Public+Sans:300,300i,400,400i,500,600,700,700i" !default; $web-font-path: "https://fonts.googleapis.com/css?family=#{$google_font_family}&display=swap"; $font-awesome-font-name: "Font Awesome 6 Free" !default; diff --git a/docs/appendix/changelog.md b/docs/appendix/changelog.md index bfb1b8525f..a86251f88e 100644 --- a/docs/appendix/changelog.md +++ b/docs/appendix/changelog.md @@ -12,18 +12,18 @@ aliases: ## November 2023 -### Changed: Model training from datasets +{{% changelog color="changed" title="Model training from datasets" %}} To make it easier to iterate while training machine learning models from image data, you now train models from [datasets](/data/dataset/). -### Improved: Role-Based Access Control +{{% changelog color="improved" title="Role-based access control" %}} You can now manage users access to robots, locations, and organizations. For more information, see [Access Control](/fleet/rbac/) ## October 2023 -### Added: Test an ML model in browser +{{% changelog color="added" title="Test an ML model in browser" %}} After you upload and train a machine learning model, you can test its results in the **Data** tab. @@ -34,14 +34,14 @@ For more information, see [Test classification models with existing images in th To use this update, the classifier must have been trained or uploaded after September 19, 2023. The current version of this feature exclusively supports classification models. -### Added: PLC support +{{% changelog color="added" title="PLC support" %}} The Viam platform now supports the [Revolution Pi line of PLCs](https://revolutionpi.com/) from KUNBUS in the form of a [module](https://app.viam.com/module/viam-labs/viam-revolution-pi). This collaboration allows you to leverage the Raspberry Pi-based Revolution Pi, which runs on Linux and has a [specially designed I/O modules](https://www.raspberrypi.com/products/compute-module-4/?variant=raspberry-pi-cm4001000) for streamlined interaction with industrial controls, eliminating the need for additional components. Read the [Viam PLC Support](https://www.viam.com/post/viam-plc-support-democratizing-access-to-smart-ot-and-ics) blog post for a step-by-step guide on using a PLC with Viam. -### Improved: SLAM map creation +{{% changelog color="improved" title="SLAM map creation" %}} The [Cartographer-module](/mobility/slam/cartographer/) now runs in Viam's cloud for creating or updating maps. This enhancement allows you to: @@ -54,7 +54,7 @@ This enhancement allows you to: ## September 2023 -### Added: Modular registry +{{% changelog color="added" title="Modular registry" %}} The [Modular Registry](/registry/) enables you to use, create, and share custom modules, extending the capabilities of Viam beyond the components and services that are natively supported. @@ -64,16 +64,15 @@ You can: - Add modules to any machine's configuration with a few clicks - Select the desired module version for deployment, make changes at your convenience, and deploy the updates to a single machine or an entire fleet. -### Added: Mobile app +{{% changelog color="added" title="Mobile app" %}} You can use a [mobile application](/fleet/#the-viam-mobile-app), available for download now in the [Apple](https://apps.apple.com/us/app/viam-robotics/id6451424162) and [Google Play](https://play.google.com/store/apps/details?id=com.viam.viammobile&hl=en&gl=US) app stores, to connect to and control your Viam-powered machines directly from your mobile device. -### Added: Power sensor component +{{% changelog color="added" title="Power sensor component" %}} You now have the capability to use a [power sensor component](/components/power-sensor/) to monitor the voltage, current, and power consumption within your machine's system. -### Added: Filter component's data before the cloud - +{{% changelog color="added" title="Filter component’s data before the cloud" %}} Viam has written a module that allows you to filter data based on specific criteria before syncing it to [Viam's cloud](/data/cloud-sync/). It equips machines to: @@ -85,11 +84,11 @@ To learn more, see [this tutorial](/tutorials/configure/pet-photographer/) on cr ## August 2023 -### Added: Configure a customlinux board +{{% changelog color="added" title="Configure a custom Linux board" %}} You can now use boards like the [Mediatek Genio 500 Pumpkin](https://ologicinc.com/portfolio/mediateki500/) that run Linux operating systems with the [`customlinux` board model](/components/board/customlinux/). -### Added: Image inspection for ML training +{{% changelog color="added" title="Image inspection for ML training" %}} This update enables you to get a closer examination of your image and streamline your image annotation experience by making it easier to add bounding boxes and labels in the **Data** tab. @@ -100,7 +99,7 @@ With the latest improvements, you can now: - Move between full-screen images effortlessly with the <> arrow buttons or arrow keys - Return to the standard view by using the escape key or collapse button -### Added: Duplicate component button +{{% changelog color="added" title="Duplicate component button" %}} You now have the ability to duplicate any config component, service, module, remote, or process. @@ -112,37 +111,37 @@ To use this feature: ## July 2023 -### Added: Apple SSO Authentication +{{% changelog color="added" title="Apple SSO authentication" %}} Viam now supports sign-up/log-in through Apple Single Sign-On. Note that currently, accounts from different SSO providers are treated separately, with no account merging functionality. -### Improved: Arm component API +{{% changelog color="improved" title="Arm component API" %}} Arm models now support the [`GetKinematics` method](/components/arm/#getkinematics) in the arm API, allowing you to request and receive kinematic information. ## June 2023 -### Added: View sensor data within Viam +{{% changelog color="added" title="View sensor data within Viam" %}} You can now [view your sensor data](https://app.viam.com/data/view?view=sensors) directly in the Viam app to verify data creation and accuracy. If you depend on sensor data to plan and control robot operations, this feature increases access to data and supports a more efficient workflow. -### Added: Session management in the Python SDK +{{% changelog color="added" title="Session management in the Python SDK" %}} The Python SDK now includes sessions, a safety feature that automatically cancels operations if the client loses connection to your robot. [Session management](/build/program/apis/sessions/) helps you to ensure safer operation of your robot when dealing with actuating controls. Sessions are enabled by default, with the option to [disable sessions](/build/program/apis/sessions/#disable-default-session-management). -### Added: Connect an ODrive motor controller as a Viam module +{{% changelog color="added" title="Connect an ODrive motor controller as a Viam module" %}} You can integrate and control ODrive motor controllers with Viam using a modular resource. Visit the [GitHub repository](https://github.com/viamrobotics/odrive) to learn how to connect and use an ODrive motor controller with Viam, and view the sample configurations. -### Added: Implement custom robotic arms as Viam modules +{{% changelog color="added" title="Implement custom robotic arms as Viam modules" %}} When prototyping a robotic arm, you can now facilitate movement without creating your own motion planning. This update enables you to implement custom models of an arm component as a [modular resource](/registry/) by coding three endpoints of the [Arm API](/components/arm/#api): @@ -155,7 +154,7 @@ Then, use the [motion planning service](/mobility/motion/) to specify poses, and For more information, see this [tutorial on creating a custom arm](/registry/examples/custom-arm/). -### Added: Apply a crop transform to camera views +{{% changelog color="added" title="Apply a crop transform to camera views" %}} You can now apply a [crop transform](/components/camera/transform/) to the views of your connected cameras in the Viam app. @@ -163,7 +162,7 @@ This feature enables you to focus on a specific area of your camera feed. For example, crop a video stream of a busy street to just the sidewalk. -### Improved: Gantry component +{{% changelog color="improved" title="Gantry component" %}} To better control gantries with Viam, you can now: @@ -171,7 +170,7 @@ To better control gantries with Viam, you can now: This allows you to define the speed at which each axis moves to the desired position, providing enhanced precision and control over the gantry's movement. - Set a home position for Gantry components to facilitate position resetting or maintain consistent starting points. -### Improved: Optimized Viam-trained object detection models +{{% changelog color="improved" title="Optimized Viam-trained object detection models" %}} This update for object detection models [trained with the machine learning service](/ml/train-model/) brings significant improvements, including: @@ -181,11 +180,11 @@ This update for object detection models [trained with the machine learning servi ## May 2023 -### Added: TypeScript SDK beta release +{{% changelog color="added" title="TypeScript SDK beta release" %}} The beta release of the [TypeScript SDK](https://github.com/viamrobotics/viam-typescript-sdk/) allows you to create a web interface to work with your robot, as well as create custom components and services. -### Added: Train object detection ML models +{{% changelog color="added" title="Train object detection ML models" %}} You now have the capability to directly [train object detection models](/ml/train-model/) in addition to image classification models from within the Viam app. @@ -194,7 +193,7 @@ This update allows you to: - Add labels by drawing bounding boxes around specific objects in your images or a single image. - Create a curated subset of data for training by filtering images based on labels or tags. -### Added: Permissions for organizations in Viam +{{% changelog color="added" title="Permissions for organizations in Viam" %}} Now when you invite collaborators to join your organization, you can assign permissions to members by setting one of these roles: @@ -206,13 +205,13 @@ Now when you invite collaborators to join your organization, you can assign perm For more information about assigning permissions and collaborating with others on Viam, see [Fleet Management](/fleet/). -### Improved: Control RoboClaw motor controllers with the driver +{{% changelog color="improved" title="Control RoboClaw motor controllers with the driver" %}} When using a RoboClaw motor controller without encoders connected to your motors, you now have more direct control over the RoboClaw’s functionality within Viam or through the motor API. For example, in the Viam app, you can now set **Go For** values for these motors, utilizing a time-based estimation for the number of revolutions. -### Improved: Camera webcam names and setting framerates +{{% changelog color="improved" title="Camera webcam names and setting framerates" %}} The updates to the camera component have improved the process of connecting to and using cameras with your robots. @@ -221,7 +220,7 @@ The latest updates enable you to: - View readable webcam names in the **video path** of your camera component. - Specify your preferred framerate by selecting the desired value in the newly added **framerate field** on the **Config** tab. -### Improved: Additions to code samples in the Viam app +{{% changelog color="improved" title="Additions to code samples in the Viam app" %}} The updated code samples now includes: @@ -230,13 +229,13 @@ The updated code samples now includes: Access these samples in the **Code sample** tab on your robot's page to connect to your robot in various languages. -### Improved: Delete data in bulk in the Viam app +{{% changelog color="improved" title="Delete data in bulk in the Viam app" %}} You can manage the data synced to Viam's cloud with the new capability for bulk data deletion on the **Data** tab. ## April 2023 -### Changed: Vision service +{{% changelog color="changed" title="Vision service" %}} {{% alert title="Important: Breaking Change" color="note" %}} @@ -246,6 +245,8 @@ Find more information on each of the changes below. {{% /alert %}} + + #### Use individual vision service instances You need to create **an individual vision service instance** for each detector, classifier, and segmenter model. @@ -280,7 +281,7 @@ detections = await vision.get_detections(img, "find_objects") {{% /tab %}} {{< /tabs >}} -#### Color Detector configurations +#### Color detector configurations You can replace existing color detectors by [configuring new ones in the UI](/ml/vision/detection/#configure-a-color_detector) or you can update the [Raw JSON configuration of your robots](/build/configure/#the-config-tab): @@ -355,7 +356,7 @@ You can replace existing color detectors by [configuring new ones in the UI](/ml {{% /tab %}} {{< /tabs >}} -#### TFLite Detector configurations +#### TFLite detector configurations You can replace existing TFLite detectors by [configuring new ones in the UI](/ml/vision/detection/#configure-an-mlmodel-detector) or you can update the [Raw JSON configuration of your robots](/build/configure/#the-config-tab): @@ -475,7 +476,7 @@ You can replace existing TFLite classifiers by [configuring new ones in the UI]( {{% /tab %}} {{< /tabs >}} -#### Radius Clustering 3D Segmenter configurations +#### Radius Clustering 3D segmenter configurations You can replace existing Radius Clustering 3D segmenters by [configuring new ones in the UI](/ml/vision/segmentation/#configure-an-obstacles_pointcloud-segmenter) or you can update the [Raw JSON configuration of your robots](/build/configure/#the-config-tab): @@ -529,7 +530,7 @@ You can replace existing Radius Clustering 3D segmenters by [configuring new one {{% /tab %}} {{< /tabs >}} -#### Detector to 3D Segmenter configurations +#### Detector to 3D segmenter configurations You can replace existing Radius Clustering 3D segmenters by [configuring new ones in the UI](/ml/vision/segmentation/#configure-a-detector_3d_segmenter) or you can update the [Raw JSON configuration of your robots](/build/configure/#the-config-tab): @@ -596,18 +597,18 @@ You will need to first register the machine learning model file with the [ML mod ## March 2023 -### Added: Machine learning for image classification models +{{% changelog color="added" title="Machine learning for image classification models" %}} You can now [train](/ml/train-model/) and [deploy](/ml/deploy/#create-an-ml-model-service) image classification models with the [data management service](/data/) and use your robot's image data directly within Viaml Additionally, you can [upload and use](/ml/upload-model/) existing machine learning models with your robots. For more information on using data synced to the cloud to train machine learning models, read [Train a model](/ml/train-model/). -### Added: Motion planning with new `constraint` parameter +{{% changelog color="added" title="Motion planning with new `constraint` parameter" %}} A new parameter, [`constraint`](/mobility/motion/constraints/), has been added to the [Motion service API](/mobility/motion/#api), allowing you to define restrictions on the robot's movement. The constraint system also provides flexibility to specify that obstacles should only impact specific frames of a robot. -### Added: Fragments in robot configuration +{{% changelog color="added" title="Fragments in robot configuration" %}} You can now access {{< glossary_tooltip term_id="fragment" text="fragments" >}} in your robot setup. The configurations you added will now show up automatically in the **Components** or **Services** subtabs in the **Builder** view. @@ -615,18 +616,18 @@ This makes it easier to monitor what fragments you've added to your robot and ho For more information, see [Fragments](/build/configure/#fragments). -### Improved: Sticky GPS keys +{{% changelog color="improved" title="Sticky GPS keys" %}} GPS keys you enter are now saved in your local storage. This ensures that when you reload the page, your GPS keys remain accessible. -### Improved: More reliable camera streams +{{% changelog color="improved" title="More reliable camera streams" %}} The camera component's streams are smoother and more reliable with recent improvements. Additionally, camera streams automatically restart if you momentarily lose internet connection. -### UI updates to Logs and History +{{% changelog color="improved" title="UI updates to Logs and History" %}} The latest UI updates enable you to: @@ -636,44 +637,44 @@ The latest UI updates enable you to: ## February 2023 -### Added: Rover reuse in Try Viam +{{% changelog color="added" title="Rover reuse in Try Viam" %}} You now have the option to reuse a robot config from a previous Try Viam session. -### Added: Dynamic code samples +{{% changelog color="added" title="Dynamic code samples" %}} The Viam app **Code sample** tab now dynamically updates as you add resources to your robot's config. The code samples instantiate each resource and include examples of how to call a `Get` method on it. -### Added: TypeScript SDK +{{% changelog color="added" title="TypeScript SDK" %}} Find more information in the [TypeScript SDK docs](https://ts.viam.dev/). -### Added: Frame system visualizer +{{% changelog color="added" title="Frame system visualizer" %}} When adding [frames](/mobility/frame-system/) to your robot's config in the Viam app, you can now use the **Frame System** subtab of the **Config** tab to more easily visualize the relative positions of frames. -### Added: Support for microcontrollers +{{% changelog color="added" title="Support for microcontrollers" %}} Micro-RDK is a lightweight version of the RDK that can run on an ESP32. Find more information in the [micro-RDK documentation](/get-started/installation/prepare/microcontrollers/). ## January 2023 -### Added: Remote control power input +{{% changelog color="added" title="Remote control power input" %}} On your robot's **Control** tab on the [Viam app](https://app.viam.com/), you can now set the power of a [base](/components/base/). The base control UI previously always sent 100% power to the base's motors. -### Added: New encoder model: AMS AS5048 +{{% changelog color="added" title="New encoder model: AMS AS5048" %}} The [AMS AS5048](/components/encoder/ams-as5048/) is now supported. -### Added: GetLinearAcceleration method +{{% changelog color="added" title="GetLinearAcceleration method" %}} The movement sensor API now includes a [GetLinearAcceleration](/components/movement-sensor/#getlinearacceleration) method. -### Added: Support for capsule geometry +{{% changelog color="added" title="Support for capsule geometry" %}} The [motion service](/mobility/motion/) now supports capsule geometries. @@ -681,7 +682,7 @@ The UR5 arm model has been improved using this new geometry type. ## December 2022 -### Added: Modular resources +{{% changelog color="added" title="Modular resources" %}} You can now implement your own custom {{< glossary_tooltip term_id="resource" text="resources" >}} as [_modular resources_](/registry/). @@ -691,25 +692,25 @@ All users need to update to the latest version of the RDK (V3.0.0) to access rob {{% /alert %}} -### Added: URDF kinematic file support +{{% changelog color="added" title="URDF kinematic file support" %}} You can now supply kinematic information using URDF files when implementing your own arm models. -### Added: New movement sensor models +{{% changelog color="added" title="New movement sensor models" %}} There are two new movement sensor {{< glossary_tooltip term_id="model" text="models" >}}: - [ADXL345](/components/movement-sensor/adxl345/): A 3-axis accelerometer - [MPU-6050](/components/movement-sensor/mpu6050/): A 6-axis accelerometer and gyroscope -### Improved: Camera performance and reliability +{{% changelog color="improved" title="Camera performance and reliability" %}} - Improved server-side logic to choose a mime type based on the camera image type, unless a specified mime type is supplied in the request. **The default mime type for color cameras is now JPEG**, which improves the streaming rate across every SDK. - Added discoverability when a camera reconnects without changing video paths. This now triggers the camera discovery process, where previously users would need to manually restart the RDK to reconnect to the camera. -### Improved: Motion planning with remote components +{{% changelog color="improved" title="Motion planning with remote components" %}} The [motion service](/mobility/motion/) is now agnostic to the networking topology of a robot. @@ -718,19 +719,19 @@ The [motion service](/mobility/motion/) is now agnostic to the networking topolo - Arms are now an input to the motion service. This means that the motion service can plan for a robot that has an arm component regardless of whether the arm is connected to a main or {{< glossary_tooltip term_id="remote" text="remote" >}} instance of `viam-server`. -### Improved: Motion planning path smoothing +{{% changelog color="improved" title="Motion planning path smoothing" %}} - RRT\* paths now undergo rudimentary smoothing, resulting in improvements to path quality with negligible change to planning performance. - Plan manager now performs direct interpolation for any solution within some factor of the best score, instead of only in the case where the best inverse kinematics solution could be interpolated. -### Improved: Data synchronization reliability +{{% changelog color="improved" title="Data synchronization reliability" %}} Previously, data synchronization used bidirectional streaming. Now is uses a simpler unary approach that is more performant on batched unary calls, is easier to load balance, and maintains ordered captures. ## November 2022 -### Changed: Camera configuration +{{% changelog color="changed" title="Camera configuration" %}} **Changed** the configuration schemes for the following camera models: @@ -741,24 +742,24 @@ Now is uses a simpler unary approach that is more performant on batched unary ca For information on configuring any camera model, see [Camera Component](/components/camera/). -### Changed: App code sample tab name update +{{% changelog color="changed" title="App code sample tab name update" %}} Changed the name of the **Connect** tab to **Code sample** based on user feedback. -### Added: New servo model +{{% changelog color="added" title="New servo model" %}} A new [servo model called `gpio`](/components/servo/gpio/) supports servos connected to non-Raspberry Pi boards. -### Added: RTT indicator in the app +{{% changelog color="added" title="RTT indicator in the app" %}} A badge in the Viam app now displays RTT (round trip time) of a request from your client to the robot. Find this indicator of the time to complete one request/response cycle on your robot's **Control** tab, in the **Operations & Sessions** card. -### Added: Python 3.8 support +{{% changelog color="added" title="Python 3.8 support" %}} The Python SDK now supports Python 3.8, in addition to 3.9 and 3.10. -### Added: New parameter: `extra` +{{% changelog color="added" title="New parameter: `extra`" %}} A new API method parameter, `extra`, allows you to extend {{< glossary_tooltip term_id="modular-resource" text="modular-resource" >}} functionality by implementing the new field according to whatever logic you choose. `extra` has been added to the following APIs: arm, data management, gripper, input controller, motion, movement sensor, navigation, pose tracker, sensor, SLAM, vision. @@ -771,7 +772,7 @@ Users of the Go SDK _must_ update code to specify `extra` in the arguments that {{% /alert %}} -### Added: Service dependencies +{{% changelog color="added" title="Service dependencies" %}} `viam-server` now initializes and configures resources in the correct order. For example, if the SLAM service depends on a LiDAR, it will always initialize the LiDAR before the SLAM service. @@ -783,7 +784,7 @@ Other service configurations are not affected. {{% /alert %}} -### Removed: width and height fields from camera API +{{% changelog color="removed" title="Width and height fields from camera API" %}} Removed `width` and `height` from the response of the [`GetImage`](/components/camera/#getimage) method in the camera API. This does not impact any existing camera models. diff --git a/layouts/shortcodes/changelog.html b/layouts/shortcodes/changelog.html new file mode 100644 index 0000000000..70b9b4a283 --- /dev/null +++ b/layouts/shortcodes/changelog.html @@ -0,0 +1,10 @@ +{{ $color := .Get "color" }} +{{ $title := .Get "title" }} +