ROS(drone포함)

    [ROS] Publishers and Subscribers Queue 에 관하여

    | Publisher, Subscriber Queue 에 관하여 0. 서론 ROS 개발을 하다보면 Publishers 와 Subscribers를 자주 사용하게 된다. ros::Publisher pub = nodehandler.advertise("topic_name", 5); ros::Subscriber sub = nodehandler.subscribe("topic_name", 5, callback); 위 코드는 publish ,subscribe에 예제 이다. 0.1 사용 예제 및 레퍼런스 그럼 여기서 뜻하는 숫자 5는 무엇이며 어떠한 의미를 나타내는지에 대한 의문이 생긴다. Reference 참고를 하면 아래와 같이 나와 있다. ros::Publisher advertise(const std::string..

    [rospy 튜토리얼] catkin + rospy 사용법(1/2)

    아니 rospy로 line following 하는 동영상이 급 비공개가 되는 바람에 다른 튜토리얼을 검색했다. 튜토리얼 깃주소는 아래 출처에. 정말 상세히 써놓으셨다. 패키지 생성 $ cd ~/catkin_ws/src $ catkin_create_pkg rospy_tutorial geometry_msgs rospy package.xml 파일과 CMakeList.txt 파일 편집 package.xml파일에는 아래의 내용이 있어야 한다. catkin CMakeList.txt파일에는 최소한 아래의 내용이 있어야함. cmake_minimum_required(VERSION 2.8.3) project(rospy_tutorial) find_package(catkin REQUIRED COMPONENTS std_msgs..

    [rospy 튜토리얼] 간단한 퍼블리셔와 서브스크라이버 작성

    https://durian9s-coding-tree.tistory.com/264?category=949479 앞글과 이어진다. 이 전 튜토리얼에선 geometry_msgs, rospy만 의존성 설정을 하였기에 package.xml파일과 CMakeLists.txt 파일을 변경해주어야한다. package.xml catkin rospy geometry_msgs std_msgs rospy geometry_msgs std_msgs rospy geometry_msgs std_msgs CMakeLists.txt find_package(catkin REQUIRED COMPONENTS rospy geometry_msgs std_msgs# ----------------------------------------------..

    ROS LineFollow 따라하기.[급종료]

    ros로 자율주행을 위한 튜토리얼을 듣고있다. rospy를 기반으로 수행하며 문제없이 사용이 가능. https://www.youtube.com/watch?v=mqRaTg9Qnns&t=10s 이게 모든 과정의 목표임. 1.ROS Tutorial - Setting up ROS Workspace, Publishing & Subscribing (Tutorial-1) https://www.youtube.com/watch?v=jhj6QIqL5Tg from std_msgs.msg import UInt32를 사용하기위해 sudo apt-get install -y ros-std-msgs를 설치해줌. 패키지를 하나 생성해주며, CMake와 package파일은 수정을 하지 않음. 1)talker #!/usr/bin/env ..

    turtlebot3 시뮬레이션

    시뮬레이션 환경에서 터틀봇을 운영해보겠다. $ cd ~/catkin_ws/src/ $ git clone -b kinetic-devel https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git $ cd ~/catkin_ws && catkin_make 터틀봇 시뮬레이션 깃 클론(어제 해놓음) $ roslaunch turtlebot3_gazebo turtlebot3_empty_world.launch empty world에서 터틀봇 불러내기 마찬가지로 roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch로 조작한다. $ roslaunch turtlebot3_gazebo turtlebot3_world.launch $ r..

    TurtleBot3 사용하기

    아으.. 어렵다. 블로그를 보고 터틀봇을 gazebo환경에서 구현해보았다. http://turtlebot3.robotis.com ROBOTIS e-Manual emanual.robotis.com cd ~/catkin_ws/src/ git clone https://github.com/ROBOTIS-GIT/turtlebot3.git git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone https://github.com/ROBOTIS-GIT/turtlebot3_simulations.git cd ~/catkin_ws && catkin_make 터틀봇과 관련된 깃허브를 클론한다. export TURTLEBOT3_MODEL=burger 매번 ..

    ROS service 프로그래밍

    아래의 블로그를 보고 ROS를 복기하고 있다. catkin_create_pkg ros_tutorials_service roscpp std_msgs message_generation package.xml파일 수정 ros_tutorials_service 0.0.1 request/response service Apache License 2.0 someone catkin message_generation roscpp std_msgs roscpp std_msgs roscpp std_msgs message_runtime CMakeLists.txt 수정 cmake_minimum_required(VERSION 3.0.2) project(ros_tutorials_service) find_package(catkin REQ..

    View Protect사 Z12TL 모델로 알아보는 드론 짐벌 카메라

    View Protect사 Z12TL 모델을 통해 드론에 사용하는 카메라 제원에 대해 알아보자. 제원 Working voltage = 동작전압. 실제로 사용되는 전압을 말함. Input voltage = 입력 전압 Output voltage = 출력 전압 Dynamic current = 카메라모듈이 작동 중일 때 소모되는 전류 Idle current = 카메라 모듈이 idle 상태일 때 소모되는 전류 Power consumption = 소비전력. 필요한 단위 시간당 전기 에너지의 양 Control method = PWM, TTL, S.BUS PWM - Pulse Width Modulation의 약자로 펄스폭 변조를 말하는 것이다. 쉽게 말해, 디지털 신호를 아날로그 신호처럼 흉내 내는 것이라고 보면 된다...

    dronekit-python 사용법

    드론 킷 파이썬을 설치하고 연동까지 해보려 했는데 arm 조차 되지 않아 며칠을 찾았다. 구글링 하면서 답이 안나오길래 다른 것부터 보고 있었는데 뜬금없이 나와버렸다. 링크는 아래에 https://nrottmann.gitbooks.io/devguide_sim/content/kr/dronekit/example.html DroneKit 사용법 · Devguide_sim nrottmann.gitbooks.io 링크의 예제를 실행시키기 전에 cd ./dronekit-python sudo python setup.py build sudo python setup.py install px4와 셋업을 안해놨기에 이런 일이 발생했다.한줄 알았는데 아니었다. https://dronekit-python.readthedocs...

    CMake 불가 디버깅 과정

    오로카를 통해 ros를 다시 배우고 있다. 이전에는 실행되던 catkin_make가 되지 않기에 정보를 다시 찾았다. 2일이나 이 문제를 잡아놓고 고민하고 여러방법으로 디벙깅 방법을 검색했다. 문제 해결을 https://github.com/ros/genmsg/issues/63 에서.

    dronekit 설치하기

    라즈베리파이에서 gazebo로 sitl을 활용한 드론 프로젝트를 진행하려 한다. px4 + gazebo로 시뮬레이션을 설치하고 구동하는것까지는 수행했는데, 어떻게 조작해야하는지 몰라서 처음부터 공부중이다. dronekit-python 설치하기 $ sudo apt-get install python3-dev python3-opencv python3-wxgtk4.0 python3-pip python3-matplotlib python3-lxml python-pygame $ pip3 install PyYAML mavproxy --user $ echo "export PATH=$PATH:$HOME/.local/bin" >> ~/.bashrc $ sudo pip install dronekit $ dronekit-sit..

    ROS 기본 개념 (topic, service, action, parameter)

    노드(node)는 아래의 그림처럼 Node A, Node B, Node C라는 노드가 있을 때 각각의 노드들은 서로 유기적으로 Message로 연결되어 사용된다. 수행하고자 하는 테스크가 많아질수록 메세지로 연결되는 노드가 늘어나며 시스템이 확장될 수 있게된다. 노드들 간의 메세지가 토픽, 서비스, 액션, 파라미터이다. 토픽(Topic)은 아래와 같이 `Node A - Node B`, `Node A - Node C`처럼 비동기식 단방향 메시지 송수신 방식으로 msg 메시지 형태의 메시지를 발간하는 Publisher와 메시지를 구독하는 Subscriber 간의 통신이라고 볼 수 있다. 이는 1:N, N:1, N:N 통신도 가능하며 ROS 메시지 통신에서 가장 널리 사용되는 통신 방법이다. 서비스(Servi..

    ROS topic 통신

    보호되어 있는 글입니다.

    urdf를 이용하여 로봇청소기 만들기

    https://durian9s-coding-tree.tistory.com/162 원통좌표형 매니퓰레이터 URDF 만들기 cd ~/catkin_ws/src/testbot_description/urdf vim testbot_homework.urdf urdf파일을 작성하고 아래의 코드를 실행시킨다. $ roslaunch testbot_description testbot_homework.launch roslaunch를 실행시킨 상.. durian9s-coding-tree.tistory.com 어제 원통 좌표형 매니퓰레이터를 만들었었고, 오늘은 로봇 청소기 모양의 매니퓰레이터를 만들었다. 모양은 비교적 쉽에 만들었으나 조인트를 조정하여 바퀴를 만져봤을 때 생각지도 못한 부분의 디버깅으로 인해 시간이 다소 소요되었..

    원통좌표형 매니퓰레이터 URDF 만들기

    cd ~/catkin_ws/src/testbot_description/urdf vim testbot_homework.urdf urdf파일을 작성하고 아래의 코드를 실행시킨다. $ roslaunch testbot_description testbot_homework.launch roslaunch를 실행시킨 상황에서 새 터미널로 rviz를 실행함. 베이스 링크 실린터형으로 만들고 바닥에 반이 묻히는 것을 방지하기 위해 Yaw를 0.1 만큼 높여주었다.(원점이 length의 반절부에 있기 때문에) joint1 revolute와의 차이점을 찾기위해 continuous를 선택해서 만들었지만 큰 차이는 없었다. link1 원통형 링크1을 사용, 마찬가지로 yaw를 주었다. link1과 link2의 joint는 움직이..

    Manipulator 모델링

    ROS 설치할 때 완경설정도 같이 했었습니다. 다시 한번 환경설정을 확인하고 진행하겠습니다. 1. 환경설정 파일 불러오기 $ source /opt/ros/melodic/setup.bash 2.작업폴더 초기생성 및 초기화 $ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src $ catkin_init_workspace $ cd ../ #catkin_ws로 $ catkin_make $ ls # build, devel, src 폴더의 유무 확인 저는 이 모든걸 확인하고 진행했음에도 새로 생성한 폴더가 패키지로 인식이 되지않아 build 폴더와 devel 폴더를 다시 지우고 진행했습니다. $ sudo apt install ros-melodic-joint-state-publisher..

    Manipulator

    좌표변환(TF) Manipulators - 인간의 팔과 유사한 동작을 제공하는 기계적 장치 기저 (base) - 매니퓰레이터가 고정되어있는 부분 링크(link) - 기저, 관절, 말달장치를 연결해주는 강체 역할 관절(joint) - 로봇의 움직임을 만들어냄.(회전 운동현 / 병진 운동형) 말단장치(end effector) - 사람 손에 해당하는 부분 또는 장비 joint의 종류 revolute joint - ex)선풍기 Prismatic Joint - ex) 스캐너, 자동화장비 등 이 두가지가 가장 기본적이며, 다른 종류는 대게 변형된 것. DOF(Degreee of freedom) - 자유도 6개의 변수로 물체의 위치/ 자세가 표현 가능 == 6자유도로 표현이 가능 6개의 변수로 로봇의 말단 장치의 위..

    로봇의 활용 분야

    로봇은 이미 우리 삶에 스며들어있다. 산업현장에서의 자동화기계, 배달로봇, 서빙로봇 심지어 가정 내의 자동청소로봇 까지. 로봇이 우리 삶에 제공해 줄 수 있는 가치를 조사해봤다. 일본, 미국, 유럽 등은 이미 정부차원으로 프로잭트를 진행하는 등 큰 투자를 진행하고있다. 산업용 로봇과 서비스용 로봇의 발전은 빠르게 진행되고있고 앞으로의 성장 또한 큰 폭으로 진행될 것으로 예상된다. 실버케어 로봇의 경우 부족한 인력을 보완하고 의료 및 사회 안전 등 전문서비스용 로봇, 개인활동 보조 및 우울증 해소를 위해 활용되고있다. 실버케어 로봇은 개인의 활동 보조, 우울증 해소를 위한 개인 로봇 서비스를 제공하고, 전문서비스용 로봇은 원격진료, 거동이 불편하거나 근력보조를 통해 업무 효율을 높여주는 로봇 슈트등으로 활..

    ROS 설치

    ROS 설치 사용하고 있는 우분투의 버전은 18.04입니다. ROS Melodic을 설치합니다. 연결되어있는 명령어를 한줄 보기좋게하려고 한줄 내려서 적으면 햇갈려서 길게적었습니다~ 확인해주세요 #Source.list설정 $ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' #Key 설정하기 $ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 #Decian 설치하기 $ sudo ap..

    ROS란 / 왜 ROS를 배워야 하는가? / 다른 로봇 플랫폼은?

    ROS란? 로봇 운영체제(ROS,Robot Operating System)는 로봇 응용 프로그램을 개발할 때 필요한 하드웨어 추상화, 하위 디바이스 제어, 일반적으로 사용되는 기능의 구현, 프로세스간의 메시지 패싱, 패키지 관리, 개발환경에 필요한 라이브러리와 다양한 개발 및 디버깅 도구를 제공한다. ROS는 로봇 응용 프로그램 개발을 위한 운영체제와 같은 로봇 플랫폼이다. 하드웨어 플랫폼을 하드웨어 추상화로 포함하고 있으며, 로봇 응용 소프트웨어 개발을 지원을 위한 소프트웨어 플랫폼이면서 이기종의 하드웨어에서 사용 가능한 운영 체제와 같은 기능을 갖추고 있다. 쉽게 말하자면 로봇운영시스템이라고는 하지만 OS가 아닌 로봇과 로봇 사이의 통신을 만들어주거나, 로봇과 센서의 통신을 이어주거나, 사람들의 코드..

    라즈베리파이3 세팅하기

    몇번을 다시 하는지 모르겠다. https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit Operating system images – Raspberry Pi The Raspberry Pi is a tiny and affordable computer that you can use to learn programming through fun, practical projects. Join the global Raspberry Pi community. www.raspberrypi.org 라즈베리파이 os다운을 받는다. 다운 후 압축을 풀면 이미지 파일이 나오는데 알집으로 안풀려서 뭐지 싶었다. 이것 자체를 사용할 것. https:..

    MCU(Micro Controller Unit) 와 MPU(Micro Processor Unit)

    MPU와 MCU는 모두 명령어 처이를 위한 장치이다. MPU(마이크로 프로세서)는 프로세서 내부에 레지스터, 제어장치, 연산장치를 포함하여 연산에 특화된 기능을 갖는 장치이다. 개별 연산수행만 가능하고, ROM, RAM과 같은 입출력 포트같은 출력장치 등의 주변장치가 있어야만 사용 가능하다. MCU(마이크로 컨트롤러)는 마이크로 프로세서와 이를 사용하기 위한 메모리, 입력장치등의 필요 기능이 함께 집적된 장치를 말한다. 단독으로 사용이 가능하여 마이컴 또는 작은 컴퓨터로 불리기도 하고, 아두이노에도 마이크로 컨트롤러가 포함된다. 결론. MPU는 저장장치, 출력장치와 함꼐 사용해야하는 연산목적의 CPU. MCU는 저장장치와 출력장치가 내장되어 단독 사용이 가능한 CPU이다. 출처 - devicemart.b..