일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 티스토리챌린지
- 오블완
- esp32
- 국내주식
- 힐스테이트 광교산
- MQTT
- 나스닥
- 매터
- 미국주식
- 배당
- 코스피
- RS-485
- 월패드
- Python
- homebridge
- ConnectedHomeIP
- Bestin
- SK텔레콤
- cluster
- Espressif
- 파이썬
- 공모주
- 해외주식
- 현대통신
- Home Assistant
- 홈네트워크
- matter
- 애플
- raspberry pi
- Apple
- Today
- Total
목록Software/ROS (9)
YOGYUI
ROS2를 EtherCAT(이더캣) 통신 기반 디바이스(서보모터, 센서 등)와 연동하는 방법에 대해 알아본 바 있다ROS2 + IgH EtherCAT Master 구동 환경 구축 ROS2 + IgH EtherCAT Master 구동 환경 구축지난 포스팅에서 SBC 혹은 임베디드 PC에 Linux Ubuntu 22.04 LTS 운영체제 설치 후 PREEMPT_RT 커널 패치를 통해 Real-Time(리얼타임, 실시간) 구동 환경을 설정한 뒤 EhterLab의 IgH EtherCAT Master를 설치해 EtherCAT Myogyui.tistory.com이 글에서는 이더캣 디바이스의 SDO(Service Data Object) 값을 동적으로 읽고 쓰기 위한 ROS2 Service Call 방법에 대해 알아본..
Ubuntu 24.04 LTS 및 ROS2 Rolling 이상 버전부터는 Gazebo Classic이 공식적으로 지원이 중단되긴 하지만 (EOL), 아직까지는 gzsim(ignition)보다 Gazebo Classic이 손에 익은 지라 애용하는 중 ^^;; (아직까지 ROS1을 사용하는 어찌보면 대단한 로봇 업체들도 있는걸 보면 오래된 툴을 사용하는게 마냥 나쁜 건 아닐지도?) 이번 포스팅에서는 Gazebo 상에 spawn된 entity의 Pose를 ROS2 Service 호출을 통해 Get/Set할 수 있는 방법에 대해 소개해보도록 하겠다1. world 파일(sdf)에 플러그인 추가 (libgazebo_ros_state.so)Gazebo상에 spawn된 entity들의 pose 정보를 가져오거나 값을 ..
[Environment]- Ubuntu 22.04.5 LTS- ROS2 Iron1. 문제상황 분석ROS2 Control의 admittance controller는 Force/Torque Sensor의 값을 토대로 로봇 end-effector의 이동 위치(혹은 속도)를 계산하기 위해 기구학(kinematics) 플러그인을 지정해 사용할 수 있다# https://github.com/ros-controls/ros2_controllers/blob/master/admittance_controller/src/admittance_controller_parameters.yamladmittance_controller: kinematics: plugin_name: { type: string, de..
EtherLab의 리눅스용 이더캣(EtherCAT) 마스터 소스코드인 IgH EtherCAT Master for Linux에서 제공하는 CLI(Command Line Interface)를 통해 손쉽게 이더캣 슬레이브에 SDO(Service Data Object, 메일박스를 이용한 비주기 통신 프로토콜)를 통한 Object Dictionary 읽기/쓰기를 할 수 있다https://gitlab.com/etherlab.org/ethercat EtherLab / EtherCAT Master · GitLabIgH EtherCAT Master for Linuxgitlab.com이 때, CLI로 값 입력 시 음수를 입력할 때는 약간의 트릭(?)이 필요하기에 그 방법을 간단하게 공유하도록 한다대상 소스코드 버전: Ig..
ROS2 - Configure namespace for multiple robots environment[ROS2 구동 환경]- ROS2 iron- Ubuntu 22.04.4 LTS - Python + XML + YAML 조합으로 런치 스크립트(launch script) 구성 (모든 노드는 rclpy의 Node 혹은 ComposableNode로 생성)- 로봇 모델은 xml 포맷의 URDF로 구성하며, Xacro 사용- 필수 설치 ROS 패키지에 대해서는 이글에서는 다루지 않음 (정보 필요시 댓글)1. Launch Argument 추가ROS2 실행 인자로 'namespace'를 추가해 ros2 launch로 실행할 때 네임스페이스를 변경할 수 있게 해준다launch 파일명은 임의로 my_robot.lau..
ROS2는 나름 다룬 경력도 오래됐고, ROS2와 EtherCAT을 연동해 로봇을 구동하는 프로젝트를 진행한지도 어언 1년이 넘어가고 있지만 ROS 관련 글을 왠만하면 포스팅하지 않으려 했다 (다뤄야되는 내용이 꽤나 전문적이다보니 글이 길어지는 경향이...) 그런데... 블로그 댓글을 보고 완전히 무시하는건 또 도리가 아닌것 같아 간단하게나마 글을 남겨야한다는 의무감이 생긴다 ㅠ ROS 관련해선 최대한 이론이나 작동 원리에 대한 설명은 배제한채 담백하게 코드 위주로만 글을 올려봐야겠다 ※ 이 글에서는 Ubuntu에 PREEMPT_RT 리눅스 커널이 설치된 실시간 환경과, ROS2 Humble 및 IgH EtherCAT Master가 설치된 환경을 필요로 한다 환경 구축 방법에 대한 내용은 아래 두 글을 ..
지난 포스팅에서 SBC 혹은 임베디드 PC에 Linux Ubuntu 22.04 LTS 운영체제 설치 후 PREEMPT_RT 커널 패치를 통해 Real-Time(리얼타임, 실시간) 구동 환경을 설정한 뒤 EhterLab의 IgH EtherCAT Master를 설치해 EtherCAT Master 디바이스로 구축하는 방법을 알아봤다 EtherCAT Master 환경 구축 - Ubuntu 22.04 LTS + PREEMPT_RT 커널 패치 EtherCAT Master 환경 구축 - Ubuntu 22.04 LTS + PREEMPT_RT 커널 패치 Setting EtherCAT Master Environment - Ubuntu 22.04 LTS + PREEMPT_RT Kernel Patch ROS2에서 EtherC..
Setting EtherCAT Master Environment - Ubuntu 22.04 LTS + PREEMPT_RT Kernel Patch ROS2에서 EtherCAT 기반 서보모터, IO보드 등을 제어하기 위해 사용할 수 있는 유용한 플러그인 EtherCAT Driver ROS2 Stack는 EtherLab의 IgH EtherCAT Master가 설치된 Ubuntu 22.04 운영체제에서 구동되어야 하는데, EtherCAT의 PDO 주기 통신을 문제없이 구동하기 위해서는 Ubuntu OS의 리눅스 커널을 Real-Time(리얼타임, 실시간) 성능이 보장되도록 환경을 구축해야 한다※ Xenomi 환경을 구축하는 방법도 있지만, Ubuntu 22는 RT 커널 패치를 손쉽게 구할 수 있어 개인적으로 더..
EtherCAT Driver ROS2 Stack SDO Async exchange service - ioctl magic difference issue 더보기 ROS2 중급 개발자 이상을 대상으로 작성된 글 (workspace, colcon 등 기초적인 내용은 다루지 않음) 1. 문제 상황 회사에서 자체적으로 만든 EtherCAT 모터 드라이버 기반 6축 다관절 로봇 제어 솔루션 구현을 위해 ROS2(Humble) / ros2_control / IgH EtherCAT Master(EtherLAB)를 설치한 뒤 ICube-Robotics의 EtherCAT Driver ROS2 Stack 패키지를 사용하고 있다 document page: https://icube-robotics.github.io/etherc..