분류 전체보기
-
_ROS1_custom_msgROS/ROS1 2023. 10. 4. 18:39
기존의 메시지를 사용할 수 있지만, 내가 직접 메시지를 만들 수 있다. 참고사이트 http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv ROS/Tutorials/CreatingMsgAndSrv - ROS Wiki Note: This tutorial assumes that you have completed the previous tutorials: using rosed. Please ask about problems and questions regarding this tutorial on answers.ros.org. Don't forget to include in your question the link to this page, the versions of you ..
-
_ROS1_node_communicationROS/ROS1 2023. 10. 4. 16:58
ROS는 노드들이 통신을하며 데이터를 주고 받는다. 이번에는 teacher.py와 student.py를 만들어서 데이터를 주고 받는 예제를 한번 해보도록하자. 1. 패키지 만들기 $ cd catkin_ws/src # 작업 디렉토리로 이동 $ catkin_create_pkg msg_send std_msgs rospy # 패키지 이름 설정 및 종속 패키지 추가 $ cd msg_send # msg_send 폴더로 이동 & mkdir launch # launch 폴더 생성 launc 폴더까지 생성을 했으면 catkin_ws로 이동하여 catkin_make를 진행한다. 이후 teacher.py와 student.py를 생성한다. # msg_send로 이동 $ roscd msg_send $ cd src teacher..
-
_ROS1_roslaunchROS/ROS1 2023. 10. 3. 23:55
roslaunch는 파일의 내용에 따라 여러 노드들을 한꺼번에 실행할 수 있다. 실행시킬 노드들의 정보는 XML형식으로 기록되어 있다. launch파일은 다음 위치에 존재하며 .launch 확장자를 갖는다. launch에서 사용하는 Tag는 대표적으로 node, include가 있으며 다음과 같이 사용한다. 1. node node는 실행할 노드 정보를 입력할 때 사용되는 태그이다. pkg: 실행시킬 노드의 패키지를 입력하는 속성. type: 노드의 소스코드가 담긴 파일의 이름을 입력하는 속성. name: 노드의 이름을 입력하는 속성.(소스코드에서 지정한 노드의 이름을 무시하고 launch파일에 기록된 노드의 이름으로 노드기 실행.) 2. include include는 다른 launch파일을 불러오고 싶을..
-
데브코스 자율주행_TIL_23.10.03데브코스 자율주행 Perception/_TIL(Today I Learned) 2023. 10. 3. 23:16
ROS 노드 통신 문제 해결 2 1. 타임 슬롯 노드가 데이터를 주고받을 때 Rate와 sleep으로 주기를 조절하며 그림으로 보면 다음과 같다. 실제로 데이터를 주기적으로 발송하다가 양이 많아지면, 타임슬롯을 오버하면 시간을 오버하여 데이터가 보내지는 것을 볼 수 있다. Rate와 sleep을 잘 조절해서 타임슬롯이 오버되지 않고 데이터를 주고받을 수 있게 해야한다. 2. 노드의 순차 실행 노드는 서로 협업해야 하므로, 순차적으로 노드를 실행해야할 필요가 있다. 이는 receiver node가 각 노드의 순서대로 데이터를 받게 하면 된다. 3. 받은 토픽 가공 각 노드는 모듈화 되어있기 때문에 받은 토픽을 가공하여 다른 곳으로 보낼 수 있다. 이는 ROS의 장점이며, ROS가 로봇 개발에 사용되는 이유..
-
데브코스 자율주행_TIL_23.10.02데브코스 자율주행 Perception/_TIL(Today I Learned) 2023. 10. 2. 22:57
자율주행 기술 동향 자율주행 기술의 궁극적인 목표는 완전 자동화, 즉 전 구간에서 운전자가 없는 완전한 자율주행을 하는 것이다. 하지만, 각 회사마다 추구하는 방향이 다르므로, 회사의 특성과 방향이 다르다. 자율주행 기술은 자율주행 자동차 외에도 로봇, 드론등 다양하게 사용되며 주요 기술들은 다음과 같다. 센서(Sensor): 라이다 및 카메라 센서등 HD-Map: 지도 제작(과거와 달리 지금은 다른 방향을 추구) 인지(Perception): 환경 인식 예측(Prediction): 인식한 동적 장애물의 이동경로 예측 판단(Planning & Decision): 경로 생성 방법 제어(Control) 현재는 전통적인 방식과 AI기술을 합친 방법으로 기술 개발이 되고 있음. 테슬라의 경우 E2E 방식을 적용(..
-
_ROS1_package_pub&subROS/ROS1 2023. 10. 2. 14:50
ROS package package는 ROS에서 개발되는 소프트웨어를 논리적 묶음으로 만듣 것이다. ROS에서 제공하는 명령어 $ rospack list # ros package 나열 $ rospack find [package_name] # 이름으로 package 검색 $ roscd [location_name[/subdir]] # ROS package dir로 이동 $ rosls [location_name[/subdir]] # Linux ls와 유사 $ rosed [file_name] # (환경 설정에 따른) 에디터로 파일을 편집 위에서 rospack list와 roscd는 정말 자주 사용된다. Package 만들기 참고 사이트 http://wiki.ros.org/ROS/Tutorials/Creating..
-
_ROS1_설치_환경설정_기본실습ROS/ROS1 2023. 10. 1. 23:49
이번에 설치할 ROS는 melodic 버전으로 ubuntu 18.04에서 설치할 수 있다. ubuntu 18.04버전은 다른 사이트들을 보고 참고해서 설치하면 된다. ubuntu는 공식 사이트 혹은 mirror.kakao에서 설치하면 된다. https://mirror.kakao.com/ubuntu-releases/ Ubuntu Releases There are 2 types of Ubuntu releases: Interim and LTS. Each Ubuntu LTS is maintained for 10 years total: 5 years of standard support + 5 years of ESM. Interim releases are maintained for 9 months. For the ..
-
_ROS1_기본 내용ROS/ROS1 2023. 10. 1. 22:35
ROS(Robot Operating System)는 여러개의 Node와 Master로 이루어져 있으며 Node들이 Master의 중재를 받아서 메시지를 주고 받는 형태이다. 이와 같은 구조를 가진 이유는 로봇과 센서가 개발되는 회사가 다르기 때문에 각 하드웨어 및 소프트웨어를 쉽게 연결할 수 있기 때문이다. ROS에서의 통신은 topic의 publish & subscribe 기반의 메시지 교환이다. 이와 같은 구조를 가졌기 때문에 OS가 다르더라도 메시지를 교환할 수 있다는 장점을 가진다. 각 하드웨어 및 소프트웨어 모듈에 Node가 하나씩 할당되고 각 Node들은 OS의 도움을 받아서 하드웨어 장치를 제어할 수 있다. 그럼 지금까지 나온 기본 용어들을 정리해보자. 1. Master 서로 다른 노드들 사..