diff --git a/.gitignore b/.gitignore index 979cf4c2..7b853979 100644 --- a/.gitignore +++ b/.gitignore @@ -59,3 +59,4 @@ build-*/ *.txt.user *.gch /.project +.DS_Store diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 8df7d1ef..00000000 --- a/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -# Use the base ROS2 humble image -FROM osrf/ros:humble-desktop-full - -# Set environment variables -ENV DEBIAN_FRONTEND=noninteractive - -# Install the required packages in a single layer and clean up afterwards -RUN apt-get update && apt-get install -y \ - git \ - python3-pip \ - ros-${ROS_DISTRO}-gazebo-ros-pkgs \ - ros-${ROS_DISTRO}-cartographer \ - ros-${ROS_DISTRO}-cartographer-ros \ - ros-${ROS_DISTRO}-navigation2 \ - ros-${ROS_DISTRO}-nav2-bringup && \ - rm -rf /var/lib/apt/lists/* - -ENV COLCON_WS=/root/turtlebot3_ws -WORKDIR ${COLCON_WS} - -RUN mkdir -p ${COLCON_WS}/src && \ - cd ${COLCON_WS}/src && \ - git clone -b humble https://github.com/ROBOTIS-GIT/DynamixelSDK.git && \ - git clone -b humble https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git && \ - git clone -b humble https://github.com/ROBOTIS-GIT/turtlebot3.git - -RUN bash -c "source /opt/ros/${ROS_DISTRO}/setup.bash && \ - cd ${COLCON_WS} && \ - colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release" - -RUN echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc -RUN echo "source ${COLCON_WS}/install/setup.bash" >> ~/.bashrc -RUN echo "source /usr/share/gazebo/setup.sh" >> ~/.bashrc - -CMD ["bash"] diff --git a/docker/humble/Dockerfile b/docker/humble/Dockerfile new file mode 100644 index 00000000..f57f0983 --- /dev/null +++ b/docker/humble/Dockerfile @@ -0,0 +1,49 @@ +# Use the base ROS2 humble image +FROM ros:humble-ros-base + +# Set environment variables +ENV DEBIAN_FRONTEND=noninteractive +ENV COLCON_WS=/root/turtlebot3_ws + +# Install the required packages in a single layer and clean up afterwards +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + ros-${ROS_DISTRO}-desktop \ + python3-argcomplete \ + python3-colcon-common-extensions \ + libboost-system-dev \ + build-essential \ + libudev-dev \ + udev \ + git \ + nano \ + ros-${ROS_DISTRO}-cartographer \ + ros-${ROS_DISTRO}-cartographer-ros \ + ros-${ROS_DISTRO}-navigation2 \ + ros-${ROS_DISTRO}-nav2-bringup \ + ros-${ROS_DISTRO}-turtlebot3-msgs \ + ros-${ROS_DISTRO}-dynamixel-sdk \ + ros-${ROS_DISTRO}-xacro \ + ros-${ROS_DISTRO}-hls-lfcd-lds-driver \ + ros-${ROS_DISTRO}-ld08-driver \ + ros-${ROS_DISTRO}-coin-d4-driver \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR ${COLCON_WS} + +RUN mkdir -p ${COLCON_WS}/src && \ + cd ${COLCON_WS}/src && \ + git clone -b humble https://github.com/ROBOTIS-GIT/turtlebot3.git + +RUN bash -c "source /opt/ros/${ROS_DISTRO}/setup.bash && \ + cd ${COLCON_WS} && \ + colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release" + +RUN echo "source /opt/ros/${ROS_DISTRO}/setup.bash" >> ~/.bashrc && \ + echo "source ${COLCON_WS}/install/setup.bash" >> ~/.bashrc && \ + echo "alias cb='colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release'" >> ~/.bashrc && \ + echo "export ROS_DOMAIN_ID=30 # TURTLEBOT3" >> ~/.bashrc && \ + echo "# export TURTLEBOT3_MODEL= # burger, waffle, waffle_pi" >> ~/.bashrc && \ + echo "# export LDS_MODEL= # LDS-01, LDS-02, LDS-03" >> ~/.bashrc + +CMD ["bash"] diff --git a/docker/humble/container.sh b/docker/humble/container.sh new file mode 100755 index 00000000..a80aa890 --- /dev/null +++ b/docker/humble/container.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +# Get the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +CONTAINER_NAME="turtlebot3" + +# Determine whether to use docker-compose or docker compose +if docker compose version &> /dev/null; then + COMPOSE_CMD="docker compose" +else + COMPOSE_CMD="docker-compose" +fi + +# Function to display help +show_help() { + echo "Usage: $0 [command]" + echo "" + echo "Commands:" + echo " help Show this help message" + echo " start Start the container" + echo " enter Enter the running container" + echo " stop Stop the container" + echo "" + echo "Examples:" + echo " $0 start Start container" + echo " $0 enter Enter the running container" + echo " $0 stop Stop the container" +} + +# Function to start the container +start_container() { + # Set up X11 forwarding only if DISPLAY is set + if [ -n "$DISPLAY" ]; then + echo "Setting up X11 forwarding..." + xhost +local:docker || true + else + echo "Warning: DISPLAY environment variable is not set. X11 forwarding will not be available." + fi + + echo "Starting Turtlebot3 container..." + + # Copy udev rule for TurtleBot3 + sudo tee /etc/udev/rules.d/99-tb3.rules > /dev/null <> ~/.bashrc && \ + echo "source ${COLCON_WS}/install/setup.bash" >> ~/.bashrc && \ + echo "alias cb='colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release'" >> ~/.bashrc && \ + echo "export ROS_DOMAIN_ID=30 # TURTLEBOT3" >> ~/.bashrc && \ + echo "# export TURTLEBOT3_MODEL= # burger, waffle, waffle_pi" >> ~/.bashrc && \ + echo "# export LDS_MODEL= # LDS-01, LDS-02, LDS-03" >> ~/.bashrc + +CMD ["bash"] diff --git a/docker/jazzy/container.sh b/docker/jazzy/container.sh new file mode 100755 index 00000000..a80aa890 --- /dev/null +++ b/docker/jazzy/container.sh @@ -0,0 +1,116 @@ +#!/bin/bash + +# Get the directory where the script is located +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +CONTAINER_NAME="turtlebot3" + +# Determine whether to use docker-compose or docker compose +if docker compose version &> /dev/null; then + COMPOSE_CMD="docker compose" +else + COMPOSE_CMD="docker-compose" +fi + +# Function to display help +show_help() { + echo "Usage: $0 [command]" + echo "" + echo "Commands:" + echo " help Show this help message" + echo " start Start the container" + echo " enter Enter the running container" + echo " stop Stop the container" + echo "" + echo "Examples:" + echo " $0 start Start container" + echo " $0 enter Enter the running container" + echo " $0 stop Stop the container" +} + +# Function to start the container +start_container() { + # Set up X11 forwarding only if DISPLAY is set + if [ -n "$DISPLAY" ]; then + echo "Setting up X11 forwarding..." + xhost +local:docker || true + else + echo "Warning: DISPLAY environment variable is not set. X11 forwarding will not be available." + fi + + echo "Starting Turtlebot3 container..." + + # Copy udev rule for TurtleBot3 + sudo tee /etc/udev/rules.d/99-tb3.rules > /dev/null < turtlebot3 - 2.3.3 + 2.3.4 ROS 2 packages for TurtleBot3 diff --git a/turtlebot3_bringup/CHANGELOG.rst b/turtlebot3_bringup/CHANGELOG.rst index 65a944e2..29fad409 100644 --- a/turtlebot3_bringup/CHANGELOG.rst +++ b/turtlebot3_bringup/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_bringup ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.4 (2025-10-24) +------------------ +* None + 2.3.3 (2025-07-11) ------------------ * Supported COIN D4 LIDAR(ld03) diff --git a/turtlebot3_bringup/package.xml b/turtlebot3_bringup/package.xml index a7bbc12f..a2665992 100644 --- a/turtlebot3_bringup/package.xml +++ b/turtlebot3_bringup/package.xml @@ -2,7 +2,7 @@ turtlebot3_bringup - 2.3.3 + 2.3.4 ROS 2 launch scripts for starting the TurtleBot3 diff --git a/turtlebot3_cartographer/CHANGELOG.rst b/turtlebot3_cartographer/CHANGELOG.rst index a4439e0c..88c84bd2 100644 --- a/turtlebot3_cartographer/CHANGELOG.rst +++ b/turtlebot3_cartographer/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_cartographer ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.4 (2025-10-24) +------------------ +* None + 2.3.3 (2025-07-11) ------------------ * None diff --git a/turtlebot3_cartographer/package.xml b/turtlebot3_cartographer/package.xml index 4e756584..d2bb8ff1 100644 --- a/turtlebot3_cartographer/package.xml +++ b/turtlebot3_cartographer/package.xml @@ -2,7 +2,7 @@ turtlebot3_cartographer - 2.3.3 + 2.3.4 ROS 2 launch scripts for cartographer diff --git a/turtlebot3_description/CHANGELOG.rst b/turtlebot3_description/CHANGELOG.rst index 8086845c..2e65b530 100644 --- a/turtlebot3_description/CHANGELOG.rst +++ b/turtlebot3_description/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_description ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.4 (2025-10-24) +------------------ +* None + 2.3.3 (2025-07-11) ------------------ * None diff --git a/turtlebot3_description/package.xml b/turtlebot3_description/package.xml index 019810d9..781f5c8c 100644 --- a/turtlebot3_description/package.xml +++ b/turtlebot3_description/package.xml @@ -2,7 +2,7 @@ turtlebot3_description - 2.3.3 + 2.3.4 3D models of the TurtleBot3 for simulation and visualization diff --git a/turtlebot3_example/CHANGELOG.rst b/turtlebot3_example/CHANGELOG.rst index 27137567..6016b5bc 100644 --- a/turtlebot3_example/CHANGELOG.rst +++ b/turtlebot3_example/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_example ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.4 (2025-10-24) +------------------ +* None + 2.3.3 (2025-07-11) ------------------ * None diff --git a/turtlebot3_example/package.xml b/turtlebot3_example/package.xml index 142dcf8d..fc5a555e 100644 --- a/turtlebot3_example/package.xml +++ b/turtlebot3_example/package.xml @@ -2,7 +2,7 @@ turtlebot3_example - 2.3.3 + 2.3.4 This package provides four basic examples for TurtleBot3 (i.e., interactive marker, object detection, patrol and position control). diff --git a/turtlebot3_example/setup.py b/turtlebot3_example/setup.py index 7b04103c..bd8c57e5 100644 --- a/turtlebot3_example/setup.py +++ b/turtlebot3_example/setup.py @@ -5,7 +5,7 @@ setup( name=package_name, - version='2.3.3', + version='2.3.4', packages=find_packages(), data_files=[ ('share/ament_index/resource_index/packages', ['resource/' + package_name]), diff --git a/turtlebot3_navigation2/CHANGELOG.rst b/turtlebot3_navigation2/CHANGELOG.rst index 0baaa858..303a1e5e 100644 --- a/turtlebot3_navigation2/CHANGELOG.rst +++ b/turtlebot3_navigation2/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_navigation2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.4 (2025-10-24) +------------------ +* None + 2.3.3 (2025-07-11) ------------------ * None diff --git a/turtlebot3_navigation2/package.xml b/turtlebot3_navigation2/package.xml index 1ebbc996..f5393b66 100644 --- a/turtlebot3_navigation2/package.xml +++ b/turtlebot3_navigation2/package.xml @@ -2,7 +2,7 @@ turtlebot3_navigation2 - 2.3.3 + 2.3.4 ROS 2 launch scripts for navigation2 diff --git a/turtlebot3_node/CHANGELOG.rst b/turtlebot3_node/CHANGELOG.rst index c57c872c..6b1481da 100644 --- a/turtlebot3_node/CHANGELOG.rst +++ b/turtlebot3_node/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_node ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.4 (2025-10-24) +------------------ +* None + 2.3.3 (2025-07-11) ------------------ * None diff --git a/turtlebot3_node/package.xml b/turtlebot3_node/package.xml index ebaf2708..4c083a9b 100644 --- a/turtlebot3_node/package.xml +++ b/turtlebot3_node/package.xml @@ -2,7 +2,7 @@ turtlebot3_node - 2.3.3 + 2.3.4 TurtleBot3 driver node that include diff drive controller, odometry and tf node diff --git a/turtlebot3_teleop/CHANGELOG.rst b/turtlebot3_teleop/CHANGELOG.rst index 050c1de0..72301495 100644 --- a/turtlebot3_teleop/CHANGELOG.rst +++ b/turtlebot3_teleop/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package turtlebot3_teleop ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +2.3.4 (2025-10-24) +------------------ +* None + 2.3.3 (2025-07-11) ------------------ * None diff --git a/turtlebot3_teleop/package.xml b/turtlebot3_teleop/package.xml index 37249606..a8fb292f 100644 --- a/turtlebot3_teleop/package.xml +++ b/turtlebot3_teleop/package.xml @@ -2,7 +2,7 @@ turtlebot3_teleop - 2.3.3 + 2.3.4 Teleoperation node using keyboard for TurtleBot3. diff --git a/turtlebot3_teleop/setup.py b/turtlebot3_teleop/setup.py index a180021f..85e5529a 100644 --- a/turtlebot3_teleop/setup.py +++ b/turtlebot3_teleop/setup.py @@ -5,7 +5,7 @@ setup( name=package_name, - version='2.3.3', + version='2.3.4', packages=find_packages(exclude=[]), data_files=[ ('share/ament_index/resource_index/packages', ['resource/' + package_name]),