전체 글 보기
-
셸 스크립트 작성하기Linux 2024. 11. 19. 00:37
Shebang 지정상단에 shebang(#!, 스크립트를 실행할 셸/인터프리터)을 지정해줘야 한다.지정하지 않았을 경우 기본 셸로 실행된다. 기본 셸은 다음 명령어로 확인할 수 있다.echo $SHELL bash일 경우#!/bin/bash zsh일 경우#!/bin/zshzsh에서만 지원되는 문법을 사용할 경우 상단에 zsh 명시를 해줘야 제대로 실행된다. 주석 처리#을 붙여 나타낸다.e.g.# Installation script for ros2 변수변수 선언일반적으로 일반 변수는 snake_case로, 환경 변수는 SCREAMING_SNAKE_CASE로 쓰는 것 같다.= 전후로 공백이 없어야 한다.e.g.workspace_path="/home/user/catkin_ws" 변수 사용$를 붙여..
-
ROS1, ROS2 동시 사용ROS 2024. 11. 12. 07:17
ROS1이 설치된 상태에서 ROS2를 같이 설치해줘야 하는 경우에 대한 내용이다.설치는 그냥 각각 공식 문서 보고 똑같이 해주면 된다. 단, 소스 코드를 실행하기 전에 각 코드에 맞게 ROS 버전을 적용을 해줘야 하는데,매번 source 시키기 번거로우므로 .bashrc(zshell일 경우 .zshrc) 파일에 스위칭 함수 같은 걸 만들어서 넣어주면 편리하다. e.g. Ubuntu 18.04에 ROS1(melodic)과 ROS2(eloquent)를 설치한 경우# for ros1rosv1() { source /opt/ros/melodic/setup.bash source ~/ros1_ws/devel/setup.bash}# for ros2rosv2() { source /opt/ros/eloquent/..
-
정규표현식 re.sub() - 특정 문자열 교체Python 2023. 4. 6. 07:11
re 파이썬 정규표현식(Regular Expression) 라이브러리 사용 방법 import re re.sub(패턴, 바꿀 문자열, 적용할 문자열) 바꿀 문자열을 ''로 설정함으로써 제거할 수 있다. 숫자를 문자열로 교체 0-9 사이의 문자를 'num'으로 변환한다. >>> s = 'windyday0728!!!' >>> re.sub('[0-9]','num',s) 'windydaynumnumnumnum!!!' 숫자만 제거 0-9 사이의 문자를 ''로 변환함으로써 제거한다. >>> s = 'windyday0728!!!' >>> re.sub('[0-9]','',s) 'windyday!!!' ^의 사용 >>> s = 'windyday0728!!!' >>> re.sub('[0-9]','@',s) # 숫자를 @로 ..
-
udev rules 심볼릭링크 설정 - USB 장치 포트 이름 고정하기Linux 2023. 3. 1. 19:26
udev /dev 디렉터리의 장치 노드를 관리하는 장치 관리자 (userspace /dev) udevadm 장치 제어, 테스트 등에 사용하는 장치 관리 명령어 option : info, control, monitor, test 등 udev rules 설정 장치의 port name을 특정 이름으로 고정시킴으로써 PC 재부팅 혹은 USB 재연결 시 장치 이름이 바뀌는 것을 방지한다. e.g. ttyUSB0 → ttyGPS rules 설정에 필요한 정보 Vendor ID, Product ID (Model ID), Serial number 등 설정 과정 1) ls 명령어를 이용해 /dev 디렉터리 내 tty로 시작하는 장치 목록을 조회한다. $ ls /dev/tty* /dev/tty /dev/tty0 /dev/..
-
ROS gdb, valgrind 디버깅ROS 2023. 3. 1. 15:57
ROS 패키지를 gdb와 valgrind로 디버깅하는 방법에 대해 기록한다.빌드 타입 옵션을 debug로 설정한 상태에서 빌드해야 보다 정확한 위치를 파악할 수 있다.e.g. catkin_make -DCMAKE_BUILD_TYPE=debug rosrun, roslaunch 커맨드 실행 시 옵션으로 붙여주거나, 아예 launch 파일을 수정한 후 실행하는 방법이 있다. 1. roslaunch 커맨드 실행커맨드에 prefix 옵션을 붙여준다.e.g.roslaunch --prefix 'gdb -ex run --args' my_package my_launch.launchroslaunch --prefix 'valgrind' my_package my_launch.launch 2. rosrun 커맨드 실행마찬가지로 ..
-
cat 명령어 - 파일 내용 출력, 연결Linux 2023. 3. 1. 14:32
cat 터미널 창에 파일의 내용을 출력하거나, 다른 파일과 합치는(concatenate) 명령어 $ cat > new_file.txt hello world ^C > : 명령어 실행 후 파일의 내용(hello world)을 입력하고 ctrl+c(^C)를 눌러 입력 종료. new_file.txt가 없을 경우 새로 생성, 존재할 경우 기존 내용을 덮어 씀. $ cat >> new_file.txt programmed to work and not to feel ^C >> : 명령어 실행 후 파일의 내용(programmed…)을 입력하고 ctrl+c(^C)를 눌러 입력 종료. new_file.txt가 없을 경우 새로 생성, 존재할 경우 기존 내용 뒤에 이어 씀. $ cat new_file.txt hello worl..
-
리눅스 자주 사용하는 명령어 모음Linux 2023. 2. 27. 02:17
* 명령어 뒤에 --help를 입력하면 해당 명령어의 사용 방법과 옵션을 알 수 있음. 원격 접속 (ssh)0. 설치가 안 되어 있다면 아래 명령어로 설치sudo apt install openssh-server 1. 접속을 위해 방화벽 허용sudo ufw enable && sudo ufw allow 22/tcp 2. 연결하고자 하는 pc의 id와 ip주소 확인 (ifconfig)3. 아래 명령어 참고하여 연결 시도 (-Y : yes)ssh -Y {아이디}@{ip 주소}e.g. ssh -Y candyz@19.94.7.28 4. 비번 입력5. exit(or ctrl+c) 입력하여 연결 해제 원격 파일 전송 (scp)cp와 비슷하게 사용 가능sudo scp {파일 이름} {아이디}@{ip 주소}:{옮길 디렉토..
-
osm_cartography - RViz에 오픈스트리트맵(OSM) 데이터 시각화하기ROS 2022. 12. 25. 17:31
osm_cartography오픈스트리트맵(OpenStreetMap)에서 다운받은 데이터를 RViz에 띄워주는 ROS 패키지 (BSD Lisence)http://wiki.ros.org/osm_cartography osm_cartography - ROS Wikimelodic noetic Show EOL distros: EOL distros: fuerte groovy hydro indigo kinetic lunar fuerte: Documentation generated on January 02, 2014 at 11:33 AMgroovy: Documentation generated on October 06, 2014 at 03:04 AMhydro: Documentation generated onwik..