์ƒˆ์†Œ์‹

python/ROS

ROS ์„ค์น˜(๋ฐ์Šคํฌํƒ‘), ๊ฐœ๋ฐœ์„ ํŽธ๋ฆฌํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ๋“ค ์•ˆ๋‚ด

  • -
๐Ÿ’ป

Ubuntu Linux 18.04๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ๋Š” ๋ฐ์Šคํฌํƒ‘์„ ๊ธฐ์ค€์œผ๋กœ ROS๋ฅผ ์„ค์น˜ํ•ด ๋ด…์‹œ๋‹ค

์ค€๋น„๋ฌผ


  • ์šฐ๋ถ„ํˆฌ ๋ฆฌ๋ˆ…์Šค๊ฐ€ ์„ค์น˜๋œ ๋ฐ์Šคํฌํƒ‘ (ํ˜น์€ ์™ธ์žฅ ๊ทธ๋ž˜ํ”ฝ์„ ํฌํ•จํ•œ ๋…ธํŠธ๋ถ) 1๋Œ€

๐Ÿ’ก
rufus ๋Œ€์‹ , BalenaEtcher๋ฅผ ์‚ฌ์šฉํ•ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ํ›„์— ์ ฏ์Šจ๋‚˜๋…ธ์— ์šฐ๋ถ„ํˆฌ ์„ค์น˜ ์‹œ์—๋„ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Terminator ์„ค์น˜


๋‹ค์ค‘ ๋ถ„ํ•  ํ„ฐ๋ฏธ๋„์„ ์œ„ํ•œ ์ธํ„ฐํŽ˜์ด์Šค

# ์„ค์น˜ ์ „ ์—…๋ฐ์ดํŠธ
$ sudo apt-get update

# terminator ์„ค์น˜
$ sudo apt-get install terminator -y

  • ํ†ตํ•ฉ๊ฐœ๋ฐœํ™˜๊ฒฝ(IDE)
    1. QTcreator+Qt Creator Plugin for ROS

      ์„ค์น˜: sudo apt-get install qtcreartor

      ์žฅ์  :CmakeLists.txt์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ, rqt ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐ GUI ๊ฐœ๋ฐœํ•˜๊ธฐ ์‰ฌ์›€

    1. vscode +ROS extension

      ์„ค์น˜:์•„๋ž˜์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.

      ์žฅ์  :๊ฐ„๋‹จํ•œ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ ์ง€ํ–ฅ,๋น ๋ฆ„

    1. Eclipse

      ๋ฌด๊ฑฐ์›€


vscode ์„ค์น˜


Visual Studio Code - Code Editing. Redefined
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.
https://code.visualstudio.com/
  • Visual Studio IntelliCode
  • Project Manager
  • URDF
  • C/C++
  • Python
  • CMake Tools
  • Material Theme
  • Code runner
  • etc...

Additional Setup


$ sudo apt-get purge modemmanager

$ sudo adduser [์‚ฌ์šฉ์ž ๊ณ„์ • ์ด๋ฆ„]
$ sudo usermod -aG sudo [์‚ฌ์šฉ์ž ๊ณ„์ • ์ด๋ฆ„]

reference : How to create sudo user on Ubuntu 18.04 Bionic Beaver Linux

Ubuntu๋Š” Native๋‚˜ VM์ด๋‚˜ ํฐ ์ƒ๊ด€์ด ์—†์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•˜์‹œ๋Š” PC์— Ubuntu๋ฅผ ๋“€์–ผ๋ถ€ํŒ…์œผ๋กœ ์„ค์น˜ํ•˜๊ธฐ๊ฐ€ ๊บผ๋ ค์ง€์‹ ๋‹ค๋ฉด VIrtualBox๋“ฑ์„ ์ด์šฉํ•ด ์„ค์น˜๋ฅผ ํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.

Ubuntu ๋ฒ„์ „์— ๋”ฐ๋ผ ์ง€์›๋˜๋Š” ROS์˜ ๋ฒ„์ „์ด ๋‹ค๋ฅด๋ฏ€๋กœ ์•„๋ž˜์˜ ํ‘œ์— ์ ํžŒ Ubuntu ๋ฒ„์ „๊ณผ ROS ๋ฒ„์ „์ด ์ผ์น˜ํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Ubuntu VersionROS Version
Ubuntu 16.04ROS Kinetic
Ubuntu 18.04ROS Meldoic
Ubuntu 20.04ROS Noetic

Why Meldoic?

Ubuntu๋Š” ๋ฆด๋ฆฌ์Šค 20.04์—์„œ ํŒŒ์ด์ฌ 2 ์ง€์›์„ ์ค‘๋‹จํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ROS๊ฐ€ ํ•ด๋‹น ๋ฒ„์ „์˜ ์šฐ๋ถ„ํˆฌ๋ฅผ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋„๋ก Melodic Morenia๋กœ ์‹œ์ž‘ํ•˜๋Š” ROS Python ํŒจํ‚ค์ง€๋Š” Python 2.7๊ณผ Python 3.5 ์ด์ƒ์„ ์ง€์›ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Melodic ๊ฐœ๋ฐœ ์ค‘์—๋Š” Python 2์™€ Python 3(rosdep ํ‚ค ํฌํ•จ)๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•˜๋Š” ์ž‘์—…์ด ์ˆ˜ํ–‰๋˜์–ด ROS ํŒจํ‚ค์ง€ ๊ฐœ๋ฐœ์ž๋“ค์ด ํŒŒ์ด์ฌ ๋‘ ๋ฒ„์ „ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.

Ubuntu ROS Melodic ์„ค์น˜


$ sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

$ curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add -

$ sudo apt update
$ sudo apt install ros-melodic-desktop-full

$ echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
$ source ~/.bashrc
$ sudo apt install python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
$ sudo rosdep init
$ rosdep update

์ฐธ๊ณ  ์ž๋ฃŒ : ROS Wiki

Wiki
A ROS distribution is a versioned set of ROS packages. These are akin to Linux distributions (e.g. Ubuntu). The purpose of the ROS distributions is to let developers work against a relatively stable codebase until they are ready to roll everything forward.
http://wiki.ros.org/Distributions
๐Ÿ’ก
์œ„ ์„ค์น˜๋Š” ์ ฏ์Šจ ๋‚˜๋…ธ์— ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ!! ๋ฐ์Šคํฌํƒ‘(๋…ธํŠธ๋ถ)์šฉ ์„ค์น˜์ž…๋‹ˆ๋‹ค!!

์•ž์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐฐํฌํŒ ROS ํŒจํ‚ค์ง€๋“ค์„ ์ถ”๊ฐ€ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

$ sudo apt-get install ros-melodic-<package name>

์ž๋™์™„์„ฑ tabํ‚ค๋ฅผ ์ ๊ทน ์‚ฌ์šฉํ•˜์„ธ์š”!!

์„ค์น˜ ํ™•์ธ


  • ์ƒˆ๋กœ ํ„ฐ๋ฏธ๋„์„ ์—ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • $ roscore ์‹คํ–‰
$ roscore
... logging to /home/kimsooyoung/.ros/log/5b440a74-4cda-11eb-a263-9cb6d08bf543/roslaunch-kimsooyoung-XPS-13-9370-10527.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://localhost:38251/
ros_comm version 1.14.10


SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.10

NODES

auto-starting new master
process[master]: started with pid [10537]
ROS_MASTER_URI=http://localhost:11311/

setting /run_id to 5b440a74-4cda-11eb-a263-9cb6d08bf543
process[rosout-1]: started with pid [10559]
started core service [/rosout]

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ปค๋งจ๋“œ๋ผ์ธ์ด ๋ณด์˜€๋‹ค๋ฉด ์™„๋ฃŒ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค!! ๐Ÿ˜‰

์‹œํ—˜์‚ผ์•„ ROS ํ”„๋กœ๊ทธ๋žจ์„ ํ•˜๋‚˜ ์‹คํ–‰์‹œ์ผœ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

#์ƒˆ ํ„ฐ๋ฏธ๋„์„ ์‹คํ–‰
$ rosrun turtlesim turtlesim_node

# ์ƒˆ ํ„ฐ๋ฏธ๋„ ์‹คํ–‰
$ rosrun turtlesim turtle_teleop_key
#ํ‚ค๋ณด๋“œ๋กœ ํ„ฐํ‹€๋ด‡ ์กฐ์ข…

์œ„ ์ปค๋งจ๋“œ ๋ผ์ธ๋“ค๋„ ๋ชจ๋‘ ์‹คํ–‰๋˜์…จ๋‹ค๋ฉด, ๋ฌธ์ œ์—†์ด ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ปค๋งจ๋“œ ์š”์•ฝ(๊ฐ ๋ช…๋ น์–ด๋‹น ํ•˜๋‚˜์˜ ํ„ฐ๋ฏธ๋„์— ์ž…๋ ฅ)

~/.bashrc ์ˆ˜์ •

geit ํŽธ์ง‘๊ธฐ ์‹คํ–‰ ์•ˆ๋„์‹œ vim ์ด๋‚˜ nano ๋กœ ์‹คํ–‰


$ gedit ~/.bashrc

# ํŒŒ์ผ ์ œ์ผ ์•„๋ž˜์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ ์ž…๋ ฅ
# alias ํ‚ค์›Œ๋“œ ๋ช…๋ น ์„ค์ •
alias eb='gedit ~/.bashrc'#.bashrc ํŒŒ์ผ ์ˆ˜์ •
alias sb='source ~/.bashrc'# ์ˆ˜์ •ํ•œ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ ์šฉ
alias gs='git status'#ํ˜„์žฌ ์ €์žฅ์†Œ์—์„œ์˜ ์ž‘์—… ๋‚ด์šฉ์„ ํ™•์ธํ•œ๋‹ค.
alias gp='git pull'#์ธ์ˆ˜๋‚˜ ์˜ต์…˜ ์—†์ด ์‹คํ–‰ํ•˜๋ฉด ํ˜„์žฌ ๋กœ์ปฌ์— ๋“ฑ๋ก๋œ ์ถ”์  ์ค‘์ธ ๋ธŒ๋žœ์น˜์— ํ•ด๋‹นํ•˜๋Š” ์†Œ์Šค ๋ชจ๋‘๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
alias cw='cd ~'# ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ด๋™
alias cs='cd ~/src'# srcํด๋”๋กœ ์ด๋™
alias cm='cd ~ && catkin_make'#ํ™ˆ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ์ด๋™&&์บํ‚จํŒจํ‚ค์ง€์ƒ์„ฑ

alias cma='catkin_make -DCATKIN_WHITELIST_PACKAGES=""'
alias cop='catkin_make --only-pkg-with-deps'
alias sds='source devel/setup.bash'#์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ ์‹œ์Šคํ…œ์— ๋ฐ˜์˜
alias axclient='rosrun actionlib axclient.py'
# ์ข…๋ฃŒ ํ›„ ํ„ฐ๋ฏธ๋„ ์—…๋ฐ์ดํŠธ

$ source ~/.bashrc
#์ˆ˜์ •ํ•œ ํŒŒ์ผ์„ ์‹œ์Šคํ…œ์— ๋ฐ˜์˜
#ip์ฃผ์†Œ ๋ณ€๊ฒฝ์š”๋ง

์œ„์—์„œ ์„ค์ •ํ•œ ํ™˜๊ฒฝ์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์œผ์‹œ๋ฉด ์•„๋ž˜์˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

export | grep ROS

๊ฐ๊ฐ์˜ ๋ช…๋ น์ด ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š”์ง€๋Š” ์•ž์œผ๋กœ ๊ณ„์†ํ•ด์„œ ๋‹ค๋ค„๋ด…๋‹ˆ๋‹ค.

๋‹ค๋งŒ, alias๊ฐ€ ์–ด๋–ค ๊ฒƒ์ธ์ง€๋งŒ ์‚ด์ง ์งš์–ด๋ณด๊ณ  ๋„˜์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค.


Uploaded by N2T

'python > ROS' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ROS ๊ธฐ๋ณธ๋ช…๋ น์–ด  (0) 2023.04.04
ROS  (0) 2023.04.04
Workspace ํ„ฐํ‹€๋ด‡ ์ฝ”๋“œ๋กœ ์˜ˆ์ œ ์‹คํ–‰  (0) 2023.04.03
๋ฆฌ๋ˆ…์Šค ํ„ฐ๋ฏธ๋„ ๋‹จ์ถ•ํ‚ค  (0) 2023.04.03
์ค€๋น„์‚ฌํ•ญ  (0) 2023.04.03
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.