1. 지역설정
sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
2. 소스설정
sudo apt update && sudo apt install curl gnupg2 lsb-release
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(. /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null
3. Ros2 패키지 설치
sudo apt update
sudo apt install ros-foxy-desktop ros-foxy-rmw-fastrtps* ros-foxy-rmw-cyclonedds*
#패키지 설치확인
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker
4. ROS 개발툴 설치
sudo apt update && sudo apt install -y \
build-essential \
cmake \
git \
libbullet-dev \
python3-colcon-common-extensions \
python3-flake8 \
python3-pip \
python3-pytest-cov \
python3-rosdep \
python3-setuptools \
python3-vcstool \
wget
python3 -m pip install -U \
argcomplete \
flake8-blind-except \
flake8-builtins \
flake8-class-newline \
flake8-comprehensions \
flake8-deprecated \
flake8-docstrings \
flake8-import-order \
flake8-quotes \
pytest-repeat \
pytest-rerunfailures \
pytest
sudo apt install --no-install-recommends -y \
libasio-dev \
libtinyxml2-dev \
libcunit1-dev
5. 빌드테스트
source /opt/ros/foxy/setup.bash
mkdir -p ~/robot_ws/src
cd ~/robot_ws/
colcon build --symlink-install
6. run commands 설정
nano ~/.bashrc
이거 아래에 복붙하고 cntl+x로 나오면
source /opt/ros/foxy/setup.bash
source ~/robot_ws/install/local_setup.bash
source /usr/share/colcon_argcomplete/hook/colcon-argcomplete.bash
source /usr/share/vcstool-completion/vcs.bash
source /usr/share/colcon_cd/function/colcon_cd.sh
export _colcon_cd_root=~/robot_ws
export ROS_DOMAIN_ID=7
export ROS_NAMESPACE=robot1
export RMW_IMPLEMENTATION=rmw_fastrtps_cpp
# export RMW_IMPLEMENTATION=rmw_connext_cpp
# export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
# export RMW_IMPLEMENTATION=rmw_gurumdds_cpp
# export RCUTILS_CONSOLE_OUTPUT_FORMAT='[{severity} {time}] [{name}]: {message} ({function_name}() at {file_name}:{line_number})'
export RCUTILS_CONSOLE_OUTPUT_FORMAT='[{severity}]: {message}'
export RCUTILS_COLORIZED_OUTPUT=1
export RCUTILS_LOGGING_USE_STDOUT=0
export RCUTILS_LOGGING_BUFFERED_STREAM=1
alias cw='cd ~/robot_ws'
alias cs='cd ~/robot_ws/src'
alias ccd='colcon_cd'
alias cb='cd ~/robot_ws && colcon build --symlink-install'
alias cbs='colcon build --symlink-install'
alias cbp='colcon build --symlink-install --packages-select'
alias cbu='colcon build --symlink-install --packages-up-to'
alias ct='colcon test'
alias ctp='colcon test --packages-select'
alias ctr='colcon test-result'
alias rt='ros2 topic list'
alias re='ros2 topic echo'
alias rn='ros2 node list'
alias killgazebo='killall -9 gazebo & killall -9 gzserver & killall -9 gzclient'
alias af='ament_flake8'
alias ac='ament_cpplint'
alias testpub='ros2 run demo_nodes_cpp talker'
alias testsub='ros2 run demo_nodes_cpp listener'
alias testpubimg='ros2 run image_tools cam2image'
alias testsubimg='ros2 run image_tools showimage'
7. VScode : 통합개발환경(IDE)설치
설치링크 :
https://code.visualstudio.com/Download
VS code 개발환경 설정
아래 각 위치 찾아가서 파일 생성해주고, 그다음 코드들 cat으로 시작하는거 입력해주면 안에 채워짐
(or 그냥 파일에 수기로 첫줄 빼고 입력해도됨)
- ~/.config/Code/User/settings.json
- ~/robot_ws/.vscode/c_cpp_properties.json
- ~/robot_ws/.vscode/tasks.json
- ~/robot_ws/.vscode/launch.json
ex)
유저환경 세팅
cat > ~/.config/Code/User/settings.json
{
"cmake.configureOnOpen": false,
"editor.minimap.enabled": false,
"editor.mouseWheelZoom": true,
"editor.renderControlCharacters": true,
"editor.rulers": [100],
"editor.tabSize": 2,
"files.associations": {
"*.repos": "yaml",
"*.world": "xml",
"*.xacro": "xml"
},
"files.insertFinalNewline": true,
"files.trimTrailingWhitespace": true,
"terminal.integrated.scrollback": 1000000,
"workbench.iconTheme": "vscode-icons",
"workbench.editor.pinnedTabSizing": "compact",
"ros.distro": "foxy",
"colcon.provideTasks": true
}
C/C++ properties 설정
cat > ~/robot_ws/.vscode/c_cpp_properties.json
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${default}",
"${workspaceFolder}/**",
"/opt/ros/foxy/include/**"
],
"defines": [],
"compilerPath": "/usr/bin/g++",
"cStandard": "c99",
"cppStandard": "c++14",
"intelliSenseMode": "linux-gcc-x64"
}
],
"version": 4
}
Tasks 설정
cat > ~/robot_ws/.vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "colcon: build",
"type": "shell",
"command": "colcon build --cmake-args '-DCMAKE_BUILD_TYPE=Debug'",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"label": "colcon: test",
"type": "shell",
"command": "colcon test && colcon test-result"
},
{
"label": "colcon: clean",
"type": "shell",
"command": "rm -rf build install log"
}
]
}
Launch 설정
cat > ~/robot_ws/.vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "Debug-rclpy(debugpy)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
},
{
"name": "Debug-rclcpp(gbd)",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/install/${input:package}/lib/${input:package}/${input:node}",
"args": [],
"preLaunchTask": "colcon: build",
"stopAtEntry": true,
"cwd": "${workspaceFolder}",
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
],
"inputs": [
{
"id": "package",
"type": "promptString",
"description": "package name",
"default": "topic_service_action_rclpp_example"
},
{
"id": "node",
"type": "promptString",
"description": "node name",
"default": "argument"
}
]
}
qt
sudo apt install qtcreator
qtcreator
삭제 명령어!! 주의!!
sudo apt remove ros-foxy-* && sudo apt autoremove
'SW > ROS' 카테고리의 다른 글
[Foxy] RQt Plugin, turtlebot GUI (0) | 2024.01.14 |
---|---|
[Turtlebot3] Foxy, WiFi/HotSpot 원격 Setup (0) | 2023.12.26 |
[Foxy] 노드와 데이터 통신(topic/service/action/parm.) (0) | 2023.12.23 |
[Foxy] 2.패키지설치와 노드실행 turtlesim (0) | 2023.12.23 |
[Foxy] 0. 특징 (0) | 2023.12.23 |