Skip to content

Roslaunch support#20

Open
Affonso-Gui wants to merge 6 commits into
enactic:mainfrom
Affonso-Gui:roslaunch_support
Open

Roslaunch support#20
Affonso-Gui wants to merge 6 commits into
enactic:mainfrom
Affonso-Gui:roslaunch_support

Conversation

@Affonso-Gui

@Affonso-Gui Affonso-Gui commented Jun 30, 2026

Copy link
Copy Markdown

Enables to launch teleop control via roslaunch (#17)

Changes

  • add ros package registration
  • installs the required binary / config files
  • allows to use arm_type=both to launch both right and left arms at once
  • no changes to existing logic (although scripts/ seem to need some changes to address the latest openarm_description)

@Affonso-Gui Affonso-Gui mentioned this pull request Jun 30, 2026

@kou kou left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment thread package.xml Outdated
Comment thread CMakeLists.txt
# Keep the directories of linked dependencies in the installed binaries' RPATH
# so shared libs (e.g. libkdl_parser.so from the ROS env) resolve at runtime
# when run from the install tree, e.g. via `ros2 run` / `ros2 launch`.
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a common pattern in ROS2 packages?

If this is not a common pattern, I want to avoid this. (Only users who need this specify this by cmake ... -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE.)

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the heads-up.
It was a bit of a workaround, so I'll double check this over the weekend.

Comment thread launch/teleop.launch.py Outdated
Comment thread launch/teleop.launch.py
Comment thread launch/teleop.launch.py
Comment on lines +76 to +80
out_dir = os.path.join(tempfile.gettempdir(), "openarm_urdf_gen")
os.makedirs(out_dir, exist_ok=True)
urdf_path = os.path.join(out_dir, f"openarm_{arm_type}.urdf")
with open(urdf_path, "w") as f:
f.write(urdf_xml)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a common pattern that we generate a temporary file like this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think it is.
This is a direct translation from the method used in the scripts/ folder, but it would probably be better to handle urdf generation outside the launch file (e.g. during the openarm_description build).

# File paths
LEADER_URDF_PATH="$TMPDIR/${ARM_TYPE}_leader.urdf"
FOLLOWER_URDF_PATH="$TMPDIR/${ARM_TYPE}_follower.urdf"

I will try to make some time to check how the other hardware makers are handling this!

Affonso-Gui and others added 2 commits July 2, 2026 22:31
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Co-authored-by: Sutou Kouhei <kou@cozmixng.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants