한 노드에서 카메라출력 및 키보드 이벤트 동작 확인가능한지?

추후 모터 제어 까지 계획에 있습니다.

먼저 한 노드에서 카메라 토픽을 구독 후 출력하고 있습니다.

subscriber 함수 에서 callback 을 불러오기 때문에 동작 구현에 제한이 있는건지…

그나마 비슷한 동작이 callback 함수에서 key 값을 waitKey() 함수로 넣어주니까 반응은 보이더라구요…

main 함수에서 rospy.spin() 함수때문에 while 문이 안 먹히는것으로 보아 새로운 노드를 만들어 거기서

해야하는건지… 한노드에서 언급한 두개의 동작이 가능하지않나요?

의견이 궁금합니다.

안녕하세요,

혹시 omo_r1mini_teleop_key.py 의 코드를 수정하여 사용하시는걸까요?

추천드리는 방법은 아래 catkin_create_pkg 관련 문서를 따라 새로운 노드를 작성하는 것입니다.
http://wiki.ros.org/ROS/Tutorials/CreatingPackage

만약 코드 작성에 어려움이 있으시면 아래의 프로젝트를 catkin_ws/src 아래에 clone 해서 수정하시는것도 방법입니다.

이 코드에서는 darknet_ros_msgs 메세지를 subscribe 하였지만
약간 수정하여 image_msgs 를 subscribe 하면 됩니다.
그리고 로봇 제어 명령은 geometry_msgs.msg 의 Twist 명령으로
전진/후진 회전 명령이 가능합니다.

감사합니다.

새로운 노드를 만들어 이미지 토픽을 구독하여 spin 함수로 callback 함수를 지속적으로 불러와

출력하고 있습니다.

혹시 다른 방법으로 토픽을 구독하고 출력을 할 수 있는지와

현재 상태에서 카메라 이미지 창을 띄운 상태에서 키보드 이벤트를 받을 수 있는 지 궁금합니다.

spin 함수 전에 키보드 입력을 출력하는 걸 넣어도 동작을 하지 않고 callback 함수에 넣어주면 키보드

입력에 제대로 들어가지 않습니다.

이에 대한 의견이 궁금합니다.

먼저 어떤 토픽에 subscribe 할때 callback 함수를 등록하면 해당 메세지가 들어올때마다 함수가 호출되게 됩니다.

rospy.Subscriber("메제시의 경로", 토픽 이름, self."callback함수이름", queue_size=XX)

키보드 이벤트를 받아오는것은 보안상 하이재킹의 위험이 있으므로 리눅스 보안상 무조건 마우스가 해당 터미널에 활성화되어 있어야 동작합니다.
그래서 카메라를 보면서 조작해야 하는 경우에는 GUI를 만들고 버튼을 인식하게 하거나 (아래 프로젝트가 그 예 입니다.)
ROS QT를 활용하면 GUI 개발도 가능합니다.

조이스틱을 사용하게 됩니다.

감사합니다. 카메라를 출력하며 실시간으로 키보드 입력을 받아 이미지 캡처 및 제어를 할 수 있게 되었습니다.

이렇게 모은 데이터로 분석은 어떻게 할 수 있을 것 같은데 자율 주행을 하기 위한 학습과 시뮬레이션, 그리고 주행 까지 어떻게 해야 될지 감이 잡히지 않습니다…

텐서플로우로 minst 와 cifar-10 머신러닝을 해보긴 해봤습니다…

네 다행이네요.
저희도 YOLO를 통해 이미지 학습하고 ROS를 통해 detection 하는 과정을 정리중입니다.
조만간 학습하는 부분도 정리할 예정입니다.
감사합니다~! 행복한 연말 보내세요~

한번씩 무한 부팅 오류가 생기는 데 SD 카드 문제 인지… 새로 SD 카드를 구우면 해결이 되긴 합니다. 커널 및 i2c 오류가 번갈아가면서 뜹니다.

혹시 apt upgrade로 업그레이드를 진행하셨나요? 간혹 업그레이드 하게되면 부팅이 안되는 현상이 있어서 되도록이면 업그레이드를 하지 않고 ROS 패키지만 개별적으로 업데이트하는것을 권장드립니다.
현재 원인 파악중인데 jetpack 4.6에서 충돌이 발생하는거 같습니다.

구운 상태에서 apt upgrade 를 하지 않고 그대로 사용하고 있고 부팅된 상태에서 software updater 만 해주고 따른 업그레이드 혹은 다운로드를 하지 않고 사용하고 있습니다.

일단 주기적으로 백업을 해놔야겠네요. 감사합니다.

그리고 tensorflow 를 사용하려 하는 데 사용 가능한지 궁금합니다.

네 Jetpack 4.6버전에서 동작할 수 있는 이미지를 만드는 중입니다.
테스트가 완료되면 배포할 예정입니다.

텐서플로우는 설치는 아마도 관련 자료가 많이 있을껍니다. 다만 파이썬 업그레이가 필요한 경우 ROS와 충돌이 발생하여 ROS패키지가 실행되지 않을 수 있으므로 백업을 수행하고 진행하는것이 좋습니다.

혹시 최근에 올려주신 jetson nano SD 카드 이미지 파일은 스왑메모리가 늘어난 버전 인가요???

이따금식 텐서플로우에 모델을 불러오면 실행이 되지 않고 종료가됩니다.

스왑 영역을 따로 수정하지는 않았습니다.