[KABOAT2021] 2021.09.13.~09.19. 주간일지

한은기·2021년 9월 16일
0

Competition) KABOAT2021

목록 보기
7/10

2021.09.15.수

도킹 미션 준비

  1. launch 파일 작성
    1) 지난 번, launch를 했을 때 path를 찾을 수 없다는 오류를 아래 방법으로 해결함.
    2) find 명령어는 각 패키지 폴더 내 package.xml 파일에서 이름을 따오면 됨(다르게 쓰면 오류남). 전체 주소를 적을 필요 없음
  2. 카메라 이미지를 보는 방법 : realsense-viewr 말고도 rqt_image_view로도 볼 수 있음
  3. rqt 명령어 입력해 나오는 창에서 전체 토픽을 보거나 rviz를 켜는 등 다양한 기능을 gui 창에서 선택할 수 있음
  4. darknet_ros를 실행했을 때 토픽 중 /darknet_ros/bounding_boxes/darknet_ros/find_object 등 주요 사용 토픽이 아예 출력이 안 됨. bounding box로 탐지된 것이 아무것도 없다고 하더라도 헤더부분은 출력이 되어야 하는 것이 정상.
  5. 위와 같은 문제가 발생은 하나, 자체적으로 만든 python sub/pub에서는(docking 전체 스크립트 말고 임시 파일) boudningbox를 잘 받아오고 있음. 원인 불명!!
  6. 전체 기능을 다 담은 스크립트를 실행해보기 보단, 짤막하게 기능 하나씩을 테스트하는 임시 파일로 오류를 잡도록 조언을 받음
  7. darknet_ros 실행 시 FPS, Object 터미널 출력부를 없애고 싶었으나 cpp 파일을 수정해도 계속 남아있음. 수정이 안 되는 것인지 다른 스크립트가 있는 것인지는 모르겠음
  8. tiny로 하면 FPS가 급격하게 올라가 확실히 성능이 좋음. 일반에서는 FPS가 10~20대라면 tiny에서는 50 이상을 보임(기억하기론)
  9. darknet_ros/config 폴더 내 ros.yaml에서 latch가 무슨 뜻인지 모르겠음
  10. 아직 pyrealsense2는 안됨. 확실히 대안을 찾아야 함
  11. 젯슨과 카메라를 자택으로 옮겨와 테스트하는 중, 갑자기 모든 roslaunch가 안되는 상황이 발생(RLException : Unable to contact my own serverat [http://itricat:38815/]. This is usually means that the networkis not configured properly. (이하 생략)). 인터넷 변경 때문이라는 의심이 들었지만 그것은 아닌 듯했음.
    1) gedit ~/.bashrc로 bashrc를 열어 export ROS_MASTER이 있는 2개 줄의 주석을 해제하고 바꿔줌
    2) source ~/.bashrc로 적용하고 다시 실행해봐도 여전히 roslaunch 작동 안함. 원인 불명임
    ROS Wiki QnA

2021.09.16.목

도킹 미션 준비

  1. 여전히 darknet_ros를 실행했을 때 토픽 중 /darknet_ros/bounding_boxes/darknet_ros/find_object 등 주요 사용 토픽이 아예 출력이 안 됨.
  2. 여전히 darknet_ros 실행 시 FPS, Object 터미널 출력부를 없애려 cpp 파일을 수정해도 계속 남아있음.
    1) 아예 cpp 파일을 삭제해도 프로그램이 돌아가는 것을 보면, 수정이 반영이 안 되거나 아예 다른 파일인 것 같음
    2) 하지만 마땅한 .cpp 파일이 없음
    3) 이전 경험으로 .cpp 파일을 수정하면 catkin_make가 필요했었음을 떠올림
    4) darknet_ros 패키지가 catkin_ws 밖에 있기 때문에(itricat/workwpace/src) 단순 catkin_make는 먹히지 않음
    5) 이와 관련하여 workspace폴더에서 catkin_make 명령어를 다시 해보거나, 단순히 make로만 해보는 것을 조언받음
  3. pyrealsense2의 대안을 요리조리 찾아봄. 처음에는 realsense 카메라가 depth 정보도 받아오는 아이디어를 떠올려봄
    1) /camera/depth/image_raw는 mm 단위의 깊이 행렬임을 알게 됨
    realsense_camera ROS Wiki
    Realsense ROS Wrapper Package
    2) darknet에서 얻어온 image 내 boundingbox 중심점 위치를, darknet의 image 크기 & realsense depth image 크기를 매핑하고 거기에 점의 위치를 대강 찍으면, 원하는 점의 깊이(=거리)를 알 수 있지 않을까
    3) 문제는, /camera/depth/image_raw의 사이즈가 과하게 커서, 어떤 점일지 특정하기가 매우 어렵고, subscribe를 해오며 부하가 많이 걸릴 것 같음
  4. 3의 문제를 해결하기 위해 CvBridge를 찾아냄. --> 링크 걸자
    1) ROS에서의 이미지를 CV로 사용하기 위한 패키지임
    2) 함수를 사용해 depth를 구하는 예시들이 꽤 있었음
    Realsense GitHub
    Depth from Camera
    3) 이를 활용해 boundingbox 중심점까지의 depth를 구해서 이용하는 코드로 바꾸어줌
    4) 다만 callback 함수가 여러 개가 있기 때문에 타이밍이 맞지 않으면 오류가 뜰 것임. 이를 해결하기 위한 방법(try/catch나 pass 등)을 써야 할 듯함
    5) 아직 잘 돌아가는지는 테스트해보지 못함(이 함수에 닿기도 전에 다른 문제가 발생해서)
  5. 다른 자잘한 오류를 고치고 launch 파일이 오류 없이 동작은 함
    1) boundingbox 정보가 안 들어옴
    2) /darknet_ros 토픽이 두 개가 뜸. rqt 그래프를 그려보면 원으로 된 토픽 하나가 허공에 덩그러니 있고, darknet_ros/boundingboxes와 darknet_ros/find_object 토픽은 잘 docking 노드로 연결이 됨
    3) 상황을 print 하는 함수 표 그려놓은 자릿수가 잘 안 맞음. 소소한 개선 필요
    4) boundingbox 정보 잘 받아오는지 따로 테스트 파일 만들어 시험해봐야겠음 -> 그래도 작동을 안 하면 Darknet_ros 패키지를 새 거 다시 다운 받아서 거기서는 잘 되는지 테스트 해봐야 함
  6. 처음 학습했던 cfg, weight 파일을 사용하면, 사각형이 기울어지면 삼각형으로 인식하고 있음. 어차피 배 위에서는 크게 기울어져 보일 일은 없겠지만, 다시 학습시킨 파일로도 기울기에 예민하게 반응한다면 이에 대한 수정도 필요해 보임
  7. CVBridge 설치 후 catkin_make에서 에러가 발생
  8. 9월 말에서 10월 초에 4개 종목 모두를 한 번에 테스트해보는 시간이 있었으면 함

2021.09.17.금

  1. CvBridge 버전이 opencv4을 우선 적용하는 데서 에러가 나는지 계속 cm 에러남. 일단 지우고 메이크 했더니 되긴 됨
  2. 다시 RLException : Unable to contact my own serverat [http://itricat:38815/]. This is usually means that the networkis not configured properly. (이하 생략) 에러 발생. bashrc 수정하고 재부팅 해보겠음
profile
🏫Inha Univ. Naval Architecture and Ocean Engineering & Computer Engineering (Undergraduate) / 🚢Autonomous Vehicles, 💡Machine Learning

0개의 댓글