PERCEBER
Este repositório contém o SDK público da FTC para a temporada de competição INTO THE DEEP (2024-2025).
Bem-vindo!
Este repositório GitHub contém o código-fonte usado para construir um aplicativo Android para controlar um robô de competição do FIRST Tech Challenge. Para usar este SDK, baixe/clone todo o projeto em seu computador local.
Requisitos
Para usar este projeto do Android Studio, você precisará do Android Studio 2021.2 (codinome Chipmunk) ou posterior.
Para programar seu robô em Blocks ou OnBot Java, você não precisa do Android Studio.
Começando
Se você é novo em robótica ou no FIRST Tech Challenge, considere revisar o Tutorial de blocos FTC para se familiarizar com como usar o sistema de controle:
Tutorial online de blocos FTC
Mesmo se você for um programador Java avançado, é útil começar com o tutorial FTC Blocks e depois migrar para a OnBot Java Tool ou para o Android Studio.
Baixando o Projeto
Se você é um programador do Android Studio, existem várias maneiras de baixar este repositório. Observe que se você usar o Blocks ou OnBot Java Tool para programar seu robô, não será necessário baixar este repositório.
- Se você for um usuário git, poderá clonar a versão mais atual do repositório:
clone do git https://github.com/FIRST-Tech-Challenge/FtcRobotController.git
Ou, se preferir, você pode usar o botão “Baixar Zip” disponível na página principal do repositório. Baixar o projeto como um arquivo .ZIP manterá o tamanho do download gerenciável.
Você também pode baixar a pasta do projeto (como um arquivo .zip ou .tar.gz) na subseção Downloads da página Releases deste repositório.
A página Lançamentos também contém APKs pré-construídos.
Depois de baixar e descompactar (se necessário) sua pasta, você pode usar o Android Studio para importar a pasta ("Importar projeto (Eclipse ADT, Gradle, etc.)").
Obtendo ajuda
Documentação do usuário e tutoriais
A FIRST mantém documentação online com informações e tutoriais sobre como usar o software FIRST Tech Challenge e o sistema de controle do robô. Você pode acessar esta documentação usando o seguinte link:
Documentação do PRIMEIRO Desafio Técnico
Observe que a documentação online é um documento “perene” que está em constante atualização e edição. Ele contém as informações mais atuais sobre o software e sistema de controle do FIRST Tech Challenge.
Material de referência Javadoc
A documentação de referência Javadoc para o SDK FTC já está disponível online. Clique no link a seguir para visualizar a documentação Javadoc do FTC SDK como um site ativo:
Documentação Javadoc da FTC
Fórum de usuários on-line
Para questões técnicas relacionadas ao Sistema de Controle ou ao SDK da FTC, visite o site da comunidade FIRST Tech Challenge:
Comunidade do PRIMEIRO Desafio Técnico
Exemplos de OpModes
Este projeto contém uma grande seleção de exemplos de OpModes (exemplos de código de robô) que podem ser recortados e colados em sua pasta /teamcode para serem usados como estão ou modificados para atender às necessidades de sua equipe.
Pasta de amostras: /FtcRobotController/src/main/java/org/firstinspires/ftc/robotcontroller/external/samples
O arquivo readme.md localizado na pasta /TeamCode/src/main/java/org/firstinspires/ftc/teamcode contém uma explicação da convenção de nomenclatura de amostra e instruções sobre como copiá-los para seu próprio espaço de projeto.
Liberar informações
Versão 10.1 (20240919-122750)
Melhorias
- Adiciona novos
VisionProcessor
s baseados em OpenCV (que podem ser anexados a um VisionPortal em Java ou Blocks) para ajudar as equipes a implementar o processamento de cores por meio de visão computacional no jogo INTO THE DEEP-
ColorBlobLocatorProcessor
implementa a detecção de "blob" de cores OpenCV. Um novo programa de amostra ConceptVisionColorLocator
demonstra seu uso.- É oferecida uma escolha entre faixas de cores predefinidas ou a criação de uma faixa personalizada no espaço de cores RGB, HSV ou YCrCb
- A capacidade é fornecida para restringir a detecção a uma região de interesse específica na tela
- São fornecidas funções para aplicar metamorfose de erosão/dilatação à máscara de limite
- São fornecidas funções para classificar e filtrar os dados retornados
-
PredominantColorProcessor
permite usar uma região da câmera como um “sensor de cores de longo alcance” para determinar a cor predominante daquela região. Um novo programa de amostra ConceptVisionColorSensor
demonstra seu uso.- A cor predominante determinada é selecionada a partir de um conjunto discreto de "amostras" de cores, semelhante ao sensor de cores MINDSTORMS NXT
- A documentação sobre este recurso de processamento de cores pode ser encontrada aqui: https://ftc-docs.firstinspires.org/color-processing
- Adicionados programas de amostra Blocks para sensores de cores: RobotAutoDriveToLine e SensorColor.
- Auto-inspeção atualizada para identificar versões de software RC/DS incompatíveis como um "cuidado" em vez de uma "falha".
Correções de bugs
- Corrige a regressão de conversão AngularVelocity
Versão 10.0 (20240828-111152)
Quebrando mudanças
- As classes Java e os blocos para detecção de objetos do TensorFlow foram removidos.
-
AngularVelocity.unit
que era do tipo AngleUnit
foi renomeado para AngularVelocity.angleUnit
do tipo UnnormalizedAngleUnit
Melhorias
- Amostra do indicador digital REV foi adicionada - ConceptRevLED
- Adiciona suporte para o Sparkfun QWIIC LED Stick
- Para conectá-lo diretamente, você precisa deste cabo
- Adiciona ConceptLEDStick OpMode
- Adiciona blocos para as cores preto, azul, ciano, dkgray, cinza, verde, ltgray, magenta, vermelho, branco e amarelo.
- Adiciona um bloco "avaliar mas ignorar o resultado" que executa o bloco conectado e ignora o resultado. Permite chamar uma função e ignorar o valor de retorno.
- Adiciona driver I2C para telêmetro sonar Maxbotix Maxsonar I2CXL
- Adiciona blocos para setPwmEnable, setPwmDisable e isPwmEnabled para servos e servos CR.
- No editor de blocos: um n no campo de comentário da anotação ExportToBlocks é exibido como uma quebra de linha.
- Telemetria tem novo método setNumDecimalPlaces
- A telemetria agora formata duplos e flutuantes (não dentro de objetos, apenas sozinhos)
- Adiciona suporte para Limelight 3A.
- Adiciona suporte inicial para o REV Servo Hub
- Tanto o Controlador do Robô quanto a Estação do Motorista precisam ser atualizados para a versão 10.0 para que os Servo Hubs possam ser configurados como Servo Hubs. Se o aplicativo em qualquer um dos dispositivos estiver desatualizado, o Servo Hub aparecerá como um Expansion Hub e algumas funcionalidades não funcionarão conforme o esperado. Você deve esperar para criar uma configuração que inclua um Servo Hub até que os aplicativos Driver Station e Robot Controller tenham sido atualizados para a versão 10.0.
- Atualizar o firmware do Servo Hub e alterar seu endereço só pode ser feito usando o REV Hardware Client neste momento
- Adiciona suporte para o REV 9-Axis IMU (REV-31-3332)
- O REV 9-Axis IMU é suportado apenas pela interface Universal IMU
- Adiciona a classe Java
Rev9AxisImuOrientationOnRobot
. - Se você substituir mentalmente a porta I2C deste IMU pelas portas USB do Control Hub,
RevHubOrientationOnRobot
também é compatível com este sensor - Adiciona blocos para Rev9AxisImuOrientationOnRobot, incluindo RevHubImuOrientationOnRobot.xyzOrientation e RevHubImuOrientationOnRobot.zyxOrientation.
- Adiciona amostras de blocos SensorRev9AxisIMUOrthogonal e SensorRev9AxisIMUNonOrthogonal.
- Melhora o suporte de blocos para RevHubImuOrientationOnRobot.
- Adiciona blocos para RevHubImuOrientationOnRobot.xyzOrientation e RevHubImuOrientationOnRobot.zyxOrientation.
- Adiciona amostras de blocos SensorHubIMUOrthogonal (substitui SensorIMU) e SensorHubIMUNonOrthogonal.
- Atualiza as versões EasyOpenCV, AprilTag, OpenCV e
libjpeg-turbo
- Adiciona blocos para máximo e mínimo que levam dois números.
- Adiciona blocos OpModes ConceptRevSPARKMini, RobotAutoDriveByEncoder, RobotAutoDriveByGyro, RobotAutoDriveByTime, RobotAutoDriveToAprilTagOmni e RobotAutoDriveToAprilTagTank.
- Dois OpModes com o mesmo nome agora são renomeados automaticamente com o nome seguido por um "-" e o nome da classe permitindo que ambos estejam no dispositivo.
- Mostra o nome da configuração ativa na página Gerenciar do Console do Controlador do Robô
- Biblioteca AprilTag atualizada para INTO THE DEEP. Notavelmente,
getCurrentGameTagLibrary()
agora retorna tags INTO THE DEEP. - Adiciona blocos para Telemetry.setMsTransmissionInterval e Telemetry.getMsTransmissionInterval.
- Adiciona amostra de blocos SensorOctoQuad.
Correções de bugs
- Corrige um bug onde os blocos RevBlinkinLedDriver estavam em Atuadores na caixa de ferramentas do editor de blocos. Eles agora são Outros Dispositivos.
- Corrige um bug onde
Exception
lançadas no código do usuário após uma parada ser solicitada pela Driver Station seriam consumidas silenciosamente - Corrigido um bug onde se você solicitasse
AngularVelocity
em uma unidade diferente daquela na qual o dispositivo relatou, isso seria normalizado entre -PI e PI para radianos e -180 e 180 para graus.
Versão 9.2 (20240701-085519)
Notas importantes
- As classes Java e os blocos para detecção de objetos do TensorFlow foram descontinuados e serão removidos na versão 10.0.
- As amostras que usam o TensorFlow Object Detection foram removidas.
Melhorias
- Adiciona texto explicativo aos itens reprovados nas atividades de inspeção. Para visualizar o texto explicativo, toque no ícone de aviso vermelho de um item com falha.
- No editor de blocos: adicionado um novo tipo de bloco de conjunto de variáveis que define a variável e também retorna o novo valor.
- Altera a forma como os controles da câmera se comportam para uma SwitchableCamera. Agora, cada método (como getExposure, getMinExposure, getMaxExposure, setExposure para ExposureControl) atua na câmera atualmente ativa.
- Adiciona suporte para o gamepad compatível com REV USB PS4 (REV-31-2983)
- Adiciona ConceptAprilTagMultiPortal OpMode
- Adiciona suporte para codificador de quadratura OctoQuad e módulo de interface de largura de pulso
- Adiciona a anotação ExportAprilTagLibraryToBlocks que indica que um método estático que retorna uma AprilTagLibrary é exportado para o ambiente de programação Blocks. O bloco correspondente aparecerá na caixa de ferramentas Blocos junto com as bibliotecas de tags integradas.
- Adiciona blocos OpMode ConceptAprilTagOptimizeExposure.
- Adiciona suporte para o sensor de odometria de rastreamento óptico SparkFun.
Correções de bugs
- Corrige #942 onde visionPortal.close() pode causar um IndexOutOfBoundsError.
- Corrige um bug no editor de blocos onde os blocos de função recolhidos mostram um aviso "Blocos recolhidos contêm avisos". quando o OpMode dos Blocos for reaberto.
- Corrige um bug em que o editor de blocos não avisava que você tinha alterações não salvas ao tentar sair. Este bug foi introduzido devido a uma mudança de comportamento no Chrome 119.
- Problema nº 764 – Obter controle de ganho retorna um ponteiro nulo para uma câmera comutável
- Corrige um bug em que a zona morta correta para determinados gamepads não era aplicada quando os recursos avançados de gamepad estavam ativados
Versão 9.1 (20240215-115542)
Melhorias
- Corrige problema com Blocos: caso o usuário feche o balão de aviso de um Bloco, ele ainda será fechado na próxima vez que o projeto for aberto no editor de Blocos.
- No editor de Blocos, um alerta de dispositivos de hardware ausentes não é mostrado se todos os Blocos que utilizam os dispositivos de hardware ausentes estiverem desabilitados.
- Adiciona blocos para suportar a comparação de valores de propriedade CRServo.Direction, DCMotor.Direction, DCMotor.Mode, DCMotor.ZeroPowerBehavior, DigitalChannel.Mode, GyroSensor.HeadingMode, IrSeekerSensor.Mode e Servo.Direction, ao bloco enum correspondente.
- Melhora a importação automática do OnBotJava para importar classes corretamente quando usado em determinadas situações.
- Melhora o preenchimento automático do OnBotJava para fornecer melhores opções de preenchimento na maioria dos casos.
- Isso corrige um problema em que o preenchimento automático falharia se um método com dois ou mais parâmetros formais fosse definido.
- No OnBotJava, o suporte à dobragem de código foi adicionado para expandir e recolher seções de código
- No OnBotJava, o cabeçalho de copyright agora é automaticamente recolhido ao carregar novos arquivos
- Para todos os exemplos de Blocks OpMode, os comentários introdutórios foram movidos para o balão de comentários RunOpMode.
- O comando Limpar blocos no editor de blocos agora posiciona os blocos de função para que seus balões de comentários não se sobreponham a outros blocos de função.
- Adicionado bloco OpMode de exemplo SensorTouch.
- Adicionada amostra Java OpMode SensorDigitalTouch.
- Várias melhorias no VisionPortal
- Adiciona opção para controlar se o fluxo é iniciado automaticamente após uma chamada
.build()
em um VisionPortal Builder - Adiciona opção para controlar se a sobreposição de estatísticas de processamento de visão é renderizada ou não
- VisionPortals agora implementam a interface
CameraStreamSource
, permitindo que usuários multiportais selecionem qual portal é roteado para o DS no INIT chamando CameraStreamServer.getInstance().setSource(visionPortal). Pode ser selecionado via gamepad, entre sessões de Camera Stream. - Adicionada opção ao
AprilTagProcessor
para suprimir avisos de calibração - Melhora os avisos de calibração da câmera
- Se uma calibração for dimensionada, a resolução a partir da qual ela foi dimensionada será listada
- Se existirem calibrações com a proporção errada, as resoluções calibradas serão listadas
- Corrige a condição de corrida que causava falha no aplicativo ao chamar
stopStreaming()
imediatamente seguido por close()
em um VisionPortal - Corrige IllegalStateException ao chamar
stopStreaming()
imediatamente após construir um VisionPortal - Adicionadas contrapartes FTC Blocks aos novos métodos Java:
- VisionPortal.Builder.setAutoStartStreamOnBuild
- VisionPortal.Builder.setShowStatsOverlay
- AprilTagProcessor.Builder.setSuppressCalibrationWarnings
- CameraStreamServer.setSource
Correções de bugs
- Corrige um problema em que OnBotJava não aplica configurações de tamanho de fonte ao editor.
- Atualiza a dependência do EasyOpenCV para v1.7.1
- Corrige a incapacidade de usar EasyOpenCV CameraFactory no OnBotJava
- Corrige todo o travamento do aplicativo RC quando o pipeline do usuário lança uma exceção
- Corrige todo o travamento do aplicativo RC quando o anotador de tela do usuário lança uma exceção
- Use a exibição moderna do stacktrace ao lidar com exceções do usuário em vez da mensagem de telemetria ESTOP herdada
Versão 9.0.1 (20230929-083754)
Melhorias
- Atualiza as amostras AprilTag para incluir dizimação e comentários adicionais. Também corrige avisos enganosos de ID de tag
- Aumenta o tamanho máximo dos comentários in-line do Blocks para 140 caracteres
- Adiciona amostra de blocos BasicOmniOpMode.
- Quaternions de orientação AprilTag da biblioteca CENTERSTAGE atualizada
- Amostra Java ConceptTensorFlowObjectDetection.java atualizada para incluir elementos ausentes necessários para suporte ao modelo customizado.
Correções de bugs
- Corrige um problema em que, após 1º de outubro, a Driver Station reportaria como obsoleta na v9.0 e solicitaria que o usuário atualizasse.
Versão 9.0 (20230830-154348)
Quebrando mudanças
- Remove Vuforia
- Os campos nos objetos
AprilTagDetection
e AprilTagPose(ftc/raw)
agora são final
- O método construtor VisionPortal
setCameraMonitorViewId()
foi renomeado para setLiveViewContainerId()
e enableCameraMonitoring()
foi renomeado para enableLiveView()
Melhorias
- Adiciona suporte para o sensor de visão DFRobot HuskyLens.
- As equipes de blocos agora podem realizar calibração de webcam.
- Adicionado um bloco para System.currentTimeMillis (em Utilitários/Tempo)
- Adicionado um bloco para VisionPortal.saveNextFrameRaw (em Vision/VisionPortal)
- Adicionado um novo OpMode de blocos de amostra chamado UtilityCameraFrameCapture.
- A amostra RobotDriveByGyro foi atualizada para usar a nova interface IMU universal. Agora suporta ambos os tipos de IMU.
- Removidos alguns blocos ElapsedTime propensos a erros da caixa de ferramentas do editor de blocos. Esta não é uma mudança significativa: OpModes de blocos antigos que usam esses blocos ainda funcionarão, tanto no editor de blocos quanto em tempo de execução.
- Padroniza no formulário "OpMode" o termo OpMode.
- A maneira preferida de se referir aos OpModes que estendem especificamente
LinearOpMode
(incluindo OpModes de blocos) é "opMode linear". - A maneira preferida de se referir aos OpModes que estendem especificamente
OpMode
diretamente é "OpMode iterativo".
- Revisa os comentários Javadoc
OpMode
e LinearOpMode
para serem mais fáceis de ler e incluir mais detalhes. - Faz pequenas melhorias em amostras Java
- Os comentários Javadoc em exemplos que poderiam ser mal renderizados no Android Studio foram convertidos em comentários padrão de várias linhas
- A consistência entre as amostras foi melhorada
- O exemplo SensorDigitalTouch foi substituído por um novo exemplo SensorTouch que usa a interface
TouchSensor
em vez de DigitalChannel
. - As amostras ConceptCompassCalibration, SensorMRCompass e SensorMRIRSeeker foram excluídas, pois não são úteis para competições FTC modernas.
Correções de bugs
- Corrige um bug que impedia que os gamepads do PlayStation fossem usados no modo Bluetooth. O Bluetooth NÃO é legal para competição, mas pode ser útil para permitir que um dispositivo DS seja usado durante o carregamento ou em um evento de divulgação.
- Corrige um bug em que o valor da data de modificação do Blocks OpMode pode mudar para 31 de dezembro de 1969, se o Control Hub for reinicializado enquanto o Blocks OpMode estiver sendo editado.
- Corrige o recurso de pré-seleção automática do TeleOp (quebrou na versão 8.2)
- Corrige um bug em que passar um número inteiro como 123 para o bloco Telemetry.addData que recebe um número aparece como 123,0 na telemetria.
- Corrige problemas de preenchimento automático do OnBotJava:
- O preenchimento automático forneceria incorretamente valores para a classe atual ao preencher automaticamente uma variável local
- O preenchimento automático
hardwareMap
incluiria incorretamente entradas de classe lambda
- Corrige o OnBotJava que não importa classes automaticamente.
- Corrige guias OnBotJava que não fecham quando seu arquivo é excluído.
- Corrige uma atualização da visualização do projeto que não acontecia quando um arquivo é renomeado no OnBotJava.
- Corrige o item de menu de contexto "Download" para bibliotecas externas na interface OnBotJava.
- Corrige o problema em que a telemetria da Driver Station congelava intermitentemente quando definida para o modo Monospace.
- Corrige a regressão de desempenho para determinadas operações do REV Hub introduzidas na versão 8.2.
- Corrige a lógica de comparação TagID em exemplos DriveToTag.
Versão 8.2 (20230707-131020)
Quebrando mudanças
- OpModes não lineares (iterativos) não têm mais permissão para manipular atuadores em seu método
stop()
. As tentativas de fazer isso serão ignoradas e registradas.- Quando um OpMode tenta manipular ilegalmente um atuador, o Controlador do Robô imprimirá uma mensagem de log incluindo o texto
CANCELLED_FOR_SAFETY
. - Além disso, LinearOpModes não são mais capazes de recuperar a capacidade de manipular atuadores removendo a interrupção de seu thread ou usando outro thread.
- Remove o suporte para Android versão 6.0 (Marshmallow). A minSdkVersion agora é 24.
- Aumenta a versão Robocol.
- Isso significa que um Controlador de Robô ou Estação de Piloto 8.2 ou posterior não será capaz de se comunicar com uma Estação de Piloto ou Controlador de Robô 8.1 ou anterior.
- Se você esquecer de atualizar os dois aplicativos ao mesmo tempo, uma mensagem de erro será exibida explicando qual aplicativo é mais antigo e deve ser atualizado.
- FTC_FieldCoordinateSystemDefinition.pdf foi movido. Ele ainda está no histórico do git, mas foi removido do instantâneo do git correspondente à tag 8.2. A versão oficial agora está disponível no Field Coordinate System.
-
LynxUsbDevice.addConfiguredModule()
e LynxUsbDevice.getConfiguredModule()
foram substituídos por LynxUsbDevice.getOrAddModule()
. - Blocos antigos para Vuforia e TensorFlow Object Detection estão obsoletos e foram removidos da caixa de ferramentas do editor de blocos. Os OpModes de blocos existentes que contêm os antigos blocos para Vuforia ou TensorFlow Object Detection podem ser abertos no editor de blocos, mas executá-los não funcionará.
Novos recursos
- Adiciona nova API
VisionPortal
para visão computacional- Esta API pode estar sujeita a alterações para o lançamento final!
- Várias novas amostras adicionadas.
- Adiciona suporte para detecção de AprilTags.
-
VisionPortal
é o novo ponto de entrada para processamento AprilTag e TFOD. - Vuforia será removido em uma versão futura.
- Dependências do TensorFlow atualizadas.
- Adicionado suporte para controles de câmera de webcam em blocos.
- A caixa de ferramentas do editor Blocks agora possui uma categoria Visão, diretamente acima da categoria Utilitários.
- A documentação relacionada para tecnologias associadas pode ser encontrada em
- Introdução à AprilTag
- Guia do SDK AprilTag
- Valores de detecção de AprilTag
- Imagens de teste AprilTag
- Calibração da câmera
- Adiciona suporte Driver Station para gamepads Logitech Dual Action e Sony PS5 DualSense.
- Isso não inclui suporte para o gamepad Sony PS5 DualSense Edge.
- Consulte sempre o Manual do Jogo 1 para determinar a legalidade do gamepad em competição.
- Adiciona suporte para streaming de carga útil MJPEG ao driver UVC (rotina de descompressão JPEG externa necessária para uso).
- Mostra uma dica na UI da Driver Station sobre como vincular um gamepad quando os botões são pressionados ou os manípulos são movidos em um gamepad não vinculado.
- Adiciona opção de tela cheia "Camera Stream" na Driver Station.
- O código-fonte OnBotJava é salvo automaticamente como um arquivo ZIP em cada compilação com uma janela contínua das últimas 30 compilações mantidas; permite recuperar o código-fonte de compilações anteriores se o código for acidentalmente excluído ou corrompido.
- Adiciona suporte para alteração de endereços de Hubs de Expansão que não estão conectados diretamente via USB.
- A tela Alteração de endereço do Expansion Hub agora possui um botão Aplicar que altera os endereços sem sair da tela.
- Endereços atribuídos a outros hubs conectados à mesma conexão USB ou Control Hub não podem mais ser selecionados.
- Aumenta o tamanho máximo dos comentários in-line do Blocks para 100 caracteres
- Salva a posição dos balões de comentários de blocos abertos
- Adiciona novas amostras de AprilTag Driving: RobotDriveToAprilTagTank e RobotDriveToAprilTagOmni
- Adiciona amostra para ilustrar a otimização da exposição da câmera para AprilTags: ConceptAprilTagOptimizeExposure
Correções de bugs
- Corrige a tela de inspeção para relatar a versão do aplicativo usando a versão do SDK definida nas bibliotecas em vez da versão especificada em
AndroidManifest.xml
. Isso corrige o caso em que o aplicativo poderia mostrar números de versões correspondentes ao usuário, mas ainda assim indicar que as versões não correspondiam.- Se a versão especificada em
AndroidManifest.xml
não corresponder à versão do SDK, uma entrada de versão do SDK será exibida na página Gerenciar.
- Corrige nenhum erro exibido ao salvar um arquivo de configuração com nomes duplicados da Driver Station.
- Corrige um impasse no driver UVC que se manifestou em OpenFTC/EasyOpenCV#57.
- Corrige um impasse no driver UVC que pode ocorrer ao conectar câmeras a quente.
- Corrige a compatibilidade do driver UVC com a câmera de obturador global Arducam OV9281.
- Corrige a condição de parada de emergência quando ocorre uma compilação OnBotJava com nomes OpMode duplicados.
- Corrige causas conhecidas de logspam "Tentativa de uso de uma instância fechada do LynxModule".
- Corrige o padrão de LED de identificação visual ao configurar Hubs de Expansão conectados via RS-485.
Versão 8.1.1 (20221201-150726)
Esta é uma versão apenas de correção de bug para resolver os quatro problemas a seguir.
- Problema nº 492 - Não é possível criar novos modos de operação de blocos.
- Problema nº 495 – Remova o modificador final do objeto Telemetria do OpMode.
- Problema nº 500 - Alguns dispositivos não podem ser configurados quando o aplicativo Driver Station foi atualizado para 8.1
- Atualizar o aplicativo Robot Controller ou o aplicativo Driver Station para 8.1.1 ou posterior corrigirá esse problema.
- O sensor de toque da Modern Robotics foi configurável como um dispositivo digital. Ele só pode ser usado como um dispositivo analógico.
Versão 8.1 (20221121-115119)
Quebrando mudanças
- Descontinua os campos
OpMode
msStuckDetectInit
, msStuckDetectInitLoop
, msStuckDetectStart
, msStuckDetectLoop
e msStuckDetectStop
.- OpModes não tem mais limite de tempo para
init()
, init_loop()
, start()
ou loop()
, portanto os campos correspondentes a esses métodos não são mais utilizados. -
stop()
ainda tem um limite de tempo, mas agora está codificado para durar 1 segundo e não pode ser alterado usando msStuckDetectStop
.
- Descontinua os métodos
OpMode
internalPreInit()
, internalPostInitLoop()
e internalPostLoop()
.-
OpMode
s iterativos continuarão a chamar esses métodos caso eles tenham sido substituídos. - Esses métodos não serão chamados para
LinearOpMode
s.
- Descontinua (e deixa de respeitar)
DeviceProperties.xmlTagAliases
.
Melhorias
- Adiciona uma nova interface
IMU
para Blocks e Java que pode ser usada tanto com o IMU BNO055 original incluído em todos os Control Hubs e Hubs de Expansão mais antigos, quanto com a nova alternativa BHI260AP IMU.- É possível determinar qual tipo de IMU está em seu Control Hub navegando até a página Gerenciar da interface da web.
- Para aprender como usar a nova interface
IMU
, consulte https://ftc-docs.firstinspires.org/programming_resources/imu/imu.html. A amostra SensorIMU
Blocks também foi atualizada para usar a nova interface IMU
, e as seguintes amostras Java foram adicionadas:-
SensorIMUOrthogonal
- Use este exemplo se o seu REV Hub estiver montado de forma paralela ou perpendicular à parte inferior do seu robô.
-
SensorIMUNonOrthogonal
- Use este exemplo se o seu REV Hub estiver montado no seu robô em qualquer outra orientação
-
ConceptExploringIMUOrientations
- Este OpMode é uma ferramenta para ajudá-lo a entender como funcionam as orientações ortogonais e qual delas se aplica ao seu robô.
- A IMU BHI260AP só pode ser acessada através da nova interface
IMU
. O BNO055 IMU pode ser programado usando a nova interface IMU
, ou você pode continuar a programá-lo usando a antiga interface BNO055IMU
. Se você quiser mudar rapidamente para um novo Control Hub que pode conter o IMU BHI260AP, você deve migrar seu código para usar a nova interface IMU
. - Ao contrário da antiga interface
BNO055IMU
, que só funcionava corretamente quando o REV Hub estava montado no seu robô, a interface IMU
permite especificar a orientação do REV Hub no seu robô. Ele explicará isso e fornecerá sua orientação em um sistema de coordenadas do robô, em vez de um sistema de coordenadas especial para o REV Hub. Como resultado, sua inclinação e guinada serão 0 quando o robô estiver nivelado, em vez de quando o REV Hub estiver nivelado, o que resultará em valores de ângulo de orientação muito mais confiáveis para a maioria das orientações de montagem. - Devido ao novo sistema de coordenadas centrado no robô, os ângulos de inclinação e rotação retornados pela interface
IMU
serão diferentes daqueles retornados pela interface BNO055IMU
. Ao migrar seu código, preste muita atenção à documentação. - Se você calibrou seu BNO055, poderá fornecer esses dados de calibração para a nova interface
IMU
passando uma instância BNO055IMUNew.Parameters
para IMU.initialize()
. - A interface
IMU
também é adequada para implementação por fornecedores terceirizados para IMUs que oferecem suporte ao fornecimento de orientação na forma de um quaternion.
-
OpMode
s iterativos (em oposição a LinearOpMode
s) agora são executados em um thread dedicado.- Os tempos de ciclo não devem ser tão afetados por tudo o que acontece no sistema.
- Os
OpMode
lentos não podem mais aumentar o tempo necessário para processar comandos de rede e vice-versa. - Os métodos
init()
, init_loop()
, start()
e loop()
não precisam mais retornar dentro de um determinado período de tempo.
- Driver herdado BNO055 IMU: restaura a capacidade de inicializar em um OpMode e, em seguida, fazer com que outro OpMode reutilize essa inicialização. Isso permite manter a posição 0-yaw entre OpModes, se desejado.
- Permite que versões personalizadas de drivers de dispositivo no SDK da FTC usem a mesma tag XML.
- Antes, se você quisesse personalizar um driver de dispositivo, era necessário copiá-lo para uma nova classe e atribuir-lhe uma nova tag XML. Atribuir a ele uma nova tag XML significava que, para mudar o driver que estava sendo usado, você teria que modificar seu arquivo de configuração.
- Agora, para usar seu driver personalizado, tudo que você precisa fazer é especificar a classe do seu driver personalizado ao chamar
hardwareMap.get()
. Para voltar ao driver original, especifique a classe do driver original. Se você especificar uma interface implementada pelo driver original e pelo driver personalizado, não há garantia sobre qual implementação será retornada.
Correções de bugs
- Corrige o acesso aos links "Gerenciar modelos do TensorFlow Lite" e "Gerenciar sons" e realizar downloads de blocos e OnBotJava OpMode do REV Hardware Client.
- Corrige o problema em que um driver de dispositivo I2C seria inicializado automaticamente usando os parâmetros atribuídos em uma execução anterior do OpMode.
- Melhora o posicionamento do menu pop-up da Driver Station no layout paisagem.
- Corrige NullPointerException ao tentar obter uma IMU BNO055 não configurada em um Blocks OpMode em um telefone RC.
- Corrige problema com Blocos se uma variável for denominada
orientation
.
Versão 8.0 (20220907-131644)
Quebrando mudanças
- Aumenta a versão Robocol.
- Isso significa que um Controlador de Robô ou Estação de Motorista 8.0 ou posterior não será capaz de se comunicar com uma Estação de Motorista ou Controlador de Robô 7.2 ou anterior.
- Se você esquecer de atualizar os dois aplicativos ao mesmo tempo, uma mensagem de erro será exibida explicando qual aplicativo é mais antigo e deve ser atualizado.
- A inicialização de dispositivos I2C agora acontece quando você os recupera do
HardwareMap
pela primeira vez.- Anteriormente, todos os dispositivos I2C seriam inicializados antes mesmo de o OpMode começar a ser executado, independentemente de você realmente usá-los ou não. Isso pode resultar em desempenho reduzido e avisos desnecessários.
- Com esta mudança, é muito importante que os usuários Java recuperem todos os dispositivos necessários do
HardwareMap
durante a fase Init do OpMode . Ou seja, declare uma variável para cada dispositivo de hardware que o OpMode usará e atribua um valor a cada um. Não faça isso durante a fase Run, ou seu OpMode poderá travar brevemente enquanto os dispositivos que você está recuperando são inicializados. - OpModes que não usam todos os dispositivos I2C especificados no arquivo de configuração devem levar menos tempo para inicializar. OpModes que usam todos os dispositivos I2C especificados devem levar o mesmo tempo que anteriormente.
- Corrige o problema nº 251 alterando a ordem em que as taxas de rotação do eixo são lidas no vetor de velocidade angular no driver BNO055 IMU.
- Obsoleta
pitchMode
em BNO055IMU.Parameters
.- Definir
pitchMode
como PitchMode.WINDOWS
quebraria as convenções de coordenadas usadas pelo driver.
- Move
OpModeManagerImpl
para o pacote com.qualcomm.robotcore.eventloop.opmode
.- Isso interrompe as bibliotecas de terceiros EasyOpenCV (versão 1.5.1 e anteriores) e FTC Dashboard (versão 0.4.4 e anteriores).
- Exclui o método
OpMode
obsoleto resetStartTime()
(use resetRuntime()
em vez disso). - Exclui a classe protegida
LinearOpMode.LinearOpModeHelper
(que não foi projetada para uso por OpModes). - Remove o tipo de configuração do dispositivo I2C (síncrono) (obsoleto desde 2018)
Melhorias
- Exceções não detectadas em OpModes não exigem mais uma reinicialização do robô
- Uma tela azul aparecendo com um stacktrace não é um erro do SDK; isso substitui o texto vermelho na área de telemetria.
- Desde o primeiro lançamento do SDK, as falhas do OpMode colocaram o robô no estado "EMERGENCY STOP", mostrando apenas a primeira linha da exceção e exigindo que o usuário pressione "Restart Robot" para continuar
- Exceções durante um OpMode agora abrem uma janela pop-up com o mesmo esquema de cores do visualizador de log, contendo 15 linhas do stacktrace de exceção para permitir rastrear facilmente a linha ofensiva sem precisar se conectar para visualizar logs no ADB ou percorrer grandes quantidades de logs no visualizador de registros.
- O texto de exceção na janela pop-up pode ser ampliado e rolado, assim como uma página da web.
- Pressionar o botão "OK" na janela pop-up retornará à tela principal da Driver Station e permitirá que um OpMode seja executado novamente imediatamente, sem a necessidade de realizar um "Restart Robot"
- Adiciona novo exemplo Java para demonstrar o uso de uma classe de hardware para abstrair atuadores de robôs e compartilhá-los em vários OpModes.
- Exemplo de OpMode é ConceptExternalHardwareClass.java
- A classe de hardware abstraída é RobotHardware.java
- Atualiza a amostra Java RobotAutoDriveByGyro_Linear para usar IMU do hub de controle/expansão REV.
- Atualiza as amostras do Vuforia para fazer referência a ativos do PowerPlay e ter nomes corretos e localizações de campos de destinos de imagem.
- Atualiza amostras do TensorFlow para fazer referência a ativos do PowerPlay.
- Adiciona suporte opcional para recursos da linguagem Java 8 ao editor OnBotJava.
- Para aceitar, abra as configurações do OnBotJava e marque
Enable beta Java 8 support
. - Observe que o código Java 8 só será compilado quando o Robot Controller executar o Android 7.0 Nougat ou posterior.
- Por favor, relate problemas aqui.
- No OnBotJava, clicar em erros de compilação agora salta corretamente para o local correto.
- Melhora o comportamento de preenchimento automático do OnBotJava para fornecer melhores opções de preenchimento na maioria dos casos.
- Adiciona um código QR ao Relatório de Inspeção do Controlador do Robô quando visualizado na Estação do Piloto para leitura pelos inspetores em competição.
- Melhora o desempenho e a confiabilidade do I2C em alguns cenários.
Versão 7.2 (20220723-130006)
Quebrando mudanças
- Atualiza a ferramenta de compilação. Para os usuários do Android Studio, essa alteração requer o Android Studio Chipmunk 2021.2.1.
- Remove o apoio a dispositivos que não são legais da concorrência, incluindo os modernos módulos de controle do núcleo da robótica, o controlador da matriz e os controladores e sensores Hitechnic/NXT. O apoio permanece para os sensores modernos da robótica I2C.
Melhorias
- Aumenta a altura da área de toque do menu da paisagem de 3 pontos na estação de motorista, facilitando muito a seleção.
- Adiciona o método
terminateOpModeNow()
para permitir que os Opmodes se auto-Expliquem de maneira limpa imediatamente. - Adiciona o método
opModeInInit()
ao LinearOpMode
para facilitar os loops init. Semelhante ao opModeIsActive()
mas para a fase init. - Adverte o usuário se eles têm um gamepad Logitech F310 conectado que está definido como o Modo DirectInput.
- Permite que os controladores de motor Sparkmini reajam mais rapidamente para acelerar as alterações.
- Esconde o número de versão do aplicativo irmã instalado incorretamente (ou seja, instalado no dispositivo RC ou vice-versa) na tela de inspeção.
- Adiciona suporte para permitir que o usuário edite o comentário para o bloco RUNOPMODE.
- Adiciona o campo ParameterDefaultValues ao @ExportToBlocks. Isso fornece a capacidade de um método Java com uma anotação @ExportToBlocks para especificar valores padrão para os parâmetros do método quando for mostrado no editor de blocos.
- Torne os blocos linearopmode mais legíveis. O nome do OpMode é exibido no bloco RUNOPMODE, mas não nos outros blocos linearopmode.
- Adicionado suporte à detecção de objeto TensorFlow para usar um gerador de quadros diferente, em vez de Vuforia. Usando o Vuforia para passar o quadro da câmera para o TFOD ainda é suportado.
- Remove o uso do renderize.
- FIXE o logspam na inicialização de aplicativos de retraces repetidos relacionados à
"Failed resolution of: Landroid/net/wifi/p2p/WifiP2pManager$DeviceInfoListener"
- Permite desativar o rádio Bluetooth da tela de inspeção
- Melhora as mensagens de aviso quando os dispositivos I2C não estão respondendo
- Adiciona suporte para controlar o LED RGB presente nos gamepads PS4/ETPARK da Opmodes
- Remove as referências de PushBot legadas de amostras de opmode. Renomeia amostras "PushBot" para "robô". As instruções do motor revertidas para serem compatíveis com o trem de acionamento de "acionamento direto".
Correções de bugs
- Correções A edição nº 316 (matrixf.inverted () retornou uma matriz de tamanho incorretamente para matrizes 1x1 e 2x2).
- O Auto -Inspect agora permite a compatibilidade da estação de motorista e do controlador de robô entre as liberações de pontos.
- Corrige o bug onde, se a mesma instância do objeto
RumbleEffect
foi filada para vários gamepads, pode acontecer que ambos os comandos rumbed fossem enviados para apenas um gamepad. - Corrige o bug na estação de motorista onde no hub de motorista, se os recursos avançados do gamepad estivessem desativados e um gamepad oficialmente suportado estivesse conectado, abrindo os recursos avançados do gamepad ou as telas do tipo gamepad que o gamepad seria recuperado pelo driver USB personalizado, embora Os recursos avançados do GamePad foram desativados.
- Protege contra a exceção (improvável) do ponteiro nulo no Vuforia Localizer.
- Harden Onbotjava e Blocks Saves para proteger contra problemas de salvamento ao desconectar -se do programa e gerenciar
- O problema de correções em que o aplicativo RC penduraria se um hub Rev i2C grava falhasse porque a operação anterior I2C ainda estava em andamento. Isso ocorre mais comumente durante a inicialização do sensor de distância Rev 2m
- Remove o programa de amostra de conceptwebcam.java. Esta amostra não é compatível com Onbotjava.
- Corrige o bug onde o uso de tags HTML em um campo de comentários @ExportToBlocks impediu o carregamento do editor de blocos.
- Fixes Blocks Editor, para que ele não peça que você salve quando você não modificou nada.
- Corrige o upload de um projeto de blocos muito grande para o editor de blocos offline.
- Corrige o bug que fez com que os blocos para o dcmotorex fossem omitidos na caixa de ferramentas do editor de blocos.
- Correções Blocks Programas despojados de blocos (devido ao uso do bloco de etiquetas Tensorflow)
Versão 7.1 (20211223-120805)
- Fixes trava ao chamar
isPwmEnabled()
(Edição #223). - Corrige o erro de fiapo (edição nº 4).
- Corrige o acidente da estação de motorista ao tentar usar o DualShock4 v1 gamepad com recursos avançados de gamepad ativados (edição nº 173).
- Correções possíveis (mas improváveis) Crash da estação de motorista ao conectar gamepads de qualquer tipo.
- Correções Bug, onde a estação de motorista usaria 20% de moradia genérica para Xbox360 e Logitech F310 GamePads quando os recursos avançados do GamePad foram desativados.
- Adicionado opmode de amostra simples e simples.
- Adiciona API de controle de balanço Branco UVC.
- Correções O problema #259 A maioria dos bloqueios de amostras para TensorFlow não pode ser usada para um modelo diferente.
- Os blocos rotulados anteriormente tensorFoBObjectDeTectionFreightFrenzy (da subcategoria denominada "otimizada para frenesi de frete") e tensorflowobjectDetectionCustommodel (da subcategoria denominada "Modelo Custom") foram substituídos por blocos marcados com tensorflowDetecção. Os blocos nos Opmodes existentes serão atualizados automaticamente para os novos blocos quando abertos no editor de blocos.
- Correções Os blocos do problema #260 não podem chamar o método Java que possui um parâmetro Vuforialocalizer.
- O Blocks agora tem um bloco rotulado Vuforiafreightfrenzy.getvuforialocalizer para isso.
- Adicionado uma página para gerenciar os modelos TensorFlow Lite em/sdcard/primeiro/tflitemodels. Para chegar à página Modelos Tflite:
- Você pode clicar no link na parte inferior da página Gerenciar.
- Você pode clicar no link na página Superior-direita, o projeto Blocks.
- FIXE LOGSPAM Quando
isBusy()
é chamado em um motor que não está no modo RTP. - Esconde o item "rc senha" na tela de inspeção para controladores de robôs baseados em telefone. (É aplicável apenas a hubs de controle).
- Adiciona o menu de seleção de canal direto do canal 165 ao Wi-Fi na tela Configurações. (165 estava disponível anteriormente na interface do usuário da web, mas não localmente no aplicativo).
Versão 7.0 (20210915-141025)
Aprimoramentos e novos recursos
- Adiciona suporte para bibliotecas externas ao onbotjava e blocos.
- Faça o upload .jar e .aar arquivos em onbotjava.
- Limitação conhecida - O dispositivo RobotController deve estar executando o Android 7.0 ou maior.
- Limitação conhecida - os arquivos AAAR com ativos não são suportados.
- As bibliotecas externas podem fornecer suporte para dispositivos de hardware usando a anotação no pacote com.qualcomm.robotcore.hardware.configuration.annotações.
- As bibliotecas externas podem incluir arquivos .so para código nativo.
- As bibliotecas externas podem ser usadas nos opmodes onbotjava.
- Bibliotecas externas que usam as seguintes anotações podem ser usadas nos blocos Opmodes.
- org.firstinspires.ftc.robotcore.external.exportClasStoBlocks
- org.firstinspires.ftc.robotcore.external.exportToBlocks
- Bibliotecas externas que usam as anotações a seguir podem adicionar novos dispositivos de hardware:
- com.qualcomm.robotcore.hardware.configuration.annotações.analogsensortype
- com.qualcomm.robotcore.hardware.configuration.annotações.deviceProperties
- com.qualcomm.robotcore.hardware.configuration.annotações.digitaliodeviceType
- com.qualcomm.robotcore.hardware.configuration.annotações.i2cdeviceType
- com.qualcomm.robotcore.hardware.configuration.annotações.motortype
- com.qualcomm.robotcore.hardware.configuration.annotações.servotype
- Bibliotecas externas que usam as seguintes anotações podem adicionar nova funcionalidade ao controlador de robô:
- org.firstinspires.ftc.ftccommon.external.OnCreate
- org.firstinspires.ftc.ftccommon.external.OnCreateEventloop
- org.firstinspires.ftc.ftccommon.external.OnCreatemenu
- org.firstinspires.ftc.ftccommon.external.ondestroy
- org.firstinspires.ftc.ftccommon.external.webhandlerRecirder
- Adiciona suporte ao Rev Robotics Driver Hub.
- Adiciona o driver USB Gamepad totalmente personalizado da área de gamepad à estação de motorista (consulte o menu "Recursos avançados para gamepad" nas configurações do DS).
- Permite que os gamepads trabalhem em dispositivos sem suporte nativo do kernel Linux (por exemplo, alguns dispositivos da Motorola Romena).
- Permite que o DS leia o número de série exclusivo de cada gamepad, permitindo a recuperação automática dos gamepads descartados, mesmo que dois gamepads da mesma queda do modelo. (Nota: Infelizmente, isso não se aplica aos gamepads do ETPARK, porque eles não têm uma série única) .
- A leitura do número de série exclusivo também fornece a capacidade de configurar o DS para atribuir gamepads a uma determinada posição por padrão (portanto, não há necessidade de iniciar+A/B).
- O anel de LED no Xbox360 gamepad e a barra de LED RGB no GamePad PS4 são usados para indicar a posição do motorista à qual o GamePad está ligado.
- Os motores Rumble nos gamepads Xbox360, PS4 e Etpark podem ser controlados a partir de opmodes.
- O touchpad de 2 pontos no PS4 gamepad pode ser lido nos Opmodes.
- Os botões "Voltar" e "guia" no gamepad agora podem estar vinculados em segurança aos controles de robô (anteriormente, em muitos dispositivos, o Android interceptava esses botões como o botão doméstico pressiona e fecha o aplicativo).
- Os recursos avançados do GamePad são ativados por padrão, mas podem ser desativados no menu Configurações para reverter para o suporte ao gamepad fornecido nativamente pelo Android.
- Melhora a precisão da medição de ping.
- As correções são questionadas em que o tempo de ping mostrou como maior que a realidade ao se conectar inicialmente ou reiniciar o robô.
- Para ver a melhoria completa, você deve atualizar o controlador de robô e os aplicativos da estação de motorista.
- Atualizações amostras localizadas em/ftcrobotController/src/main/java/org/FirstInspires/ftc/robotcontroller/externa/amostras.
- Adicionado amostras de conceitoGamePadrumble e conceptGamepadTouchPad para ilustrar o uso desses novos recursos de Gampad.
- As amostras de Vuforia existentes condensadas em apenas 2 amostras (conceituaForiafieldNavigation & ConceptvuiaiaFieldNavigationWebcam) mostrando como determinar a localização do robô em campo usando Vuforia. Ambos usam as imagens de destino da temporada atual.
- Adicionado ConceptVUFORIDRIVETOTARGETWEBCAM para ilustrar uma maneira fácil de dirigir diretamente para qualquer destino visível da Vuforia.
- Faz muitas melhorias no sistema de alerta e avisos individuais.
- Os avisos agora estão muito mais espaçados, para que sejam mais fáceis de ler.
- Novos avisos foram adicionados para condições que deveriam ser resolvidas antes de competir.
- O aviso de aplicativos incompatíveis agora usa as versões principais e menores do aplicativo, não o código da versão.
- Os avisos são automaticamente reativados quando um aplicativo controlador de robô de uma nova temporada de FTC é instalado.
- Adiciona suporte para transações I2C no hub de expansão / hub de controle sem especificar um endereço de registro.
- Consulte a Seção 3 da especificação Ti I2C.
- Chamar esses novos métodos ao usar o hardware moderno da robótica resultará em uma exceção não suportada.
- Altera o método Vuforialocalizer
close()
para ser público. - Adiciona suporte para modelos de detecção de objetos TensorFlow V2.
- Reduz a ambiguidade da linguagem e dos gráficos auto -inspecionados.
- Onbotjava agora alerta sobre substituições de arquivos potencialmente não intencionais.
- Melhora o comportamento da banda Wi-Fi e seletor de canal na página da Web de gerenciar.
Correções de bugs
- Fixe o aplicativo do controlador de robô falha no Android 9+ quando uma estação de motorista se conecta.
- O problema correta em que um opmode foi responsável por chamar o desligamento do tensorflow tfObjectDeTector. Agora isso é feito automaticamente.
- Corrige os blocos de inicialização do Vuforia para permitir que o usuário escolha o eixo do eixo. Blocks relevantes atualizados Opmodes.
- FIXE a edição do FTCROBOTController #114 LED Blocks e Java Class não funcionam.
- Fixes corresponde ao log para opmodes que contêm caracteres especiais em seus nomes.
- Os controles da correção da estação de motorista ficam sem resposta se a estação de motorista foi definida para o layout da paisagem e uma construção onbotjava foi acionada enquanto um opmode estava em execução.
- Corrige o aplicativo da estação de motorista se fechando quando é alterado para longe ou a tela é desligada.
- FIXE "Black Swirl of Doom" (Infinite "Configurando a mensagem Wi-Fi Direct" em dispositivos mais antigos.
- Atualiza o comentário do wiki na página de introdução do Onbotjava.
Versão 6.2 (20210218-074821)
Melhorias
- Tentativas de corrigir automaticamente a condição em que o hub de expansão interno de um hub de controle não está funcionando novamente, relembrando seu firmware
- Faz várias melhorias na tela de emparelhamento direto Wi-Fi, especialmente no modo paisagem
- Faz com que o serviço do controlador de robô não seja mais reiniciado categoricamente quando a atividade principal é levada para o primeiro plano
- (por exemplo, o serviço não é mais reiniciado simplesmente visualizando a tela auto -inspecionada e pressionando o botão traseiro)
- Ainda é reiniciado se o menu de configurações ou configurar o menu robô for aberto
Correções de bugs
- FIXES FTCROBOTController A edição #71 não pode abrir o Opmodes em V6.1 Blocks Offline Editor
- FIXES FTCROBOTCONTROLLER Edição #79 6.1 Causa uma reinicialização suave no Motorola E5 Play
- Corrigir emitir onde o cão de guarda do Hub OS de controle reiniciaria o aplicativo Robot Controller se o hub de controle não pudesse se comunicar com seu hub de expansão interna
- Corrige certos dispositivos I2C que não aparecem nos campos
HardwareMap
apropriados (como hardwareMap.colorSensor
) - O problema das correções é que a realização de uma redefinição de fábrica Wi-Fi no hub de controle não definiria a banda Wi-Fi como 2,4 GHz
- Corrigir a questão onde o onbotjava pode deixar de criar um novo arquivo se a opção de "código de configuração para hardware configurado" foi selecionado
- Corrigir a questão em que a execução de determinadas operações após uma falha de opmode quebraria temporariamente a comunicação do Hub de Controle/Expansão
- Corrigir problemas em que um hub de controle com um hub de expansão conectado à USB configurado não funcionaria se o hub de expansão estivesse ausente na inicialização
- Corrige os problemas em potencial causados por ter versões de firmware de controle/expansão incompatíveis
- FIXE FTC_APP Issue 673 O último MatchLog está sendo excluído em vez de antigos pelo robotlog
- FIXECE CONCEITIVEVUFORIATIMATIMEGEALNAVUGUTATIONWEBCAM Opmode, orientando corretamente a câmera no robô.
- O problema correta em que o logcat seria spam com o interruptedExceptions quando a parada for solicitada na estação de motorista (esse comportamento foi introduzido acidentalmente na v5.3). Essa mudança não tem impacto na funcionalidade.
- Corrigir o problema em que o editor de blocos não carrega se o nome de qualquer opmode Teleop contiver um apóstrofo.
Versão 6.1 (20201209-113742)
- Faz o botão de varredura na tela de configuração atualizar a lista de hubs de expansão conectados via RS-485
- Corrige a edição Skystone #143
- Melhora a compatibilidade da interface da Web com as versões mais antigas do navegador e do sistema Android.
- Problema corrige no driver UVC, onde algumas câmeras (por exemplo, certas MS Lifecams) que relataram intervalos de quadros como valores arredondados em vez de truncados (por exemplo,
666667*100ns
em vez de 666666*100ns
para 15fps) falhariam ao começar a transmitir. - Adiciona suporte no driver UVC para controle virtual de PTZ
- Adiciona suporte ao Driver UVC para Gain (ISO) Control
- Adiciona suporte ao driver UVC para ativar/desativar a prioridade do AE. Esta configuração fornece um meio de dizer ao firmware da câmera
- A) Ele pode subir a taxa de quadros solicitados para fornecer uma imagem teoricamente melhor (ou seja, com uma exposição mais longa do que o período entre quadros da taxa de quadros selecionados permite)
- B) Ele deve cumprir o prazo entre quadros para a taxa de quadros selecionados, mesmo que a imagem possa ser subexposta como resultado
- Adiciona suporte ao controle do Hub OS 1.1.2 Watchdog do controlador de robôs
- O aplicativo Robot Controller será reiniciado se parar de responder por mais de 10 segundos
- Adiciona suporte para usar o aplicativo da estação de motorista no Android 10+
- Apresenta um recurso de pré -seleção automática de teleop
- Para obter detalhes e guia de uso, consulte esta entrada wiki
- Mostra o ícone ao lado do nome da opmode na lista suspensa da lista Opmode na estação de motorista para indicar a fonte do opmode (ou seja, a ferramenta de programação usada para criá -lo)
- Corrigir o problema onde o aplicativo da estação de motorista sairia após a exibição da tela direta Wi-Fi de configuração
- Fixes Blocks e Onbotjava solicita quando acessados através do REV Hardware Client
Versão 6.0 (20200921-085816)
Notas importantes
- A versão 6.0 é a versão para a melhor temporada de gols.
- Requer Android Studio 4.0.
- Os usuários do Android Studio precisam estar conectados à Internet na primeira vez que criam o aplicativo (para baixar os pacotes necessários para a compilação).
- A versão 5.5 foi uma queda moderadamente grande na temporada, agosto de 2020,. Vale a pena revisar as notas de lançamento abaixo também.
- A versão 5.5 e maior não funcionará nos telefones Android 4.x e 5.x mais antigos. Os usuários devem atualizar para um dispositivo Android 6.x aprovado ou mais recente.
- Os valores de PIDF padrão para os motores de REV foram revertidos para os valores de PID padrão que foram usados na temporada 2018-2019
- Essa mudança foi feita porque os valores de 2018-2019 acabaram funcionando melhor para muitos mecanismos
- Isso traz o comportamento dos motores REV de acordo com o comportamento de todos os outros motores
- Se você preferir o comportamento da temporada 2019-2020 para a Rev Motors, aqui estão os valores do PIDF que estavam em vigor, para que você possa defini-los manualmente em seus opmodes:
Motores HD Hex (todas as caixas de câmbio): Velocity PIDF Valores: P = 1.17
, I = 0.117
, F = 11.7
Posição Valores PIDF: P = 5.0
Motor hexápico do núcleo: Velocidade PIDF Valores: P = 4.96
, I = 0.496
, F = 49.6
Posição Valores PIDF: P = 5.0
Novos recursos
- Inclui modelo de inferência de tensorflow e opmodos de amostra para detectar pilhas de partida de objetivos finais (quatro anéis vs pilha de anel único).
- Inclui alvos de visão de metas Vuforia Ultimate e Opmodes de amostra.
- Introduz um recurso de zoom digital para detecção de objeto Tensorflow (para detectar objetos com mais precisão a distâncias maiores).
- Adiciona entrada de configuração para o motor HD Ultraplanetário Rev Ultraplnetário
Melhorias
- Adiciona métodos setGain () e getGain () à interface normalizadaColorseSor
- Ao definir o ganho de um sensor de cores, você pode ajustar diferentes condições de iluminação. Por exemplo, se você detectar valores mais baixos de cores do que o esperado, poderá aumentar o ganho.
- O valor de ganho é aplicado apenas aos métodos argb () e getNormIlizedColors (), não aos métodos de cor bruta. O método getNormIlizedColors () é recomendado para facilitar o uso e a clareza, uma vez que o argb () deve ser convertido.
- Atualiza a amostra do sensorColor Java para demonstrar uso de ganho
- Mescla amostra de java sensorRevcolordância em amostra sensorcolor java, que mostra as melhores práticas para todos os sensores de cores
- Melhora os valores de recuperação do sensor de cores Rev V3
- Atualiza o cálculo de normalização dos canais RGB
- Melhora o cálculo do canal alfa (pode ser usado como um indicador geral de brilho)
- Corrige a resolução do sensor padrão, que causou problemas com ambientes brilhantes
- Adiciona suporte para alterar a resolução e a taxa de medição do chip do sensor Broadcom
- Remove as leituras e cálculos de RI não destinados ao chip de sensor Broadcom
Correções de bugs
- Melhora a confiabilidade da inicialização da IMU BNO055IMU para evitar falhas de inicialização aleatória (que se manifestaram como
Problem with 'imu'
).
Versão 5.5 (20200824-090813)
A versão 5.5 requer Android Studio 4.0 ou posterior.
Novos recursos
- Adiciona suporte para ligar para as classes Java personalizadas dos blocos Opmodes (corrige a edição Skystone #161).
- As classes devem estar no pacote org.firstinspires.ftc.teamcode.
- Para ter fácil acesso ao OpMode, Hardwaremap, Telemetria, GamePad1 e GamePad2, as classes podem estender o org.firstinspires.ftc.robotcore.external.blocksopmodecompanion.
- Os métodos devem ser estáticos públicos e não têm mais de 21 parâmetros.
- Os métodos devem ser anotados com org.firstinspires.ftc.robotcore.external.exportToBlocks.
- Os parâmetros declarados como opmode, linearopmode, telemetria e hardwaremap são suportados e o argumento é fornecido automaticamente, independentemente da ordem dos parâmetros. No bloco, os soquetes para esses parâmetros são preenchidos automaticamente.
- Os parâmetros declarados como char ou java.lang.Character aceitarão qualquer bloco que retorne o texto e usará apenas o primeiro caractere no texto.
- Os parâmetros declarados como booleanos ou java.lang.boolean aceitarão qualquer bloco que retorne booleano.
- Parâmetros declarados como byte, java.lang.byte, curta, java.lang.short, int, java.lang.integer, long, ou java.lang.long, aceitará qualquer bloco que retorne um número e arredondará esse valor para o número inteiro mais próximo.
- Parâmetros declarados como float, java.lang.float, duplo, java.lang.double aceitará qualquer bloco que retorne um número.
- Adiciona o método da API de telemetria para definir o formato de exibição
- Clássico
- Monospácia
- HTML (apenas certas tags)
- Adiciona suporte de blocos para trocar de câmeras.
- Adiciona suporte de blocos para detecção de objeto Tensorflow com um modelo personalizado.
- Adiciona suporte para fazer upload de um modelo de detecção de objeto TensorFlow personalizado na página Gerenciar, o que é especialmente útil para usuários de blocos e onbotjava.
- Mostra novos códigos de piscar de hub de controle quando a banda Wi-Fi é comutada usando o botão do hub de controle (apenas possível no Hub de controle OS 1.1.2)
- Adiciona novos avisos que podem ser desativados nas configurações avançadas de RC
- Versões de aplicativos incompatíveis aviso
- Aviso de uso desnecessário de 2,4 GHz Wi-Fi
- O Rev Hub está executando firmware desatualizado (mais antigo que a versão 1.8.2)
- Adiciona suporte para a Sony PS4 gamepad e retrabalha como os gamepads funcionam na estação de motorista
- Remove a preferência que define o tipo gamepad com base na posição do driver. Substituído por menu que permite especificar o tipo para gamepads com vid e pid desconhecido
- Tentativas de detectar automaticamente o tipo de gamepad com base no USB Vid e PID
- Se o gamepad vid e o PID não forem conhecidos, use o tipo SPE