Learning Space

[ROS 1 NOTE] ROS Packages
Packages를 통해 launch files, configuration files, message definitions, data, documentation 포함 가능 package.xml - Package name - Version number - Authors - Dependencies on other packages 등 포함 CMakeLists.xml cmake_minimum_required : Required CMake Version project : Package Name find_package : FInd other CMake/Catkin packages needed for build add_message_files, add_service_files, add_action_files : Gen..

[ROS 1 NOTE] Basis of ROS
ROS는 Robot Operating System의 줄임말로 오늘날 로보틱스 분야에서 대중적으로 사용되는 시스템이다. ROS의 특징으로는... 1. Peer to peer : 정의된 API를 통해 각 프로그램 간 통신 가능 2. Distributed : 네트워크를 통해 다중 컴퓨터 간 통신 가능 3. Multi-lingual : C++, Python, MATLAB 등 다양한 언어로 사용 4. Light-weight : Stand-alone Libraries를 통해 가벼움 5. Free and open-source : 대부분의 ROS 소프트웨어는 무료로 사용 가능 ROS Master roscore - 노드(프로세스) 간의 커뮤니케이션 관리 지원 - ROS Master 실행을 통해 모든 노드 등록 ROS N..

[Navigation] TF, URDF
Robotics를 구성하기 위해서는 먼저 Model에 대한 생성과 정의가 필요하다. 정의 : 시간에 따른 3D coordinate frames의 변화들을 Tracking하기 위한 방법 tf에 대한 이해를 위해 ROSWiki의 예제를 이용해보자. sudo apt-get install ros-noetic-ros-tutorials ros-noetic-geometry-tutorials ros-noetic-rviz ros-noetic-rosbash ros-noetic-rqt-tf-tree Unified Robot Description Format(URDF) - 로봇 모델에 대한 정의로 XML 포맷으로 정의 - Kinematic/Dynamic description - Visual representation - Co..

[GAZEBO] AR TAG
GAZEBO 내에 AR TAG를 삽입한 후 카메라를 통해 값을 읽고 제어 명령을 내리게 할 계획이다. 먼저 GAZEBO 내에 사용할 수 있도록 모델링이 필요로 하다. 간단한 방법으로 우선 진행해보고자 한다. git clone https://github.com/mikaelarguedas/gazebo_models.git 그 다음 원하는 AR TAG의 그림을 저장한다. 온라인 상으로 ArUco Marker를 생성할 수 있어 해당 방법을 사용했다. https://chev.me/arucogen/ Online ArUco markers generator Dictionary: Original ArUco 4x4 (50, 100, 250, 1000) 5x5 (50, 100, 250, 1000) 6x6 (50, 100, 2..
[ROS1 NOTE] rospy.Rate()
rospy.Rate() rate = rospy.Rate(20) Rate() 안에 들어가는 값은 hz이다. 즉, 1초에 얼마나 많이 ros를 구동시킬 지 결정하게 된다.
[ROS1 NOTE] mavros_msgs.srv
Service Types 서비스(Service)는 서비스의 요청(Request) - Client와 서비스의 응답(Response) - Server로 구성된다. 서비스에 대한 요청이 있을 때 그에 응답하여 답을 전달한다. mavros_msgs/CommandBool # Common type for switch commands bool value --- bool success uint8 result --- 기준으로 상단은 request, 하단은 response를 받게 된다. 기본 예제 코드를 보면, value로 true를 저장하는 것을 볼 수 있다. arm_cmd.request.value = true mavros_msgs/SetMode 비행 모드에 대하여 선언을 할 수 있는 service에 해당한다. # se..