# Summary
The previous URDF directory structure used has a chained call from
**openarm.urdf.xacro** -> **openarm.xacro** ->
**openarm.ros2_control.xacro**.
**openarm.xacro** takes both robot hardware description and
control/communication configuration arguments but the file content is
only about robot description.
# Changes Made
- Renamed **openarm.xacro** to **openarm.robot.xacro**. This file now
contains only the robot's hardware description, including links, joints,
visuals, and inertial properties.
- **openarm.control.xacro** handles all ROS 2 control configurations,
including hardware interfaces, joint interfaces, and CAN device setup.
- Updated openarm.urdf.xacro (entry point)Calls both
**openarm.robot.xacro** and **openarm.control.xacro**.
This change should separates responsibilities and arguments for each
subsystem.
Have tested with bringup scripts for both single-arm and bimanual
configurations.
## Issue
- **openarm_bringup/openarm.launch.py** was launching rviz2 with an
incorrect configuration file.
- The same launch script is intended to execute xacro with a
configurable prefix and support mock hardware. However, these features
were not functioning as the required arguments and plugin initialization
were missing from the xacro files.
## Fix
- Updated the rviz configuration path to the correct file.
- Added the necessary arguments and plugin setup to the relevant xacro
files to enable prefix configuration and mock hardware support.
We are standardizing our software under Apache License 2.0. This PR
replaces existing BSD 3-Clause License with Apache 2.0 in this
repository.
## About Copyright
All commits in this repository are made by Reazon Holdings, Inc.
members, so the copyright has been added as follows.
- `Copyright 2025 Reazon Holdings, Inc.`
```console
$ git shortlog -sn
55 Thomason Zhou
14 thomason
5 takuya kodama
1 Fujimoto Seiji
1 edwin-giang
1 toki
```
## How it was done
We added the new license header directory by directory, with each commit
covering a single directory to make review easier.
To ensure there are no missing files, we ran the following commands.
```
$ grep -RIL --exclude-dir='.git' --exclude='*.stl' "Apache License, Version 2.0" .
./openarm_bringup/README.md
./openarm_bimanual_moveit_config/README.md
./openarm_bimanual_description/urdf/openarm_bimanual.urdf
./.gitignore
./README.md
./openarm_description/urdf/openarm.urdf
./openarm_description/resource/openarm_description
```
The following files are auto-generated.
- openarm_bimanual_description/urdf/openarm_bimanual.urdf
- openarm_description/urdf/openarm.urdf