목록ROS1 & ROS2 (15)
Priceless

ROS Noetic using DockerUbuntu 22.04 환경에서 ROS1 환경의 작업물을 사용해야 할 때가 있다이 때 간단하게 사용하기 좋은 방법을 정리했다# terminal 1docker pull osrf/ros:noetic-desktop-fullxhost +local:docker # X11 디스플레이 접근 허용# open container for roscoredocker run --gpus all -it \ --name my_ros_container \ --env="DISPLAY" \ --env="QT_X11_NO_MITSHM=1" \ --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \ --volume="$HOME:/root/HostHome" \ os..

Odometry 소개바퀴의 회전수로 이동거리 계산 Odometry 정보를 Publishing 하는 방법 RVIZ 가상 공간에서 물체 이동시키기 과제

RVIZ 3D 자동차에서 사용하는 토픽 코딩으로 3D 자동차 바퀴 움직이기 RVIZ에서 3D 자동차 8자 주행시키기 답안

Xycar 모터와 모터 제어기 구성 모터 제어기 관련 노드와 토픽 ROS 프로그래밍을 통해 차량 움직이기 답안

Xycar ROS 패키지 구성 차선 인식 주행에 사용되는 ROS 노드와 토픽장애물 회피 주행에 사용되는 ROS 노드와 토픽사람 인식 주행에 사용되는 ROS 노드와 토픽 뷰어에 사용되는 ROS 노드와 토픽

1. 노드 간 동기화 문제 해결사용할 패키지기존에 만든 msg_send 패키지에서 작업 1을 받지 못했다 답안 2. ROS 전송 속도답안 3. ROS 처리 지연 문제답안 4. ROS 타임 슬롯 문제 답안 5. ROS 노드의 순차 실행 답안6. 받은 토픽 가공해서 보내기답안

ROS에서 노드 간 원격 통신 ROS에서 노드 간 서로 통신하면서 협업한다 노드는 OS의 도움을 받아 하드웨어 장치를 제어하고, 노드들은 마스터의 도움을 받아 메시지를 주고 받는다 다른 디바이스 사이에서 네트워크로 통신한다(TCP/UDP) 통신 프로토콜 - XMLRPC 프로토콜: 노드들이 마스터와 통신할 때 사용한다 - TCPROS 프로토콜: 각 노드간 통신할 때 사용한다 원격 통신 예제 구동 구성 여러 publisher 노드가 teleop key를 발행하고 다른 하드웨어에서 master core를 실행하고 subscribe한다 호스트 PC turtle_teleop_key 다른 디바이스 turtlesim_node 환경 설정 IP 주소 설정 ~/.bashrc을 수정한다 가장 아래에 내용을 추가한다 ... ..

ROS 커스텀 메시지를 통한 통신 msg 파일 추가 메시지를 구성하는 폴더를 추가하여 cd roscd mkdir msg # 메시지 폴더 생성 cd msg 메시지를 구성하는 타입을 저장하는 msg 파일을 추가한다 my_msg.msg string first_name string last_name int32 age int32 score string phone_number int32 id_number 커스텀 메시지 선언 패키지 파일 내에 있는 package.xml 파일을 수정한다 태그를 추가할 수 있는 영역 가장 아래에 다음 코드를 추가한다 message_generation message_runtime 이후 CMakeLists.txt를 수정한다 CMakeLists 파일은 패키지 파일 내에 존재하며, 공백은 2칸..

ROS 1:1 통신 노드 통신을 위한 패키지 만들기 전체 구성 teacher 노드(publisher)에서 student 노드(subscriber)로 my_topic 토픽을 전송하는 구조 노드를 통한 전송을 하기 위한 package 구조는 아래와 같다 package 생성 msg_send 라는 새로운 package를 만든 후 package 파일 내에 launch 폴더를 만들고 새롭게 생성된 package를 빌드한다 catkin_create_pkg msg_send std_msgs rospy cd msg_send mkdir launch cm # catkin_make node와 topic을 생성하는 코드 topic을 발행하는 파이썬 코드를 작성한다 teacher.py #!/usr/bin/env python3 im..

Launch 파일 Launch 파일이란 여러 노드를 함께 실행 시킬 수 있는 파일 특정 패키지에서 launch 파일을 실행할 수 있다 roslaunch [option] *.launch 파일 노드들의 정보가 XML 파일로 기록되어 있다 ~~ ~~ node 태그 실행할 노드 정보를 입력할 수 있다 include 태그 다른 launch 파일을 불러올 수 있다 param 태그 ROS 파라미터 서버에 변수를 등록하고 변수 값을 설정한다 ROS 파라미터 서버에 등록된 변수는 노드 코드에서도 사용할 수 있다 private 변수이므로 변수 앞에 '~(물결)'을 붙인다 launch 파일의 위치 package의 전체적인 구조는 아래와 같다 package 내에 src 폴더와 launch 폴더가 있다 이전 예제 과정을 포함하..