Skip to content

Feature/real arm urdf import - #7

Open
richardnguyen165 wants to merge 28 commits into
mainfrom
feature/real-arm-urdf-import
Open

Feature/real arm urdf import#7
richardnguyen165 wants to merge 28 commits into
mainfrom
feature/real-arm-urdf-import

Conversation

@richardnguyen165

Copy link
Copy Markdown

Finished rendering the arm and enabled joint movement via RViz. URDF file is included, and the .bak files have been cleaned up.

Video of Demo: https://youtu.be/xBz2U8d-bfE

image

Haroldmin1028 and others added 22 commits June 6, 2026 13:44
Added instructions for building and launching the robot simulation.
…m_demo_v2"

This reverts commit e757099, reversing
changes made to ee099be.
…to waybionic_arm_demo_v2

# Conflicts:
#	waybionic_description/CMakeLists.txt
…he arm in order to position the arm correctly
Waybionic arm demo v2 merge into feature/real-arm-urdf-import
…-import

Rebasing main onto feature/real-arm-urdf-import

@yassinsolim yassinsolim left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I tested this in Ubuntu 24.04 with ROS Jazzy. After manually resolving the current merge conflict, all three packages built, all 27 tests passed, check_urdf passed, and RViz loaded the model without missing-mesh errors.

I am requesting changes before merge:

Merge or rebase current main and resolve display.launch.py. Keep the current model-loading logic from main and change its default model to full_arm_mar24.urdf.

Fix the joint model or correct the documentation. Right now only joint3 moves, while joint1, joint2, and joint4 are fixed. The documentation currently describes four revolute joints.

Remove the unused STL exports. The PR adds 95 STL files, but the URDF only references base_link.STL, shoulder.STL, elbow.STL, forearm.STL, and wrist.STL. The other 90 files add about 37.74 MiB and should not be included in the clean repository.

Rewrite or remove the outdated model documentation. It currently references assembled.launch.py, test_all.launch.py, waybionic_assembled.urdf, test_all_meshes.urdf, and backup files that are not included.

Confirm whether March 24 or May 26 is the accepted CAD revision. The imported model and the mechanical-team request currently disagree.

Add a massless root or world link and verify the base inertia. KDL currently warns that it ignores inertia on the root base_link.

The visualization itself works. Once the branch is cleaned up and the model and documentation agree, it should be ready to merge.

richard.nguyen1 added 2 commits July 25, 2026 12:27
…-import

# Conflicts:
#	waybionic_bringup/launch/display.launch.py
@richardnguyen165

Copy link
Copy Markdown
Author

Launch command

source /opt/ros/jazzy/setup.bash
colcon build --packages-select waybionic_description waybionic_bringup
source install/setup.bash
ros2 launch waybionic_bringup display.launch.py

full_arm_mar24.urdf is now the launch default (the one-line change to
display.launch.py). To be explicit, or to select any other model without editing
the launch file:

ros2 launch waybionic_bringup display.launch.py \
  model:=$(ros2 pkg prefix waybionic_description --share)/urdf/full_arm_mar24.urdf

Brings up robot_state_publisher, RViz (waybionic.rviz), and the Joint State
Publisher GUI.

@richardnguyen165

Copy link
Copy Markdown
Author

Logical link / joint summary

6 links (5 physical + 1 massless root), 5 joints, 4 DOF:

world ──[world_to_base: fixed]──> base_link
      ──[joint1: revolute]──> shoulder
      ──[joint2: revolute]──> elbow
      ──[joint3: continuous]──> forearm
      ──[joint4: revolute]──> wrist
Joint Type Parent → Child Axis Range Effort/Vel
world_to_base fixed world → base_link
joint1 revolute base_link → shoulder 0 0 1 ±3.14 rad 100 / 1
joint2 revolute shoulder → elbow 0 0 1 ±3.14 rad 100 / 1
joint3 continuous elbow → forearm 0 0 1 unbounded 100 / 1
joint4 revolute forearm → wrist 0 0 1 ±3.14 rad 100 / 1

Masses from CAD: base_link 3.0245, shoulder 0.73934, elbow 1.6571,
forearm 1.1398, wrist 0.36714 kg. Full inertia tensors preserved from the export.

@richardnguyen165

Copy link
Copy Markdown
Author

Test evidence

Clean rebuild (rm -rf build install log) at commit 298f707.

check_urdf — structural
robot name is: full-arm-mar24-urdf-and-meshes
---------- Successfully Parsed XML ---------------
root Link: world has 1 child(ren)
    child(1):  base_link
        child(1):  shoulder
            child(1):  elbow
                child(1):  forearm
                    child(1):  wrist

Root is world — confirms the KDL fix is in place.

colcon build / test / test-result
KDL root-inertia check (headless)
Mesh audit — all 5 referenced meshes present

CI: ROS 2 Jazzy Build and Test (ros:jazzy container, ubuntu-24.04) —
rosdep → colcon buildcolcon testcolcon test-result --all.

@richardnguyen165

Copy link
Copy Markdown
Author
richard@RN-MSP9:~/waybionic_ground_station/waybionic_ground_station$ colcon test-result --all
build/waybionic_bringup/Testing/20260725-1947/Test.xml: 4 tests, 0 errors, 0 failures, 0 skipped
build/waybionic_bringup/test_results/waybionic_bringup/flake8.xunit.xml: 1 test, 0 errors, 0 failures, 0 skipped
build/waybionic_bringup/test_results/waybionic_bringup/lint_cmake.xunit.xml: 1 test, 0 errors, 0 failures, 0 skipped
build/waybionic_bringup/test_results/waybionic_bringup/pep257.xunit.xml: 1 test, 0 errors, 0 failures, 0 skipped
build/waybionic_bringup/test_results/waybionic_bringup/xmllint.xunit.xml: 1 test, 0 errors, 0 failures, 0 skipped
build/waybionic_description/Testing/20260725-1947/Test.xml: 2 tests, 0 errors, 0 failures, 0 skipped
build/waybionic_description/test_results/waybionic_description/lint_cmake.xunit.xml: 1 test, 0 errors, 0 failures, 0 skipped
build/waybionic_description/test_results/waybionic_description/xmllint.xunit.xml: 1 test, 0 errors, 0 failures, 0 skipped
build/waybionic_rviz_plugins/Testing/20260725-1943/Test.xml: 3 tests, 0 errors, 0 failures, 0 skipped
build/waybionic_rviz_plugins/test_results/waybionic_rviz_plugins/lint_cmake.xunit.xml: 1 test, 0 errors, 0 failures, 0 skipped
build/waybionic_rviz_plugins/test_results/waybionic_rviz_plugins/test_package_metadata.xunit.xml: 9 tests, 0 errors, 0 failures, 0 skipped
build/waybionic_rviz_plugins/test_results/waybionic_rviz_plugins/xmllint.xunit.xml: 2 tests, 0 errors, 0 failures, 0 skipped

Summary: 27 tests, 0 errors, 0 failures, 0 skipped

@richardnguyen165

Copy link
Copy Markdown
Author

Confirmed CAD revision

SolidWorks assembly full-arm-mar24.SLDASM
Export tool sw2urdf 1.6.0-4-g7f85cfe, build 1.6.7995.38578
Export timestamp 2026-07-11 13:16 UTC (STLs 13:16:25–28, URDF 13:16:31)
Delivered as full-arm-mar24-urdf-and-meshes/

⚠️ Naming trap: the drop was archived locally in a folder labelled full-arm-mar8-…;
its contents are the mar24 assembly. A separate folder literally named
full-arm-mar24-20260627… is an earlier, incomplete export (2026-06-27, base_link
only, no meshes) and is not the source of this PR. Identify the revision by the
export timestamp and the checksums below, not by folder name.

STL SHA256 — byte-identical to the 2026-07-11 export:

Mesh Bytes SHA256
base_link.STL 86,284 1eeca9a2bd8638cbd7267bf386c4f073d42ed5dc296994893e4fc739b0fd9879
shoulder.STL 3,677,284 a6cdd947841af9425e626bbd55f58c713f69c069b096b56fd4e201b8c7405dfa
elbow.STL 5,163,684 b02de46cd343878d5e2c37c92097e2b6de7241f4b62da5b2992ca20dcce045d5
forearm.STL 1,048,984 f43da709a418c165aec60dcfb862e31e382b9e51dc380186a7aefe130fffa333
wrist.STL 1,136,184 a94b9769819b0e0019a631514e47daea57a8ad98efd1208a666f4e2e88a94dd7

All 5 committed to git (no LFS, ~10.6 MiB total) and installed via
install(DIRECTORY urdf meshes …) in waybionic_description/CMakeLists.txt.
These are the only meshes the model needs — nothing else is referenced.

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.

5 participants