Question:

[ERROR] [1670761362.075579826, 37.572000000]: TM : Time jump detected. Resetting time synchroniser. WARN  [ekf2] primary EKF changed 1 (filter fault) -> 3 ERROR [mavlink] [timesync] Time jump detected. Resetting time synchroniser. [ERROR] [1670763016.162233193, 38.368000000]: TM : Time jump detected. Resetting time synchroniser. WARN  [ekf2] primary EKF changed 0 (filter fault) -> 1 WARN  [ekf2] primary EKF changed 1 (filter fault) -> 3 WARN  [ekf2] primary EKF changed 3 (filter fault) -> 2 ERROR [mavlink] [timesync] Time jump detected. Resetting time synchroniser. 위와 같은 오류가 /mavros/setpoint_position/local  를 통한 위치제어를 반복적으로 수행하면 계속적으로 발생합니다. 시뮬레이터 고유의 버그 혹은 오류 인것 같습니다만, 이것이 해결되지 않는다면 position제어에서 빠르게 velocity 제어로 변경을 해야할 것 같습니다. 문제는, 위와같은 오류가 가끔씩 일어나며 그때마다 드론이 자신의 local position을 잃고 바닥으로 떨어진다던가 하는 현상이 발생되는 것입니다. 또한 이는 gazebo.launch를 실행한 상태에서, main.launch 로 채점프로그램을 실행하지 않고 제 알고리즘을 실행하면 발생되지 않는 문제입니다. (바람 구역과 관계없이 그 부근을 가기도 전에 에러가 발생됩니다.) 위와같은 오류는 example_control_code.py를 통해서도 오랜시간 동안 실행해보면 발생되는 것을 확인할 수 있습니다. 관련해서 내부적인 오류가 맞는지, 혹은 일부러 위치에러를 발생시키기 위함? 의 의도도 있는지 궁금합니다.

댓글목록

우리팀좀봐진짜잘할거야 작성일 December 12, 2022 2:59 AM (GMT+9)

  1. 시뮬레이션 실행하는 컴퓨터 사양이 정확히 어떻게 되시나요? 2. rviz를 실행하셨나요?

이응창 작성일 December 12, 2022 5:14 PM (GMT+9)

안녕하세요. 1. 문제가 발생하는 경우, 항상 35분정도 경과했을때인가요? 혹은 문제 발생시간이 랜덤한가요? 2.Github readme에 적힌대로 lockstep을 disable하셨는지요?

박건태 작성일 December 12, 2022 9:09 PM (GMT+9)

  1. 아니요 초반에도 발생되고 랜덤하게 발생됩니다. 2. set(ENABLE_LOCKSTEP_SCHEDULER no)  이것 수정하고, 적힌대로 다 수행했습니다. 다른컴퓨터에서도 시도를 해보았습니다만, 성능에 따라서 빈도가 달라지는 것 같습니다. 다소 속도가 떨어지는 PC였는데 굉장히 빈번하게 발생되었습니다. 실행하게되면, 뭔가 d435i의 hz가 15로 설정되어있습니다만, 실행후에는 11 정도로 떨어지는 것을 확인 햇습니다. gazebo 상에서 뭔가 렉이 걸리면 기체의 시간과 sync가 안맞으며 틀어지는 것 같습니다. 제가 사용하는 컴퓨터 사양은  i7-10700 CPU, RTX3060ti 입니다.

이응창 작성일 December 13, 2022 5:39 AM (GMT+9)

  1. 말씀하신대로 컴퓨터 성능이나 여러 프로그램을 동시에 돌리는 등 작업 환경에 따라서 sync가 안맞게 되는 현상이 있습니다. 해당 문제를 해결하려고 lockstep 기능이 생긴건데, lockstep 기능을 키게 되면 해당 문제는 해결될 것으로 예상됩니다. 2. 수정하셨던 set(ENABLE_LOCKSTEP_SCHEDULER yes)로 수정후 다시 빌드하시고 khnp_competition2022/gazebo_map_for_khnp/season2/iris_khnp/iris_khnp.sdf 파일의 504번줄을       <enable_lockstep>1</enable_lockstep> 로 수정 후 다시 테스트 해보시겠어요? 테스트 후에도 문제가 발생하시면 다시 말씀부탁드립니다.

박건태 작성일 December 13, 2022 2:56 PM (GMT+9)

말씀주신대로 lockstep 활성화시키니 관련 현상은 사라진 것 같습니다 다만 36분경에 ERROR [simulator] poll timeout 0, 22 이라는 오류가 뜨면서 드론이 멈춰버리는 현상이 발생됩니다. 간간이 WARN  [ekf2] primary EKF changed 0 (filter fault) -> 3 라는 경고가 뜨면서 높이값이 부정확해지는 현상도 발생됩니다만, 이러한게 정상적인것인지도 혹시 답변 부탁드립니다.

이응창 작성일 December 13, 2022 9:19 PM (GMT+9)

  1. 먼저 WARN  [ekf2] primary EKF changed 0 (filter fault) -> 3 경고는 간간히 뜨는 것이 정상입니다. 드론이 급격하게 움직이거나 충돌이 있거나 등등의 경우에 내부 칼만필터의 가중치를 다르게 하는 부분으로, 원래 Pixhawk 계열의 firmware를 사용하는 경우 정상적인 모습입니다. 2. 36분 경에 에러가 뜨는 현상을 막기위해 lockstep을 disable하는 것이었는데요, 이 경우 lockstep은 활성화하시고 PX4-SITL의 다른 commit 버전을 사용해보시는걸 추천드립니다. 설치는 readme와 동일하게 하시되, git commit 버전만 6823cbc로 바꿔서 진행해주시고, $ cd ~/ && git clone https://github.com/PX4/PX4-Autopilot.git $ cd PX4-Autopilot $ git reset --hard 6823cbc $ git submodule update --init --recursive $ source Tools/setup/ubuntu.sh --no-sim-tools --no-nuttx $ export LANG=C.UTF-8 $ export LC_ALL=C.UTF-8 $ DONT_RUN=1 make px4_sitl_default gazebo gazebo_map_for_khnp/season2/iris_khnp/iris_khnp.sdf 파일의 504번줄은 그대로 lockstep 1 (활성화)해서 사용해보시길 추천드립니다.

이응창 작성일 December 13, 2022 9:22 PM (GMT+9)

추가로 이 경우, QGroundcontrol을 설정하셔서 파라미터를 수정해주셔야 정상적으로 사용 가능합니다. gazebo.launch 실행 -> QGroundcontrol 프로그램 실행 -> vehicle pararmeter setup -> COM_RCL_EXCEPT 검색해서 값을 4로 바꿔주세요. (1회만 진행하면 저장되며 이후에는 QGroundcontrol 프로그램 실행 할 필요 없습니다.)

박건태 작성일 December 13, 2022 10:07 PM (GMT+9)

답변 감사드립니다. 오늘 중으로 테스트 후 해결되는지 댓글 달도록 하겠습니다.