저는 Ubuntu 운영 체제에 ROS2가 설치되어 있고 모두 Raspberry Pi 4에서 실행되는 로봇을 설계했습니다. 또 다른 esp32는 모터를 제어하는 데 사용됩니다. 로봇은 방수 및 밀봉되어 있습니다. 새로운 장소로 가져갈 때마다 전원을 켜고 Wi-Fi 자격 증명을 재구성하여 Wi-Fi에 연결해야 합니다. 내 로봇에는 USB 출력 연결만 있고 네트워크 포트에 액세스할 수 없습니다.
기존 네트워크가 작동하지 않는 경우 로봇을 새 네트워크에 연결하려면 어떻게 해야 합니까? 가능하다면 Captive Portal 시리즈에서 뭔가를 찾고 있습니다. esp32에서 설정을 만들고 거기에서 자격 증명을 읽을 수 있는 방법이 있더라도 좋을 것입니다. 다른 제안도 도움이 될 것입니다. 도와주세요.
답변1
글쎄요, 두 가지 생각이 듭니다...
어떤 종류의 장치가 있다고 안전하게 가정할 수 있는 경우~해야 한다제어하는 PC에 접근할 수 있다면 조금 더 쉬워집니다. 제어하는 컴퓨터에 몇 번 핑을 시도하는 루프를 구현할 수 있습니다. 성공하면 좋은 일이고, 그렇지 않으면 새로운 네트워크를 시험해 볼 시간입니다. 이 작업을 수행하려면 다음 스크립트를 사용할 수 있습니다.
- "카운트"를 설정할 수 있는 명령
-c
에 플래그를 사용하십시오 (그래서 무한정 핑을 하지 않습니다). 당신이 도달할 수 있어야 하는 것을ping
가리킵니다 .ping
- ping 명령의 종료 값을 관찰하십시오. 장치에 도달할 수 없는 경우 ping은 오류 값으로 종료됩니다.
- 오류 값이 표시되면 새 네트워크를 사용해 보세요.
nmtui
이와 비슷한 것을 사용할 수 있으며 아마도 Ubuntu에 이미 설치되어 있을 것입니다. - 1로 이동합니다.
그런 다음 기능을 bash 스크립트로 래핑하고 systemctl 서비스를 작성하여 시스템 시작 시 스크립트를 시작합니다.
그래서 이것은 가능합니다. 하지만 저는 개인적으로 제 로봇이 로봇과 연결되는 방식이 매우 역동적이 된다는 생각을 좋아하지 않으며 이것이 실제로 우리가 해결하려고 하는 하드웨어 문제라는 사실도 마음에 들지 않습니다. 소프트웨어 솔루션 질문을 사용하여 해결합니다. 여기서 하드웨어 문제는 일단 물에 대해 밀봉되면 로봇과 상호 작용하는 것이 불가능하다는 것입니다.
이 문제를 해결하려면 방수 데이터 포트 추가를 고려해야 합니다. 방수 케이블 어셈블리를 구입하고 USB 케이블을 반으로 자르면 됩니다. 그런 다음 해당 USB 케이블을 방수 연결부의 한쪽에 납땜하여 이제 USB 케이블의 한쪽을 케이스에 연결하여 온보드 PC에 연결하고 다른 쪽을 USB 어댑터에 연결할 수 있습니다. - 컴퓨터의 이더넷 어댑터를 제어합니다. 납땜의 용이성을 위해 이더넷 USB를 사용하는 것이 좋습니다. 이 접근 방식은 봇이 달리 연결되지 않은 경우에도 항상 SSH를 통해 연결할 수 있는 포트를 제공하며 이는 항상 가치가 있습니다.
답변2
이에 대한 제가 제안하는 것은 랩톱에서 시스템이 감지할 때 자동으로 연결되는 임시/백업/특수 네트워크로 제공할 수 있는 알려진 Wi-Fi 액세스 정보를 갖는 것입니다. 이를 통해 개인 네트워크에서 인프라 네트워크의 Wi-Fi 설정을 구성할 수 있습니다. 그런 다음 특별히 구성된 네트워크가 닫히고 센서가 구성된 인프라 네트워크에 연결됩니다.