91³Ô¹ÏÍø

Watch CBS News

Wounded Boston Dynamics robot may have saved "real dog" or officer from shooting

HYANNIS - A Boston Dynamics robot dog shot by a suspect three times earlier this month may have saved a "real dog" or human officer from harm, Massachusetts State Police said.

Bomb squad troopers had deployed the "SPOT" robot, once known for its viral dancing videos, on March 6 inside a home on St. Francis Circle in Hyannis, where police say suspect Justin Moreira had shot at officers with a rifle after holding his mother at knifepoint.

The robot dog named "Roscoe" was used to check the house, and encountered Moreira as he emerged from a bedroom with a rifle. Police said Moreira knocked the robot over and went upstairs, but Roscoe was able to use a "self-righting function" to get back up and follow him.

Robot dog shot with rifle

"When the suspect realized, with apparent surprise, that Roscoe was behind him on the stairs, he again knocked the robot over and then raised his rifle in the Roscoe's direction," State Police said in a statement. "The robot suddenly lost communications."

Moreira also shot at another bomb squad robot before the team was able to pump tear gas into the home and get him to surrender without anyone getting hurt, police said.

Troopers who went to recover Roscoe found that the robot dog had been shot three times and was no longer able to work. 

ROBOT DOG 'ROSCOE' TAKES BULLETS FOR HIS HUMAN LAW ENFORCEMENT PARTNERS IN BARNSTABLE INCIDENT At noon on Wednesday,...

Posted by on 

"Roscoe" returned to Boston Dynamics

Police said the incident demonstrates how valuable the robots are in a dangerous situation.

"In addition to providing critically important room clearance and situational awareness capabilities, the insertion of Roscoe into the suspect residence prevented the need, at that stage of response, from inserting human operators, and may have prevented a police officer from being involved in an exchange of gunfire," State Police said.

Police brought the robot back to Boston Dynamics for repairs. The company is interested in doing further research on Roscoe and will get the bomb squad a new robot dog, according to police.   

This is the first time a Spot robot has been shot, a Boston Dynamics spokesperson told WBZ-TV.

"We are relieved that the only casualty that day was our robot," the company said in a statement. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });