diff --git a/docker/Dockerfile b/docker/Dockerfile index 025b32b7..badf3dcd 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -18,6 +18,7 @@ RUN apt-get update && apt-get install -y \ libglfw3-dev \ ros-${ROS_DISTRO}-image-transport-plugins \ ros-${ROS_DISTRO}-usb-cam \ + ros-${ROS_DISTRO}-rmw-zenoh-cpp \ vim \ nano \ && rm -rf /var/lib/apt/lists/* @@ -31,14 +32,14 @@ RUN mkdir -p ${COLCON_WS}/src && \ git clone -b jazzy https://github.com/ROBOTIS-GIT/dynamixel_interfaces.git && \ git clone -b jazzy https://github.com/ROBOTIS-GIT/DynamixelSDK.git && \ git clone -b jazzy https://github.com/ROBOTIS-GIT/open_manipulator.git && \ - git clone -b jazzy https://github.com/ros2/rmw_zenoh.git && \ + git clone -b jazzy https://github.com/ROBOTIS-GIT/robotis_interfaces.git && \ git clone -b r/4.56.4 https://github.com/IntelRealSense/realsense-ros.git && \ cd realsense-ros && git checkout cbd8b8487d4c0126bb590822db9469414496e62a RUN cd ${COLCON_WS} && \ apt-get update && \ rosdep update && \ - rosdep install -i --from-path src --rosdistro $ROS_DISTRO --skip-keys="librealsense2" -y && \ + rosdep install -i --from-path src --rosdistro $ROS_DISTRO --skip-keys="librealsense2 robotis_interfaces" -y && \ rm -rf /var/lib/apt/lists/* RUN bash -c "source /opt/ros/${ROS_DISTRO}/setup.bash && \ @@ -48,6 +49,10 @@ RUN bash -c "source /opt/ros/${ROS_DISTRO}/setup.bash && \ 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" >> ~/.bashrc + echo "alias omy_ai='ros2 launch open_manipulator_bringup omy_ai.launch.py'" >> ~/.bashrc && \ + echo "alias omx_ai='ros2 launch open_manipulator_bringup omx_ai.launch.py'" >> ~/.bashrc && \ + echo "alias zenohd='ros2 run rmw_zenoh_cpp rmw_zenohd'" >> ~/.bashrc && \ + echo "export ROS_DOMAIN_ID=30" >> ~/.bashrc && \ + echo "export RMW_IMPLEMENTATION=rmw_zenoh_cpp" >> ~/.bashrc CMD ["bash"] diff --git a/docker/container.sh b/docker/container.sh index 707dfe4f..686cebac 100755 --- a/docker/container.sh +++ b/docker/container.sh @@ -3,6 +3,8 @@ # Get the directory where the script is located SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" CONTAINER_NAME="open_manipulator" +GITHUB_RELEASES_API="https://api.github.com/repos/ROBOTIS-GIT/open_manipulator/releases/latest" +META_PACKAGE_XML="${SCRIPT_DIR}/../open_manipulator/package.xml" # Function to display help show_help() { @@ -31,6 +33,16 @@ start_container() { fi echo "Starting Open Manipulator container..." + # Notify if an update is available (meta package version vs GitHub latest release) + CURRENT_VER=$(get_current_version) + LATEST_VER=$(get_latest_version) + if update_available "${CURRENT_VER}" "${LATEST_VER}"; then + print_update_notice "${CURRENT_VER}" "${LATEST_VER}" + fi + + ### rmw_zenoh notice (remove later) + print_rmw_zenoh_notice + ### rmw_zenoh notice (remove later) # Copy udev rule for FTDI (U2D2) echo 'KERNEL=="ttyUSB*", DRIVERS=="ftdi_sio", MODE="0666", ATTR{device/latency_timer}="1"' | sudo tee /etc/udev/rules.d/99-u2d2.rules > /dev/null @@ -61,6 +73,18 @@ enter_container() { echo "Error: Container is not running" exit 1 fi + + # Notify if an update is available (meta package version vs git tag) + CURRENT_VER=$(get_current_version) + GIT_VER=$(get_latest_version) + if update_available "${CURRENT_VER}" "${GIT_VER}"; then + print_update_notice "${CURRENT_VER}" "${GIT_VER}" + fi + + ### rmw_zenoh notice (remove later) + print_rmw_zenoh_notice + ### rmw_zenoh notice (remove later) + docker exec -it "$CONTAINER_NAME" bash } @@ -82,6 +106,79 @@ stop_container() { fi } +# Get current version from meta package (open_manipulator) package.xml +print_update_notice() { + local current_ver="$1" + local latest_ver="$2" + W=52 + BAR=$(printf '%*s' $W '' | tr ' ' '=') + LINE1="New version available: ${latest_ver} (current: ${current_ver})." + LINE2="1. Stop Container: ./container.sh stop" + LINE3="2. Pull Git Repo: git pull origin jazzy" + LINE4="3. Start Container: ./container.sh start" + echo "" + echo " +${BAR}+" + printf " | %-$((W-2))s|\n" "$LINE1" + printf " | %-$((W-2))s|\n" "$LINE2" + printf " | %-$((W-2))s|\n" "$LINE3" + printf " | %-$((W-2))s|\n" "$LINE4" + echo " +${BAR}+" + echo "" +} + +### rmw_zenoh notice (remove later) +print_rmw_zenoh_notice() { + W=52 + BAR=$(printf '%*s' $W '' | tr ' ' '=') + LINE1="Since v5.0.0, rmw_zenoh_cpp is the default RMW." + LINE2="RMW_IMPLEMENTATION is set in ~/.bashrc inside the" + LINE3="container." + echo "" + echo " +${BAR}+" + printf " | %-$((W-2))s|\n" "$LINE1" + printf " | %-$((W-2))s|\n" "$LINE2" + printf " | %-$((W-2))s|\n" "$LINE3" + echo " +${BAR}+" + echo "" +} +### rmw_zenoh notice (remove later) + +get_current_version() { + local ver + if [ -f "${META_PACKAGE_XML}" ]; then + ver=$(sed -n 's/.*\([^<]*\)<\/version>.*/\1/p' "${META_PACKAGE_XML}" | head -1) + fi + echo "${ver:-unknown}" +} + +# Get latest version from GitHub releases (ROBOTIS-GIT/open_manipulator) +get_latest_version() { + local json tag + json=$(curl -sL --connect-timeout 5 "${GITHUB_RELEASES_API}" 2>/dev/null) + tag=$(echo "${json}" | sed -n 's/.*"tag_name":\s*"\([^"]*\)".*/\1/p' | head -1) + # Strip optional 'v' prefix for comparison with package.xml + if [ -n "${tag}" ]; then + echo "${tag#v}" + else + echo "" + fi +} + +# Check if the latest version is newer than the current version +update_available() { + local current="$1" + local git_ver="$2" + if [ -z "${git_ver}" ]; then + return 1 + fi + if [ "${git_ver}" = "${current}" ]; then + return 1 + fi + local newer + newer=$(echo -e "${current}\n${git_ver}" | sort -V | tail -1) + [ "${newer}" = "${git_ver}" ] +} + # Main command handling case "$1" in "help") diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index f29bb47d..28d71001 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -4,7 +4,7 @@ services: build: context: . dockerfile: Dockerfile - image: robotis/open-manipulator:latest + image: robotis/open-manipulator:5.0.0 tty: true restart: always cap_add: @@ -19,7 +19,6 @@ services: environment: - DISPLAY=${DISPLAY} - QT_X11_NO_MITSHM=1 - # - RMW_IMPLEMENTATION=rmw_zenoh_cpp volumes: - /dev:/dev - /dev/shm:/dev/shm diff --git a/open_manipulator/CHANGELOG.rst b/open_manipulator/CHANGELOG.rst index c5facfac..376016c6 100644 --- a/open_manipulator/CHANGELOG.rst +++ b/open_manipulator/CHANGELOG.rst @@ -2,6 +2,12 @@ Changelog for package open_manipulator ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5.0.0 (2026-06-24) +------------------ +* Updated dockerfile to use zenoh-cpp +* Updated SRDF for OMY-F3M +* Contributors: Sungho Woo + 4.1.4 (2026-04-27) ------------------ * Added nodes for drawing mission: shape_detector_node and omx_trajectory_controller_node diff --git a/open_manipulator/package.xml b/open_manipulator/package.xml index 130df0f8..a6a61a24 100644 --- a/open_manipulator/package.xml +++ b/open_manipulator/package.xml @@ -2,7 +2,7 @@ open_manipulator - 4.1.4 + 5.0.0 OpenMANIPULATOR meta ROS 2 package. diff --git a/open_manipulator_bringup/CHANGELOG.rst b/open_manipulator_bringup/CHANGELOG.rst index 401a7b10..dda5804c 100644 --- a/open_manipulator_bringup/CHANGELOG.rst +++ b/open_manipulator_bringup/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package open_manipulator_bringup ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5.0.0 (2026-06-24) +------------------ +* None + 4.1.4 (2026-04-27) ------------------ * None diff --git a/open_manipulator_bringup/package.xml b/open_manipulator_bringup/package.xml index 68029d47..0f51f8f1 100644 --- a/open_manipulator_bringup/package.xml +++ b/open_manipulator_bringup/package.xml @@ -2,7 +2,7 @@ open_manipulator_bringup - 4.1.4 + 5.0.0 OpenMANIPULATOR bringup ROS 2 package. Pyo Apache 2.0 diff --git a/open_manipulator_bringup/setup.py b/open_manipulator_bringup/setup.py index 9ca8b516..de86ced1 100644 --- a/open_manipulator_bringup/setup.py +++ b/open_manipulator_bringup/setup.py @@ -8,7 +8,7 @@ setup( name=package_name, - version='4.1.4', + version='5.0.0', packages=find_packages(exclude=['test']), data_files=[ ('share/ament_index/resource_index/packages', ['resource/' + package_name]), diff --git a/open_manipulator_collision/CHANGELOG.rst b/open_manipulator_collision/CHANGELOG.rst index e5a705a0..30606651 100644 --- a/open_manipulator_collision/CHANGELOG.rst +++ b/open_manipulator_collision/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package open_manipulator_collision ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5.0.0 (2026-06-24) +------------------ +* None + 4.1.4 (2026-04-27) ------------------ * None diff --git a/open_manipulator_collision/package.xml b/open_manipulator_collision/package.xml index cf55eaa6..fee6065f 100644 --- a/open_manipulator_collision/package.xml +++ b/open_manipulator_collision/package.xml @@ -2,7 +2,7 @@ open_manipulator_collision - 4.1.4 + 5.0.0 This package implements a self-collision detection system for the follower robot during leader-follower teleoperation. Its primary purpose is to enhance safety by detecting diff --git a/open_manipulator_description/CHANGELOG.rst b/open_manipulator_description/CHANGELOG.rst index 2bf465f8..7b18a3dc 100644 --- a/open_manipulator_description/CHANGELOG.rst +++ b/open_manipulator_description/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package open_manipulator_description ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5.0.0 (2026-06-24) +------------------ +* None + 4.1.4 (2026-04-27) ------------------ * None diff --git a/open_manipulator_description/package.xml b/open_manipulator_description/package.xml index 9f3202c4..53039eef 100644 --- a/open_manipulator_description/package.xml +++ b/open_manipulator_description/package.xml @@ -2,7 +2,7 @@ open_manipulator_description - 4.1.4 + 5.0.0 open_manipulator_description ROS 2 package. diff --git a/open_manipulator_gui/CHANGELOG.rst b/open_manipulator_gui/CHANGELOG.rst index c0fb9b6e..b35116d5 100644 --- a/open_manipulator_gui/CHANGELOG.rst +++ b/open_manipulator_gui/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package open_manipulator_gui ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5.0.0 (2026-06-24) +------------------ +* None + 4.1.4 (2026-04-27) ------------------ * None diff --git a/open_manipulator_gui/package.xml b/open_manipulator_gui/package.xml index 7dff6ba1..e88434c2 100644 --- a/open_manipulator_gui/package.xml +++ b/open_manipulator_gui/package.xml @@ -2,7 +2,7 @@ open_manipulator_gui - 4.1.4 + 5.0.0 The OpenMANIPULATOR GUI ROS 2 package enables users to explore Joint Space, Task Space, and even work with the Task Constructor functionality. diff --git a/open_manipulator_moveit_config/CHANGELOG.rst b/open_manipulator_moveit_config/CHANGELOG.rst index 2c49548f..6fbdb964 100644 --- a/open_manipulator_moveit_config/CHANGELOG.rst +++ b/open_manipulator_moveit_config/CHANGELOG.rst @@ -2,6 +2,11 @@ Changelog for package open_manipulator_moveit_config ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5.0.0 (2026-06-24) +------------------ +* Updated SRDF for OMY-F3M +* Contributors: Sungho Woo + 4.1.4 (2026-04-27) ------------------ * None diff --git a/open_manipulator_moveit_config/config/omx_f/omx_f.srdf b/open_manipulator_moveit_config/config/omx_f/omx_f.srdf index 6d528bde..246f39cc 100644 --- a/open_manipulator_moveit_config/config/omx_f/omx_f.srdf +++ b/open_manipulator_moveit_config/config/omx_f/omx_f.srdf @@ -57,4 +57,5 @@ + diff --git a/open_manipulator_moveit_config/package.xml b/open_manipulator_moveit_config/package.xml index 87d4be25..0450ba20 100644 --- a/open_manipulator_moveit_config/package.xml +++ b/open_manipulator_moveit_config/package.xml @@ -2,7 +2,7 @@ open_manipulator_moveit_config - 4.1.4 + 5.0.0 An automatically generated package with all the configuration and launch files for using the open_manipulator_x with the MoveIt Motion Planning Framework diff --git a/open_manipulator_playground/CHANGELOG.rst b/open_manipulator_playground/CHANGELOG.rst index 5ad60cf3..0fe0ad16 100644 --- a/open_manipulator_playground/CHANGELOG.rst +++ b/open_manipulator_playground/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package open_manipulator_playground ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5.0.0 (2026-06-24) +------------------ +* None + 4.1.4 (2026-04-27) ------------------ * Added nodes for drawing mission: shape_detector_node and omx_trajectory_controller_node diff --git a/open_manipulator_playground/package.xml b/open_manipulator_playground/package.xml index 8e91c910..a8b14c4e 100644 --- a/open_manipulator_playground/package.xml +++ b/open_manipulator_playground/package.xml @@ -2,7 +2,7 @@ open_manipulator_playground - 4.1.4 + 5.0.0 This package provides an example for utilizing the MoveIt API with the OpenMANIPULATOR, allowing users to practice and experiment freely. diff --git a/open_manipulator_teleop/CHANGELOG.rst b/open_manipulator_teleop/CHANGELOG.rst index 4d83951a..4233239e 100644 --- a/open_manipulator_teleop/CHANGELOG.rst +++ b/open_manipulator_teleop/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package open_manipulator_teleop ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5.0.0 (2026-06-24) +------------------ +* None + 4.1.4 (2026-04-27) ------------------ * None diff --git a/open_manipulator_teleop/package.xml b/open_manipulator_teleop/package.xml index b4e7679d..1d33f1fe 100644 --- a/open_manipulator_teleop/package.xml +++ b/open_manipulator_teleop/package.xml @@ -2,7 +2,7 @@ open_manipulator_teleop - 4.1.4 + 5.0.0 OpenManipulator teleoperation package Pyo Apache License 2.0 diff --git a/open_manipulator_teleop/setup.py b/open_manipulator_teleop/setup.py index 4d8337d5..8afb0e28 100644 --- a/open_manipulator_teleop/setup.py +++ b/open_manipulator_teleop/setup.py @@ -8,7 +8,7 @@ setup( name=package_name, - version='4.1.4', + version='5.0.0', packages=find_packages(exclude=[]), data_files=[ ('share/ament_index/resource_index/packages', ['resource/' + package_name]), diff --git a/ros2_controller/om_gravity_compensation_controller/CHANGELOG.rst b/ros2_controller/om_gravity_compensation_controller/CHANGELOG.rst index aba88ce5..6f9681a4 100644 --- a/ros2_controller/om_gravity_compensation_controller/CHANGELOG.rst +++ b/ros2_controller/om_gravity_compensation_controller/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package om_gravity_compensation_controller ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5.0.0 (2026-06-24) +------------------ +* None + 4.1.4 (2026-04-27) ------------------ * None diff --git a/ros2_controller/om_gravity_compensation_controller/package.xml b/ros2_controller/om_gravity_compensation_controller/package.xml index 5e4966a4..08a80ea4 100644 --- a/ros2_controller/om_gravity_compensation_controller/package.xml +++ b/ros2_controller/om_gravity_compensation_controller/package.xml @@ -2,7 +2,7 @@ om_gravity_compensation_controller - 4.1.4 + 5.0.0 Controller for compensating for gravity on a group of joints diff --git a/ros2_controller/om_joint_trajectory_command_broadcaster/CHANGELOG.rst b/ros2_controller/om_joint_trajectory_command_broadcaster/CHANGELOG.rst index 932582a9..a7c9254a 100644 --- a/ros2_controller/om_joint_trajectory_command_broadcaster/CHANGELOG.rst +++ b/ros2_controller/om_joint_trajectory_command_broadcaster/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package om_joint_trajectory_command_broadcaster ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5.0.0 (2026-06-24) +------------------ +* None + 4.1.4 (2026-04-27) ------------------ * None diff --git a/ros2_controller/om_joint_trajectory_command_broadcaster/package.xml b/ros2_controller/om_joint_trajectory_command_broadcaster/package.xml index 7bed3a27..06c206c6 100644 --- a/ros2_controller/om_joint_trajectory_command_broadcaster/package.xml +++ b/ros2_controller/om_joint_trajectory_command_broadcaster/package.xml @@ -2,7 +2,7 @@ om_joint_trajectory_command_broadcaster - 4.1.4 + 5.0.0 Joint Trajectory Command Broadcaster ROS 2 package. diff --git a/ros2_controller/om_spring_actuator_controller/CHANGELOG.rst b/ros2_controller/om_spring_actuator_controller/CHANGELOG.rst index 0b802719..c802951e 100644 --- a/ros2_controller/om_spring_actuator_controller/CHANGELOG.rst +++ b/ros2_controller/om_spring_actuator_controller/CHANGELOG.rst @@ -2,6 +2,10 @@ Changelog for package om_spring_actuator_controller ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +5.0.0 (2026-06-24) +------------------ +* None + 4.1.4 (2026-04-27) ------------------ * None diff --git a/ros2_controller/om_spring_actuator_controller/package.xml b/ros2_controller/om_spring_actuator_controller/package.xml index 576d0e2a..af1b98ae 100644 --- a/ros2_controller/om_spring_actuator_controller/package.xml +++ b/ros2_controller/om_spring_actuator_controller/package.xml @@ -2,7 +2,7 @@ om_spring_actuator_controller - 4.1.4 + 5.0.0 Spring Actuator Controller ROS 2 package.