Skip to main content

6.0.2

· One min read

Bug fixes

  • Improve licence check message when launching MoveIt Pro
  • Fix SaveTransformStampedToYaml behavior port

6.0.1

· One min read
  • Fixed an issue where behavior tree's live status could be ordered incorrectly.
  • Fixed a bug where the edit menu in the Objective Builder would erroneously close itself shortly after text was input
  • Fixed a bug where the behavior tree's live status view would not correctly fit itself around the running objective upon initialization
  • Miscellaneous documentation fixes

6.0.0

· 10 min read

Major Features

New Simulation Engine

MoveIt Pro 6.0 introduces a new simulation engine that includes much higher fidelity physics simulation for manipulation tasks and more performant rendering of camera and depth data. This includes simulation of RGBD cameras, 2D and 3D LiDAR, force-torque sensors, and more! The new simulation engine has low system requirements and does not require a dedicated GPU. Check out the new arm_on_rail_sim configuration in the example workspace to try the new simulator for yourself.

Improved Configuration Parser

This version of Pro includes an overhaul of the parser that is used to construct a robot configuration from your YAML configs, Xacro files, and others. It includes much better error messaging for incorrectly-specified configuration arguments and will inform you when Pro deprecates parameters.

Pro RRTConnect

We have introduced a new joint-space planner (custom RRTConnect implementation), that can be used within MTC Tasks. This planner is deterministic, faster to compute, and more efficient compared to the default OMPL planner. In its initial release, orientation constraints are not supported. It can be used by setting planner_interface="pro_rrt" in your joint-space MTC planning Behaviors (SetupMTCMoveToJointState, SetupMTCMoveToPose, SetupMTCConnectWithTrajectory and SetupMTCMoveToNamedState).

Other New Features

Behavior Changes

  • Adds an optional constraints port to the SetupMTCMoveToPose Behavior for passing a moveit_msgs::msg::Constraints message to your selected planner.
  • The cost function for the SetupMTCMoveAlongFrameAxis Behavior now optimizes for longer Cartesian motions. This change enables MTC motion plans to move into contact. Previously, the planner favored short motions which made it difficult to move into contact.
  • Adds an optional ignore_environment_collisions port to the SetupMTCMoveAlongFrameAxis Behavior to ignore environment collisions during planning.
  • Adds an optional skip_collision_check port to the SetupMTCCurrentState Behavior to skip collision checking of the current robot state.
  • Updates the tip_offset port in the PlanCartesianPath Behavior to take in a 6D offset, i.e. position and orientation, instead of just a 3D position offset. Orientation is taken as roll, pitch, yaw (rad).
  • Adds optional ik_cartesian_space_density and ik_joint_space_density ports to the PlanCartesianPath Behavior that can be used to control the density of the path IK solution before turning it into a trajectory with TOTG.
  • Adds an optional timeout port to the GripperActionCommand Behavior in case the gripper is expected to take a long time to close.

New Behaviors

  • Adds a CropPointsInSphere Behavior.
  • Adds a PlanToJointGoal Behavior that plans between joint states using RRT. Short-cutting and time parameterization are applied to the path to create a trajectory message.
  • Adds a SetupMTCIgnoreCollisionsBetweenObjects Behavior to create an MTC Stage that modifies the planning scene's Allowed Collision Matrix to permit or forbid collision between a set of objects while planning subsequent Stages.
  • Adds a VisualizeMesh Behavior that can be used to visualize custom meshes within the Web UI.
  • Adds a VisualizePath Behavior that can be used to visualize a vector of PoseStamped as a polyline.
  • Add a VisualizePose Behavior. The Behavior publishes a Marker with three lines, one per axis, in red, green, blue at a location/orientation defined by a PoseStamped message.
  • Adds a GenerateCoveragePath Behavior to create a path that covers an area. The area to cover is defined by the origin (bottom-right corner), width, height and stride distance.
  • Adds two Behaviors to run admittance control at a stationary reference point. The GetRobotJointState Behavior extracts a ROS joint state message from a planning scene object. The CreateStationaryTrajectory Behavior creates a stationary trajectory of a specified duration at the provided joint state.

MoveIt Pro UI Changes

  • Increases the grid in the 3D visualization to 5 meters wide and includes useful measurement increments as sub-grids.
  • Removes running the Clear Snapshot Objective on UI bring-up and instead warns you if you have a non-empty Octomap that is now desynchronized from the UI.
  • Sorts favorited Objectives to the top of the Objectives list for easy access.
  • Renames the "Quick Objectives" list to "Favorites" to clarify how they are populated.
  • Adds a button to SubTree nodes to jump straight to the definition of that SubTree in the Objective Builder.
  • Adds an option to flag an Objective as being "SubTree Only" to hide it from the runnable Objectives list.
  • Improves some error messages in SubTree editing workflows.
  • Improves the search engine in the Behaviors list and Objectives list in the UI.
  • Adds an upgrade link to the UI when a new version of MoveIt Pro is available.
  • Errors when validating a user's license will now display in the user interface.

New Controllers

  • Adds a IOController controller to set discrete enable/disabled commands, such as when operating a vacuum gripper. The controller claims all state command interfaces specified by a ROS 2 parameter. The controller creates enable/disable service servers for each claimed interface.

Controller Changes

  • The JTAC and VFC controllers now offer services to re-zero the force-torque sensor readings. This allows logic for re-zeroing the force-torque sensor to be moved out of the hardware interfaces.
  • Enables using the JTAC even if a force/torque sensor is not defined. In this case JTAC will behave similarly to the JTC. It will disable admittance-related features, e.g. stop on force threshold, etc.

Dependency Changes

  • Upgrades the included version of Ubuntu to April 27 and ROS Humble to May 23.
  • Adds the ros2_control CLI to the MoveIt Pro Docker image.
  • Updates the included version of MoveIt Task Constructor.

Documentation Improvements

  • Revamped the MoveIt Pro documentation! 🎉
  • Added additional documentation for common installation questions
  • Added documentation for creating MoveIt Pro MuJoCo configuration based on a MoveIt Pro site config
  • Improved port documentation in some common behaviors
  • Clarified some installation instructions

Other Improvements

  • Reorders the questions in moveit_pro configure to be more intuitive.
  • Improves the help text in the moveit_pro CLI.
  • The moveit_pro CLI will now warn you if you do not have the proper permissions to access the Docker daemon.
  • Reduces the amount of warnings logged by MoveIt on bring-up of MoveIt Pro.
  • Verbose logging now includes timestamps at the beginning and end of running an objective.
  • Improves some licensing-related error messages.
  • Improves the MuJoCo integration to parse command interfaces from position, velocity, and motor tags in MJCF files.
  • Improves the validation logic for MoveIt Pro configuration packages to provide more helpful error messages when the config.yaml is syntactically incorrect.

Bug Fixes

  • Fixes acceleration profile calculation in the VFC.
  • Fixes a bug where larger Objectives might not zoom correctly when the "Fit to View" button is pressed.
  • Fixes a bug where copying and pasting port text could cause unnecessary duplication of behaviors.
  • Fixes a bug where a missing /camera_info topic for an image stream could cause the UI to freeze.
  • Fixes a bug where the waypoint_name dropdown on certain behaviors would not properly respond to clicks.
  • Fixes a bug where output ports would show up as in-out ports in the behavior tree status viewer.
  • Fixes a bug where a deleted objective could re-appear in the UI in the same session as it was deleted.
  • Fixes a bug where refreshing the MoveIt Pro UI would restart the running Objective.
  • Fixes a teleoperation bug where saving a new joint state to an existing waypoint might not succeed.
  • Fixes a bug where adding a port to a SubTree in the Objective Builder would prevent adding more ports to that same SubTree.
  • Fixes a bug where some Supervised Autonomy prompts would remain on-screen after stopping the objective that invoked them.
  • Fixes a bug where exceptionally large or exceptionally small Objectives caused strange tree layout behavior in the UI.
  • Fixes a visual bug with Joint Jog in Firefox.
  • Fixes a bug where the preview for waypoints might not change after the waypoint joint state was updated.
  • Fixes a bug where jogging a joint in Joint Jog did not exit the textual input for joint angles.

Known Issues

  • When using the MoveIt Pro UI, the Behavior sidebar for specifying port values will automatically close if you begin typing a value and then stop typing for ~2 seconds.

5.3.2

· One min read

Bug fixes

  • Fixed an issue where MoveIt Pro CLI commands could cause unnecessary rebuilding of the user workspace

5.3.1

· One min read

Bug fixes

  • Alleviated a performance issue when running the joint jog mode of teleoperation
  • Fixed an issue where you may have been unnecessarily prompted to remove your MoveIt Pro config directory during installation
  • Fixed an issue where clicking the “favorite” icon on an Objective would also execute that Objective
  • Fixed an issue where the runtime status of a behavior tree may not have automatically laid out correctly
  • Fixed an issue where MoveIt Pro could have unnecessarily restarted itself after a reboot of your computer
  • Fixed an issue where GenerateVacuumGraspPose could not be used in combination with some other MTC behaviors due to property conflicts
  • Additional miscellaneous fixes to installation and documentation

5.3.0

· 5 min read

New Controllers and Behaviors

  • We are releasing a "Joint Trajectory with Admittance" controller (JTAC) as a ros2_control controller plugin, and a corresponding behavior to interface with the controller, called ExecuteTrajectoryWithAdmittance. This behavior allows executing a trajectory in a compliant way if your robot has a force/torque sensor installed at the wrist. Check out our how-to guide Configure Admittance Control for more information.

User Interface Changes

  • The failure or completion of a running Objective will no longer jump you back to the Objectives homepage
  • Added a “restart” button for failed or completed Objectives
  • The Objectives tab now correctly resumes the UI for your currently-running objective when re-entered from another page
  • visualization_msgs/Markers of type ARROW are now supported
  • visualization_msgs/Markers of type MESH_RESOURCE are now supported
  • Editing an Objective that is referenced by another Objective as a SubTree will now warn you about its usage in other Objectives
  • The sidebar of the Objective Builder and Objectives tabs that lists all your Objectives now has a consistent look and feel between the two screens and has all the same functionality in both places

Behavior Changes

  • Add Velocity Force Controller interoperability:
    • Add PublishVelocityForceCommand behavior to send commands to the `Velocity Force Controller``
    • Add VelocityForceController plugin so it can be activated by the ActivateControllers behavior
    • Fix Velocity Force Controller control law direction
  • Improve Velocity Force Controller stopping behavior to limit jerk:
    • Execute a stop trajectory on timeout
    • Execute a stop trajectory on joint position limit prediction
  • Admittance Control updates:
    • Renamed UpdateAdmittanceController to `SetAdmittanceParameters``
    • SetAdmittanceParameters now generates parameters compatible with the MoveIt Pro Joint Trajectory Admittance Controller (JTAC) in addition to parameters compatible with the ros2_control admittance controller
      • Usage with the ros2_control admittance controller is deprecated and will be removed in a future version.
  • Simplified the behavior for displaying point clouds in the visualization pane. Point clouds are automatically transformed in to the world frame are no longer cropped via the ROS 2 parameter <sensor_name>.max_range. The unused port point_cloud_uuid was removed as well.
    • Migration: Remove the sensor_name="..." and point_cloud_uuid="..." ports from existing objectives with SendPointCloudToUI behaviors. The max_range parameter is no longer used by this behavior. To crop the point cloud, use one of our CropPoints behaviors.
    • Example:
      • Previous: <Action ID="SendPointCloudToUI" point_cloud="{point_cloud}" sensor_name="scene_scan_camera" pcd_topic="/pcd_pointcloud_captures" point_cloud_uuid=""/>
      • Updated: <Action ID="SendPointCloudToUI" point_cloud="{point_cloud}" />

Other Enhancements

  • Updated launcher and documentation tips for easier workspace builds try `moveit pro build --help``
  • ign_ros2_control removed as a core dependency.
    • Migration options:
      • Clone the version of your choice to your user workspace, and build your workspace using `moveit_pro build user_workspace``
      • Add the ROS 2 dependency to your configuration’s package.xml and build your Docker overlay using `moveit_pro build user_image``

Bug Fixes

  • Fixed moveit_pro test to correctly run colcon test in a MoveIt Pro Docker container. Use moveit_pro test --help for additional usage tips
  • Clarified the joint limit exceeded error message to not imply that the joint was necessarily commanded to that position
  • visualization_msgs/Markers will now properly have their frame_id respected instead of rendering only in world frame
  • Fixed an issue where the previews for joint jogging in Teleoperate could become desynchronized from the robot state
  • Additional miscellaneous fixes and improvements

Previous:

<Action ID="SendPointCloudToUI" point_cloud="{point_cloud}" sensor_name="scene_scan_camera" pcd_topic="/pcd_pointcloud_captures" point_cloud_uuid=""/>

Updated:

<Action ID="SendPointCloudToUI" point_cloud="{point_cloud}" />
  • Other Enhancements:
    • Updated launcher and documentation tips for easier workspace builds try moveit pro build --help
      • ign_ros2_control removed as a core dependency.
        • Migration options:
          • Clone the version of your choice to your user workspace, and build your workspace using moveit_pro build user_workspace
            • Add the ROS 2 dependency to your configuration’s package.xml and build your Docker overlay using moveit_pro build user_image

5.2.0

· 3 min read

Key Changes

  • Added support for differential drive mobile manipulators. Please reference the configuration for the Hello Robot Stretch RE1 for an example of how to configure MoveIt Pro for this use case.

Coffee Shop Demo

Configuration Improvements

  • Added support for MuJoCo simulation backend.
    • The user workspace can now be built with additional Colcon arguments (like packages_select) using moveit_pro build user_workspace --colcon-args="--packages-select your_package"

New User Interface Features

  • If your robot is reporting joint states outside of the defined limits in your URDF, the UI will display a warning including the joint name, state, and the violated limit.
    • If your robot is erroneously reporting joint states for fixed joints, the UI will display a warning including the name of the joint that may be mis-defined in the URDF or misconfigured in the robot driver.
    • MTC Solutions containing Multi-DOF joint states e.g. mobile bases can now be previewed in the UI
    • Interactive Marker teleoperation is now compatible with Multi-DOF joints e.g. mobile bases.
    • Saved Waypoints can now include Multi-DOF joints e.g. mobile bases.
    • The interface will now notify you if there’s a new version of Pro available with your subscription.
    • Clicking on the version number in the help dropdown will now take you to the release notes of your version of MoveIt Pro.
    • When using Interactive Marker teleoperation, you can now select which planning group you would like to drag.

Behavior Changes

  • Navigation behaviors that call actions on a system running Nav2:
    • NavigateToPoseAction: Sends the base to a single pose using Nav2
      • NavigateThroughPosesAction: Sends the base through a vector of poses using Nav2
    • GetMasks2D has been updated to handle clicked points on the image.
      • GetMasks2D Behavior updated to use PointStamped as the clicked-point message type for better interoperability with other ML Behaviors.
        • Segment Anything Action Server now parses clicked points for better Segment Anything inference.
    • YAML Behaviors for saving and loading new message types have been added. MoveIt Pro now supports saving and loading:
      • std_msgs/Header
        • geometry_msgs/PointStamped
        • geometry_msgs/Quaternion
        • geometry_msgs/Vector3
        • geometry_msgs/Transform
        • geometry_msgs/TransformStamped
        • UnorderedMap<String, Waypoint>
    • Added a CropPointsInSphere behavior that enables users to crop point clouds based on their radial distance from a designated frame
    • MTC Behaviors requiring Cartesian motion will now use an improved internal solver.
    • GetSyncedImageFromPointCloud now allows the topics being synchronized to have differing QoS settings
    • SetupMTCConnectWithTrajectory will add a connect MTC stage to the task to join the previous stage with the start state of the next stage using a freespace trajectory.

Planner Changes

  • The default joint-space interpolation planner is now exclusively RRTConnect, instead of both RRTConnect and Pilz PTP, to reduce the number of required configuration files for most users.

Other Enhancements

  • Added a stop_accelerations port to the MoveIt Pro Joint Trajectory Admittance Controller to allow specifying per-joint decelerations to use when halting trajectory execution, in the event of force threshold being met or other exit criteria.
    • Apply a second-order Butterworth filter and deadband to the force/torque sensor signal in the Trajectory Admittance Controller.
  • Updated SubTree tutorial
    • Bug fixes and performance improvements.
    • Improved errors for unsupported configurations.
    • Dropped mainline support for Ubuntu 20.04, to support continuing improvements to the moveit_pro launcher.
      • Current customers can contact us at [email protected] for a workaround if needed to support mission-critical 20.04 systems.

5.1.1

· One min read
  • Documentation fixes.

5.1.0

· 6 min read

Key Changes

  • MoveIt Pro no longer automatically launches RealSense cameras defined in the cameras.yaml. To better support different hardware configurations, cameras.yaml is no longer required and you must launch your camera drivers yourself. We’ve included an easy migration script to convert your cameras.yaml to a cameras.launch.xml!
    • Added an ExecuteTrajectoryWithAdmittance behavior to allow use of the MoveIt Pro Joint Trajectory Admittance Controller
      • This controller has no dynamic memory allocation during execution to improve safety and reliability.
        • This controller takes admittance parameters as part of the command, as opposed to a separate ROS 2 parameter interface, which makes it easier to use.
        • This controller implements ‘stop-on-contact’ functionality and smooth stop trajectories.
    • Added new Behaviors and UI functionality for operator input, RequestTextFromPrompts and AdjustPoseWithIMarker
    • Major SubTree usability enhancements in the Objective Builder

Configuration Improvements

  • Removed cameras.yaml from MoveIt Pro’s configuration parser and launcher (see Key Changes section)
    • Fixed many issues with stale configurations that were caused by persistent ~/.config/moveit_pro directories. This directory is now ephemeral, and all changes persist back to your site configuration’s source directory.
    • moveit_pro setup_workspace now supports cloning SSH / git@ repositories
    • Corrected ~ expansion in User workspace path ({STUDIO_HOST_USER_WORKSPACE})

New User Interface Features

  • MoveIt Pro’s URDF visualizer now supports Planar and Floating joints.
    • Using the AdjustPoseWithIMarker behavior, an Objective can now request that an operator adjust a pose within the 3D scene using an interactive marker. For example, verifying a candidate grasp pose in a user-in-the-loop pick-and-place.
    • Using the RequestTextFromPrompts behavior, an Objective can now request that an operator input textual content into a form. This enables, for example, including operator-driven prompting of an ML model within your Objective.
    • Improved display of SubTree descriptions in the Objective Builder
    • Modifications to SubTree ports are now saved as defaults within the SubTree. Subsequent uses of the SubTree will automatically populate the ports with default values
    • Visual clarity improvements to crosshair when selecting points on an image feed
    • Replaced port directionality arrows in the Objective Builder with color-coded text to improve glanceability
    • SubTrees are now collapsed by default in the Objective Builder, to make editing large, highly-composed Objectives less unwieldy. Manually expanding them will still keep them expanded between sessions.
    • Bug fixes and performance improvements, especially for teleoperating robots without grippers

Behavior Changes

  • Behaviors added to support grasp candidate adjustment in the UI:
    • AdjustPoseWithIMarker publishes a candidate pose and returns the adjusted pose from the UI
      • GetSyncedImages synchronizes two camera topics, most useful for synchronizing RGB data with depth data to generate a pose from a pixel coordinate
    • Added the RequestTextFromPrompts behavior to display textual forms in the UI
    • Removed internal-only GetPoseFromUser and GetIntFromUser behaviors
    • Added template behaviors AddToVector<T> and ResetVector<T> which can be implemented to allow composing vectors during Objective runtime
    • Error message improvement to ActionClientBehaviorBase:
      • The ActionClientBehaviorBase behavior template now exposes a getAbortedMessage function that returns a string. The string will be displayed in the MoveIt Studio error toast message if the action is aborted. The ExecuteFollowJointTrajectory and ExecuteTrajectoryWithAdmittance behaviors now provide useful hints if they are aborted.
    • Added ExecuteTrajectoryWithAdmittance (see Key Changes section)
    • SetupMTCUpdateGroupCollisionRule behavior's parameters are no longer read in from a YAML file using the LoadObjectiveParameters behavior. The behavior parameters are set as input ports.
    • Added GetMeshNormalPose behavior to calculate the surface normals of a visual mesh in the robot model
    • Added PublishMarkers behavior to publish a MarkerArray to the UI/RViz.
    • Added SolveIKQueries behavior to determine if the robot can reach a list of target poses.
    • New “load from YAML” and “save to YAML” behaviors for:
      • Octonion
        • Vector3
        • Transform
        • TransformStamped
        • Time (builtin_interfaces)
        • Waypoint (moveit_studio_agent_msgs)
        • UnorderedMap<String, Waypoint>

Controller Changes

  • Added a stop_accelerations port to the MoveIt Pro Joint Trajectory Admittance Controller to allow specifying per-joint decelerations to use when halting trajectory execution, in the event of force threshold being met or other exit criteria.
    • Apply a second-order Butterworth filter and deadband to the force/torque sensor signal in the Trajectory Admittance Controller.

Planner Changes

  • The default joint-space interpolation planner is now exclusively RRTConnect, instead of both RRTConnect and Pilz PTP, to reduce the number of required configuration files for most users.

Other Enhancements

  • Improvements to MoveIt Pro’s Docker configuration to allow better interoperability with EtherCAT-based hardware
    • Numerous improvements to error messaging in the moveit_pro script and the included launchfiles
    • The MoveIt Pro installer will now attempt to version-match a requested configuration download against the installed version of Pro.

5.0.0

· 7 min read

Major version increase.

Major UI Enhancements

  • Web UI Modifications: The Web UI now automatically retrieves the generated end effector URDF, enhancing integration and reducing manual configuration efforts.
    • Enhanced Jog Interface: The UI dynamically queries the servo system to identify joggable joints, streamlining user interaction.
    • Request Points from User: Your objective can now request that an operator click location(s) on an image stream, to help you build supervised autonomous workflows.
    • UI Bug Fixes and Improvements:
      • Resolved various UI issues including constraints editor malfunctions, sidebar layout fixes, and enhanced scroll interactions in multiple UI components.
        • Enhanced Error Handling and User Interface Adjustments: Improved error feedback mechanisms and refined user interface elements to enhance the user experience.

Behavior Development and Enhancements

  • Behavior Server Updates: Objective Server now supports automatic generation of tree_nodes_model.xml for Behavior plugins, significantly simplifying behavior management.
    • New Behaviors Introduced:
      • Servo Towards Pose: Allows more intuitive point-and-move operations. Enables Visual Servoing applications.
        • User Interactive Behaviors: Enhanced capabilities for user interaction, including getting points and poses from pixel coordinates.
    • Behavior Stability: Significant stability enhancements and refactoring across various behaviors to improve reliability and performance.
    • Behavior Refactoring: Complex behaviors have been converted to behavior tree objectives using a collection of simpler behaviors, adding further insight and adaptability to existing capabilities.

URDF and SRDF Updates

  • Enhancements to streamline the handling of robot descriptions and semantics.
    • Centralized fetching of robot descriptions ensures consistent application settings.
    • Gripper configurations are now directly integrated from SRDF, improving setup accuracy.

Documentation and Tutorials

  • Added comprehensive guides on using Visual Servoing and implementing pick and place operations, fostering a deeper understanding and broader application of MoveIt Studio functionalities.

MTC (MoveIt Task Constructor) Enhancements

  • Enhanced Debugger Features:
    • Solution Introspection: The MTC solution can be inspected by clicking the bug icon on the PlanMTCTask node in the behavior tree after it gets ticked. Each stage of the MTC task is labelled with a pass/fail indicator as well as time to compute and number of valid solutions.
      • Runtime Metrics: Run times are now displayed in the MTC debugger, providing immediate feedback on task execution durations.
      • Advanced Visualization Overlays: Introduced visualization overlays in the MTC debugger to enhance the clarity of task planning.
    • Visualization and User Interface Optimizations: Improved Error Displays. Collision information is now displayed when MTC plans fail, providing detailed feedback for troubleshooting.
    • Backend Enhancements and Error Handling:
      • Data Storage Enhancements: Task descriptions and statistics are now stored in the backend, enabling better tracking and historical analysis of MTC operations.

Installer and Launcher Updates

  • New Installer: Transitioned to a Debian package-based installer, facilitating a smoother installation process.
    • Launcher Enhancements: Improved the moveit_pro launch script for enhanced user experience starting and managing sessions.

Dependency Management

  • ROS and Ubuntu Snapshot Updates: Current to the latest February 2024 snapshots, ensuring compatibility and performance.
    • BehaviorTree.CPP Upgrade: Updated to version 4.5.2, leveraging new functionalities and performance improvements. This update is part of broader enhancements in package management and dependency declarations, ensuring the system remains robust and efficient.
    • MoveIt 2 Servo Updates: Updated to fix collision checking with attached objects, significantly improving motion planning reliability.

Other improvements

  • Reduce memory usage, improve load times, data consistency and network efficiency.
    • Stability Improvements: Multiple fixes and validations added to enhance the overall stability and reliability of the application framework.