반응형

ROS2 30

[ros2] colcon build 빌드 옵션

ros2에서 일반적으로 패키지를 빌드할때 워크스페이스로 이동 후 colcon build 명령어를 사용한다. 많이 사용하는 빌드 옵션에 대해서 알아보자. 1. 옵션 없음: 워크스페이스 내의 모든 패키지를 빌드 colcon build 2. --packages-select: 특정 패키지만 선택하여 빌드 colcon build --packages-select [패키지 이름] 3. --packages-up-to: 특정 패키지 및 의존성 패키지를 함께 빌드 colcon build --packages-up-to [패키지 이름] 4. --symlink-install: 빌드 시 install 폴더로 파일을 복사하는 것이 아니라 심볼릭 파일을 생성. 즉 파일을 일부 수정하면 --symlink-install 옵션을 사용하지..

[ros & ros2] 표준 단위

ros & ros2 커뮤니티에서는 패키지 간의 단위 불일치로 인한 불편과 소프트웨어 버그를 방지하기 위해 ros & ros2 프로그래밍에 사용하는 표준 단위로 세계적으로 가장 널리 사용되고 있는 국제단위계인 SI 단위(SI unit, 7개)와 국제단위계의 7개 기본 단위를 조합해 만들어진 SI 유도 단위를(SI derived unit, 20개) 표준 단위로 정하였다. 아래는 로봇공학에서 주로 많이 사용하는 단위들이다. 1. 길이-length: Meter(m) 2. 질량-mass: Kilogram(kg) 3. 시간-time: Second(s) 4. 전류-current: Ampere(A) 5. 평면각-angle: Radian(rad) 6. 주파수-frequency: Hertz(hz) 7. 힘-force: N..

OMOROBOT/ROS & ROS2 2023.06.12

[error] termios.error: (25, 'Inappropriate ioctl for device')

[문제] ros2 run 파일인 'teleop_twist_keyboard.py'를 launch 파일로 만들어 실행할때 에러 발생, ex) teleop_twist_keyboard.launch.py from launch import LaunchDescription form launch.actions import ExecuteProcess def generate_launch_description(): return LaunchDescription( [ExecuteProcess( cmd=['ros2', 'run', 'teleop_twist_keyboard', 'teleop_twist_keyboard'], output='screen' ) ] ) [예상 원인] 정확하게 파악 못 했음 [해결 방법] prefix='gn..

ERROR 2023.05.17

[ros2] ros2가 쉬워지는 .bashrc 설정

ros2를 사용하다보면 setup.bash 파일을 source 해야하는 경우 및 긴 명령어를 사용하는 경우가 많다. 그러나 매번 수동으로 하기에는 귀찮다. 그래서 .bashrc를 사용하여 자동화 해보자. .bashrc에 내용을 추가해두면 terminal이 실행될때 해당 부분이 자동으로 실행된다. 1. 일단 ./bashrc 파일을 열어보자. gedit ~/.bashrc # 터미널을 통한 원격접속인 경우 nano ~/.bashrc를 사용하자. 2. 제일 밑줄에 아래와 같이 추가하자. # ros2 사용을 위한 환경 설정(버전에 따라 foxy 부분 수정) source /opt/ros/foxy/setup.bash # ros2 사용을 위한 환경 설정(workspace 이름에 따라 ros2_ws 부분 수정) sour..

[ros2] ros2 기본 명령어_5

1. ros2 action list: 현재 실행되고 있는 액션의 이름을 보여준다. ros2 action list # 터미널 입력 (ros2 run turtlesim turtlesim_node 실행 중) ros2 action list # 터미널 출력 /turtle1/rotate_absolute # 터미널 입력 (액션 이름과 타입을 같이 보여준다.) ros2 action list -t # 터미널 출력 /turtle1/rotate_absolute [turtlesim/action/RotateAbsolute] ros2 action type 이라는 명령은 없다. 타입을 보고 싶다면 ros2 action list -t 명령으로 확인하자. 2. ros2 action info: 현재 실행되고 있는 액션의 정보를 보여준다..

[ros2] ros2 기본 명령어_4

1. ros2 service list: 현재 실행되고 있는 서비스의 이름을 보여준다. ros2 service list # ros2 run turtlesim turtlesim_node 실행 중일 경우 /clear /kill /reset /spawn /turtle1/set_pen /turtle1/teleport_absolute /turtle1/teleport_relative ... ... # 서비스 타입까지 같이 표시하려면 -t 옵션 사용 ros2 service list -t /clear [std_srvs/srv/Empty] /kill [turtlesim/srv/Kill] /reset [std_srvs/srv/Empty] /spawn [turtlesim/srv/Spawn] ... ... ros2 servic..

[ros2] ros2 기본 명령어_3

1. ros2 topic list: 현재 실행되고 있는 토픽의 이름을 보여준다. ros2 topic list # 터미널 입력 (ros2 run turtlesim turtlesim_node 실행 중) ros2 topic list # 터미널 출력 /parameter_events /rosout /turtle1/cmd_vel /turtle1/color_sensor /turtle1/pose # 터미널 입력 (토픽 타입을 추가로 보여준다.) ros2 topic list -t # 터미널 출력 /parameter_events [rcl_interfaces/msg/ParameterEvent] /rosout [rcl_interfaces/msg/Log] /turtle1/cmd_vel [geometry_msgs/msg/Twis..

[ros2] ros2 기본 명령어_2

노드(node)는 ros2 시스템의 가장 기본적인 실행 단위이고, 로봇 시스템의 여러 기능을 개별 노드로 만들어서 전체 시스템을 구동하는 것이라고 간단하게 생각하면 된다. 1. ros2 node list: 현재 실행되고 있는 노드의 이름을 보여준다. ros2 node list # 터미널 입력 (ros2 run turtlesim turtlesim_node 실행 중) ros2 node list # 터미널 출력 /turtlesim 2. ros2 node info: 현재 실행되고 있는 노드의 정보를 보여준다. ros2 node infe [노드 이름] # [노드 이름]은 ros2 node list를 통해서 알 수 있다. # 터미널 입력 (ros2 run turtlesim turtlesim_node 실행 중) ro..

[ros2] ros2 배포판 버전

본격적으로 ros2에 대해서 공부하기 전에 간단하게 ros2 배포판 버전에 대해서 알아보자.전반적인 버전 정보는 아래 사이트를 참고하자.1. 현시점(2022.07.30)에 유효한 배포판 버전은 Foxy Fitzroy, Galactic Geochelone, Humble Hawksbill 3가지 이다. Rolling은 개발 버전이다.1. 현시점(2025.05.31)에 유효한 배포판 버전은 Humble Hawksbill(May 2027, LTS), Jazzy Jalisco(May 2029, LTS), Kilted Kaiju(December 2026) 3가지 이다. Rolling은 개발 버전이다. 2. 배포판 이름에서 알 수 있듯이 알파벳 순서대로 이름이 붙고 h까지 개발 되었다. (a -> b -> c -> ..

반응형