Docker 설치 ( Link )
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
cd ~
git clone https://github.com/Jabee7531/nav2_simulation_with_docker.git
cd ~/nav2_simulation_with_docker
sudo docker build --progress=plain -t nav2:humble ./
sudo docker run -it -d --network=host --privileged --env="DISPLAY=$DISPLAY" --volume="${XAUTHORITY}:/root/.Xauthority" --volume="/home/$USER/nav2_simulation_with_docker:/nav2_simulation_with_docker" --name tb3 nav2:humble
sudo docker ps -a
sudo docker exec -it tb3 bash
docker commit tb3 updated_nav2
sudo docker run -it -d --name updated_tb3 updated_nav2
# 종료
docker stop tb3
or
# 강제 종료
docker kill updated_tb3
docker rm tb3
docker rm updated_tb3
sudo docker run -it -d --network=host --privileged --env="DISPLAY=$DISPLAY" --volume="${XAUTHORITY}:/root/.Xauthority" --volume="/home/$USER/nav2_simulation_with_docker:/nav2_simulation_with_docker" --name tb3 nav2:humble
sudo docker exec -it tb3 bash
ros2 launch nav2_bringup tb3_simulation_launch.py headless:=False
ros2 run teleop_twist_keyboard teleop_twist_keyboard
cd /opt/ros/humble/share/nav2_bringup/urdf
# 원본 파일 백업
cp turtlebot3_waffle.urdf turtlebot3_waffle_backup.urdf
# URDF 수정
gedit turtlebot3_waffle.urdf
# 수정
cd /opt/ros/humble/share/nav2_bringup/worlds
# 원본 파일 백업
cp waffle.model waffle_backup.model
# SDF 수정
gedit waffle.model
# 수정
ros2 launch turtlebot3_cartographer cartographer.launch.py
ros2 run nav2_map_server map_saver_cli --free 0.196 -t /map -f /nav2_simulation_with_docker/my_map
ros2 service call /map_server/load_map nav2_msgs/srv/LoadMap "{map_url : /nav2_simulation_with_docker/my_map.yaml}"
cd /nav2_simulation_with_docker
colcon build --symlink-install
source /nav2_simulation_with_docker/install/local_setup.bash
ros2 run examples cmd_vel_example
# Cmd Vel Scale 조회 & 수정
ros2 param get /cmd_vel_example linear_scale
ros2 param get /cmd_vel_example angular_scale
ros2 param set /cmd_vel_example linear_scale 0.8
ros2 param set /cmd_vel_example angular_scale 1.5
source /nav2_simulation_with_docker/install/local_setup.bash
ros2 run examples scan_example
# Obstacle Detect Range 조회 & 수정
ros2 param get /scan_example obstacle_detect_range
ros2 param set /scan_example obstacle_detect_range 0.7
source /nav2_simulation_with_docker/install/local_setup.bash
ros2 run examples image_example
cd /nav2_simulation_with_docker/src
ros2 pkg create --build-type ament_python new_packages
cd /nav2_simulation_with_docker/src/new_packages/new_packages && gedit new_example.py
# 작성
gedit /nav2_simulation_with_docker/src/new_packages/setup.py
# 아래 쪽 entry_points 수정
entry_points={
'console_scripts': [
'new_example_node = new_packages.new_example:main',
],
},
cd /nav2_simulation_with_docker
colcon build --symlink-install --packages-select new_packages
source /nav2_simulation_with_docker/install/local_setup.bash
ros2 run examples new_example_node