- Run ElevenLabs conversational agents on your robots — design agents in ElevenLabs, link them in Tritium UI, and assign them to your fleet. See the ElevenLabs agents guide for setup instructions.
- Connect Mesmer Desktop Gen 3 robots to WiFi using the Tritium Connect mobile app and the robot's Bluetooth pairing button. See Connect over Wi‑Fi (Desktop Gen 3 only) for setup instructions.
- Multi-speaker detection — For Gen 3 robots, the robot can identify which person is speaking in a group
- Video capture can use a higher-resolution sensor feed while publishing at a lower resolution, improving field of view without increasing bandwidth
- Updated out-of-box and not-connected animations for Desktop Gen 2 and Gen 3 robots, including network-setup flows
- Fixed audio device host crashing when a device entry was missing from the device list
- Fixed shutdown animation showing a sad face with open eyes
- Fixed duplicated script-implemented devices appearing in the Device UI Selected Parameters panel
- Fixed Lidar Monitor failing on startup and incorrectly treating the lidar field as breached until the script was restarted
- Fixed rehome occasionally getting stuck in a loop after motor boards briefly disconnect and reconnect
- Update behringer script to use the new hifi pulseaudio profile
- Refresh devices on PulseAudio restart
- Use voice_id in role instead of name
- For audio monitoring library, show the name of the script that called it
- Parse voice_id from schema instead of deprecated speaker_id
- Use voice id instead of name for voice definitions
- If a control property is acquired before the linked parameter device has been initialized no data ever arrives.
- Tool calls with triggers were not formatted correctly
- Alternate voices now match available voices from tts node
- Legacy persona scripts should use new voice_id
- Change clear_interaction_history to clear_chat_history to avoid misfires
- XMOS script crashing when xmos device goes offline
- Error on updating device components if name missing
- Fade Head LEDS when changing colour
- Exit Lidars config if no configured sensors
- Use vidcap sensor library for image capture node
- Math cleaner race condition fix
- Fixed socket not closing VideoSensor library
- Fixed a memory leak in the previous Scarthgap release
- Restart the lidar at startup to workaround suspected vendor firmware bug
- Queue up to 1000 alarms until gateway is connected to the cloud
- Return MAC address for network interfaces
- Loopable animations
- Voice id now removed
- Stop chat controller if not in active mode
- Prevent the robot getting confused about its current chat mode
- robot should respond more in conference mode
- don't generate facial expression for thinking sounds
- Audio device fixes
- Don't ask user for RGB values when changing head colour
- Print error logs when lidar connection cannot be established
- Wait for role to update before responding to role change
- convert escaped unicode characters to utf-8
- Math formulas in accessibility tab
- Out of Box demo experience for Desktop Ameca and Ami robots
- Voice command to switch roles
- Robot responds in the language set in the role for Visual Context ability calls
- Exception in Lidar Monitor if lidar is breached immediatly on startup
- Undefined attribute in process_video due to async on_start
- Adjust conversation mode switching prompt
- Stop current animation if startup script is stopped
- LiDAR doesn’t crash when network unreliable
- Interaction timing script improvements
- Fix Ami pronunciation in Amazon Polly TTS
- Cancel visemes on interruption
- Enhanced default parameters for the xmos xvf3500
- Introduction of a new unified xmos device host
- Actions now determined by role using the Roles Abilities tab
- Support for the new forearm board in shoulder and arms toggle
- The "do joke" action is now replaced by Roles personality-driven responses
- Conversation topics are now guided by the Roles personality
- Voice ID can now be retrieved from role abilities instead of the Speech Recognition config
- Updated OpenAI TTS prompt for improved emotive performance
- Enhanced error handling for improved device availability
- Update expressions so they are improved for each robot model
- Fixed updates to the language voice map on role changes
- Lidar state is now accessible to the LLM
- Corrected the handling of play_animation to ensure proper awaiting
- Removed power monitoring in xmos monitor
- Reintroduced the echo cancellation script
- Update Role when
ChatController.py is not running
- Added support for Roles UI (now Agents)
- Add a new web search action
- Utilize non-blurry frames instead of video capture frames
- Keep track of active gaze target
- Apply eyelid offset for certain skin types
- Make stop_sequence() async
- Prevent robot from speaking before llm triggered animation finishes
- Proximity recoil error fix
- Requesting multiple animations now play in correct order
- Handle language detection in TTS for similar languages appropriately
- Respond to openAI content filter error
- Update default languages in personas to be English, French, Portuguese, Spanish, German and Russian
- Improved prompting for some actions
- Improved mode switching
- External Audio monitor script improvements
- Clean up Configuration scripts
- Ensure mix pose identifiers are unique
- Handle Norwegian language code depending on TTS engine
- Fix TTS active count from becoming negative
- Fix misspelt Korean language code in personas
- Fix bug in microexpressions
- Fix object detections lingering on sensors page
- tts_client refactor and tts improvements
- Tidy up state engine listeners on versions of Tritium that support it
- Remove unreferenced default configuration values from Default/Config folder
- Optimisation in Eye_Look_At, remove unused bid in Neck_Look_At
- Error handling for face matching
- Fixed clicking on faces in telepresence to look at them
- Fixed 'private targets' for body look at not responding to real-time changes of look at target’s positions.
- Fixed external audio source sometimes not initialising
- Move timed interaction refresh to Config
- Microphone monitor improvements
- Head LED colors now react to mode switches more reliably
- Voice ID improvements including saving voice ID on robot
- Improve LLM exception handling
- Rename Chest Mic to Front Mic
- Updating silent mode
- Action description and persona tweaks
- Don’t make interruption LLM calls if DISABLE_ASR_WHILE_SPEAKING is set
- Fix type error when speech is None
- Lower logging level of recursively_call_llm to INFO
- Deprecate change_personality action
- Proximity recoil feature for when a person enters a predefined proximity threshold, the robot's programming triggers alean-back motion.
- New Feature to add topics of conversation to the persona
- Action Building feature for dynamically adjustable actions
- Adding scripts for external audio support
- Added temporary voice identification when
voice_id is set to true within the Speech Recognition configuration.
- Persona and action description updates
- Expose more LookAt settings
- Improved silent mode
- Added action recursion limit to prevent infinite loops
- Exposing CHOSEN_TTS_VOICE within the Chat Config
- Improved error reporting
- Fix error from very fast start/restart of XMOSMonitor
- Endless look around fix
- Try to reconnect Service Proxy LLM on network error
- Fix Torso brake not recovering after VMot toggle
- Handle cancelling functions properly
- Interrupting speech is now checked to be relevant or worth responding to before being interrupted (more information here).
- Added
**Timed_Interaction_Refresh.py** activity which enables the clearing of interaction history after a period of inactivity
- Updated personality and action descriptions.
- Removed older gpt models like
GPT-3.5-turbo-0613.
- Updated fan curves and control scripts.
- Moved drivers from HB3 to the System folder.
- Added actions to the configuration files for easier personalisation.
- Added
logit_bias for gpt backend params.
- Renamed normal and sleep mode to interaction and silent mode respectively.
- Tuned down the robot's lookaround behaviour for a calmer appearance.
- The default robot voice resets upon stopping the chat controller.
- TTS now stops when stopping the chat controller.
- Handled exceptions for SP_LLM tasks.
- Rejects empty speech items if received by TTS.
- Fixed a bug where TTS knows languages.
- Supporting function factories
- Adding an intensity prompt for showing expressions
- Adding micro expressions into neutral facial expressions
- Core Persona improvements
- Use seed instead of temperature for LLM models
- Conversational interruption improvements
- Include GPT model within personalities
- Use scripts-wide state flag for whether TTS is active, instead of local flag in Do_TTS.py
- Only unset the scripts-wide flag for TTS being active when tts item has finished (previously it was also unset during interruption resulting in Ameca interrupting itself twice in a row)
- Exclude polly voices from voice changing function
- Removing functions from normal_mode that aren't production ready
- SYS_Startup_State should run in all modes to monitor if we should be in startup state
- Check for empty TTS message before sending to node
- Ignore empty msg in streamToTTS
- Don’t break doTTS if item does not exist
- Start / stop llm client with HB3_Controller