Enhance episode control and jogging management in mujoco_server.py and nova_jogger.py
Georg
c1ce8c4
- Added episode duration tracking and watchdog functionality to automatically truncate episodes exceeding the maximum duration.
- Introduced timestamps for teleoperation commands to improve debugging and state management.
- Updated jogging state management to ensure proper handling of active jogging commands and WebSocket connection states in nova_jogger.py.
- Refactored episode control state initialization and reset logic for better clarity and functionality.
multi-axes jogging
Georg
7e77839
Enhance multi-axis homing and Nova API v2 integration
Georg
59625d9
- Updated the homing functionality in `mujoco_server.py` to support multi-axis movements using the Nova API v2, allowing all joints to move simultaneously for faster homing.
- Improved the `NovaJogger` class to utilize a unified v2 endpoint for joint and cartesian jogging, enhancing command efficiency and mode switching.
- Added comprehensive tests for multi-axis homing and jogging functionality, ensuring robust performance and validation of the new features.
- Updated `README.md` to reflect the new capabilities and integration details with the Nova API v2.
- Introduced new scripts for testing multi-axis homing and validating the v2 jogging commands, ensuring proper functionality before deployment.
Enhance homing functionality and client management in mujoco_server.py
Georg
0551bb3
- Updated the homing state management to include timeout checks, preventing drift when home messages cease.
- Improved the handling of identified and unidentified clients in the `broadcast_state()` function, ensuring accurate client status reporting.
- Introduced continuous command sending in the NovaJogger class for smoother joint movements during jogging.
- Enhanced the UI to display both identified and unidentified clients, improving user feedback on connection status.
- Added comprehensive tests for homing behavior, including drift prevention and overshoot detection, ensuring robust performance in various scenarios.
- Updated README.md to reflect changes in homing behavior and client management.
Update UR5 home pose for Nova integration in environment and scene files
Georg
4f6eb67
- Modified the home position values in `ur5_env.py`, `scene_t_push.xml`, and `scene_with_gripper.xml` to reflect a custom configuration for improved integration with Nova.
- Adjusted joint angles to enhance the robot's initial state, ensuring better performance during simulations.
Update UR5 home pose in scene.xml for improved robot positioning
Georg
7ba9543
- Modified the home keyframe's qpos and ctrl values to reflect a more accurate home position for the UR5 robot.
- This change aims to enhance the robot's initial state configuration, ensuring better performance during simulations.
Update scene_t_push.xml for simulation stability improvements
Georg
044130b
- Added a timestep parameter to the simulation options for better time resolution.
- Adjusted solref and solimp values for the push stick and t_object geometries to enhance simulation stability and performance.
Enhance mujoco_server.py and UR5 environment for improved teleoperation and episode control
Georg
c525614
- Introduced new mechanisms for handling teleoperation commands, including a snapshot of the last command for better state management.
- Updated the reward calculation in the UR5 environment to prioritize task rewards, with a fallback to distance-based rewards.
- Added gym-style control message handling over the unified WebSocket, allowing for richer interactions and state updates.
- Implemented a robust episode control flag system to manage episode termination and truncation without interfering with the gym client's lifecycle.
- Enhanced documentation in README.md to clarify server startup options and the unified WebSocket API for trainers and clients.
- Added unit tests to verify the functionality of the episode control mechanism, ensuring thread safety and correct behavior across multiple episodes.
Refactor UR5 environment for enhanced Nova state management and UI adjustments
Georg
3305880
- Updated the UR5 environment to include new attributes for storing Nova joint snapshots and TCP positions, improving state management.
- Modified the shutdown process to optionally preserve the Nova state, enhancing the robustness of the environment during transitions.
- Implemented methods to store and apply the last Nova state, ensuring smoother operation and better integration with user commands.
- Adjusted the UI overlay positioning in mujoco_server.py for improved visual alignment.
Enhance mujoco_server.py and UR5 environment for Nova API integration and UI improvements
Georg
6aec869
- Added functionality to check for Nova credentials and determine their presence for default toggle state.
- Updated the UR5 environment to support Nova API configuration, including methods for enabling/disabling Nova integration and handling state synchronization.
- Enhanced the UI to reflect Nova connection status with improved visual indicators and connection state management.
- Implemented automatic toggling of Nova mode based on user interactions and connection status, improving user experience during teleoperation.
- Refined the handling of trainer connection status in the UI, providing real-time feedback on trainer connectivity.
Add environment loading utility and integrate into Nova API and Jogger
Georg
07bb707
- Introduced a new utility module for loading environment variables from `.env.local` to streamline configuration management.
- Integrated the environment loading functionality into the Nova API and Jogger modules to ensure proper configuration during runtime.
- Updated the UR5 environment to utilize the loaded home pose for joint initialization, enhancing simulation consistency.
Refactor UR5 environment methods for object orientation and positioning
Georg
d428055
- Renamed method for generating T-object orientation to clarify its purpose.
- Removed unused target body quaternion setting method to streamline the code.
- Updated randomization logic to incorporate the new orientation method for improved object placement.
Add MUJOCO_LOG.TXT for simulation warnings and update UR5 environment for target positioning
Georg
a625bfc
- Created MUJOCO_LOG.TXT to log simulation warnings related to NaN and Inf values in QACC, indicating instability.
- Updated UR5 environment constants for table dimensions and object heights to improve target positioning and alignment with the end effector.
- Adjusted the spawn height for objects and targets in the UR5 environment to ensure proper placement on the table surface.
Update UR5 environment and mujoco_server.py for enhanced target positioning and randomization
Georg
3c5e479
- Adjusted camera overlay presets in mujoco_server.py for improved visualization.
- Introduced new methods in UR5 environment to randomize target object positions and orientations, enhancing simulation variability.
- Updated target height offset logic for better alignment with the end effector's position.
- Added constants for table dimensions to facilitate object placement within defined boundaries.
Implement episode control and enhance UR5 environment dynamics
Georg
c49a482
- Added episode control state management in mujoco_server.py to handle termination and truncation requests from the UI.
- Introduced functions to signal and consume episode control flags, allowing for better integration with the training process.
- Enhanced the UR5 environment's reward calculation by incorporating orientation penalties based on object alignment, improving target positioning accuracy.
- Updated the scene configuration for the UR5 model to include improved physical properties for better simulation behavior.
Update mujoco_server.py and ur5_env.py for improved teleoperation and target positioning
Georg
05fc5ca
- Adjusted the velocity range in the UI for cartesian translation, changing the default from 50 mm/s to 5 mm/s and modifying the input range for finer control.
- Implemented a repeat mechanism for teleoperation commands to enhance responsiveness during key presses.
- Updated the target positioning logic in the UR5 environment to consistently raise the target position by 0.3 meters, ensuring better alignment with the end effector's height.
Enhance mujoco_server.py and documentation with camera and scene updates
Georg
e636f34
- Updated the UR5 overlay camera configuration to include a new look target and adjusted offsets for improved visualization.
- Enhanced the simulation loop to support dynamic camera positioning based on site IDs and offsets.
- Added a new endpoint for scheduling robot and scene switches, allowing for automated testing and integration.
- Updated README.md to reflect changes in camera functionality and added instructions for the new switch endpoint.
- Introduced tests for API endpoints, camera streams, and WebSocket interactions to ensure reliability and performance.
Enhance mujoco_server.py with scene management and overlay camera support
Georg
7362afb
- Added functions to discover available scene files for robots and manage overlay camera presets for the UR5 environment.
- Updated the switch_robot function to allow scene selection when switching robots.
- Implemented broadcasting of teleoperation commands to connected trainer clients.
- Enhanced WebSocket handling to support trainer notifications and manage multiple WebSocket clients.
- Updated README.md to document new features, including keyboard teleoperation and metadata endpoints for scene and camera feed information.
Enhance UR5 environment jogging functionality with internal fallback
Georg
d5b839c
- Introduced an internal jogging mechanism for cartesian and joint movements when Nova jogging is unavailable.
- Updated the start_jog method to handle both Nova and internal jogging commands, improving robustness.
- Enhanced stop_jog method to manage both Nova and internal jogging states.
- Modified the step function to apply internal jogging updates to target positions and joint targets, ensuring smooth operation.
Refactor environment configuration and mujoco_server.py for improved Nova API integration
Georg
59beae4
- Removed the NOVA_USE_STATE_STREAM variable from .env.example as it is no longer needed for digital twin mode.
- Introduced a new .env.off.local file for comprehensive Nova API configuration, including instance URL, access token, and robot settings.
- Enhanced mujoco_server.py to support bidirectional control and state synchronization with the Nova API, allowing for real-time interaction while maintaining physics simulation.
- Updated UR5 environment to manage joint positions from Nova, ensuring accurate control and interaction with simulated objects.
Implement Nova API jogging support and enhance UI controls
Georg
a75f112
- Added support for bidirectional jogging control via the Nova API, allowing users to send jogging commands for joint and cartesian movements.
- Enhanced mujoco_server.py to handle new jogging commands and integrate with the Nova API for real-time control.
- Updated the UR5 environment to initialize and manage the NovaJogger for handling jogging operations.
- Improved the UI to include jogging controls for translation and rotation, providing users with intuitive interaction options.
- Enhanced README.md to document the new jogging features and usage modes, including Digital Twin, Nova IK, and Hybrid modes.
- Introduced test scripts for validating Nova API connections and jogging functionality, improving overall reliability and user experience.
Add environment configuration and Nova API integration support
Georg
dcf1b21
- Introduced .env.example and .env.local files for Nova API configuration, allowing users to set up their instance details easily.
- Enhanced mujoco_server.py to load environment variables for Nova API integration, enabling state streaming and inverse kinematics.
- Updated UR5 environment to conditionally handle gripper presence and control based on configuration.
- Added example scripts for discovering Nova API configuration and testing connections, improving user onboarding.
- Enhanced README.md to document the new Nova API integration features and setup instructions, including troubleshooting tips.
Add Nova API integration to UR5 environment
Georg
4edf6f7
- Introduced a new Nova API client for enhanced control and state streaming in the UR5 environment.
- Updated UR5 environment to support optional integration with Nova API for inverse kinematics and state synchronization.
- Enhanced environment initialization to configure Nova API settings from environment variables or a provided dictionary.
- Modified joint target computation to utilize Nova's inverse kinematics when enabled, with fallback to local IK.
- Implemented state synchronization with Nova API to update joint positions and control states based on external inputs.
- Improved gripper control logic to conditionally apply settings based on the presence of a gripper.
Update T-push tool geometry in scene_t_push.xml
Georg
c8e5c67
- Replaced the existing push stick geometry with a cylindrical design for the T-push task.
- Adjusted the position and size parameters of the new push stick to enhance task performance.
- Removed the previous capsule geometry definition to streamline the model.
Enhance mujoco_server.py and UR5 environment for new UR5e T-Push scene support
Georg
436f91f
- Added support for a new UR5e T-Push scene, including environment initialization and task reward calculation.
- Updated robot switching logic to accommodate the new robot type and scene.
- Enhanced WebSocket API to handle gym-style interactions for the new scene, including reset and step functionalities.
- Modified UI elements to reflect the addition of the UR5e T-Push robot and its specific controls.
- Updated README.md to document the new gym-style WebSocket API and example payloads for the T-Push scene.
Refactor UR5 environment to enhance target setting and joint control
- Updated target position and orientation initialization to use forward kinematics from the home pose.
- Enhanced `set_target` and `set_target_orientation` methods to include an option for updating joint targets via inverse kinematics.
- Modified `set_joint_positions` to optionally update the IK target based on the new end-effector pose.
- Improved the reset logic to compute the target from the end-effector's position and orientation after initialization.
Update UR5e robot configurations and UI for gripper control and home position
- Adjusted gripper control values in mujoco_server.py and UR5 environment to align with the Robotiq 2F-85 specifications (0=open, 255=closed).
- Updated the default home position for the UR5e to reflect the official MuJoCo Menagerie configuration.
- Enhanced UI elements for joint sliders and gripper display to synchronize with actual positions and improve user experience.
- Added functionality to restore saved robot selections from local storage in the UI.
Enhance UR5e robot control with orientation tracking and UI updates
- Added support for end-effector orientation control in the UR5e robot, allowing for 6-DOF inverse kinematics.
- Implemented new WebSocket messages for setting target orientation and toggling orientation usage.
- Updated mujoco_server.py to broadcast end-effector orientation and target orientation in state messages.
- Enhanced the UI to include orientation sliders and display for end-effector orientation.
- Refined README.md to document new features, including orientation control and updated JSON message structures.
Add UR5e robot support with inverse kinematics and environment setup
- Introduced a new UR5e robot model with 6 degrees of freedom and a Robotiq 2F-85 gripper.
- Implemented an inverse kinematics controller for the UR5e to compute joint positions based on target poses.
- Created a new Gymnasium environment for the UR5e, enabling simulation and control.
- Updated README.md to include UR5e specifications, control modes, and example JSON state data.
- Added various model assets and configurations for the UR5e robot, enhancing simulation capabilities.