Commit Graph

17 Commits

Author SHA1 Message Date
Yue Yin
5bbe23cf28
refactor: separate robot and control xacros (#22)
# 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.
2025-06-08 21:21:10 +09:00
takuya kodama
2206a7bf95
lint: add autopep8 to pre-commit hook for Python formatting (#21)
We’ve added the autopep8 hook to our `.pre-commit-config.yaml` to
enforce a consistent Python style.

To verify its behavior without touching every file at once, we’re
applying it in-place to depth_camera.launch.py for now because the large
number of impacted files there are.

The follow-up PR will run autopep8 accross the entire codebase once this
initial change passes CI.

ref: https://github.com/hhatto/autopep8
2025-06-02 17:00:35 +09:00
takuya kodama
44bca7ba3a
fix: move xml-model declaration above license header (#14)
## Problem

When we launch openarm_bringup, the following error are raised.

```console
$ ros2 launch openarm_bringup openarm.launch.py
[INFO] [launch]: All log files can be found below /home/otegami/.ros/log/2025-05-23-15-07-52-834283-otegami-2239551
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [ros2_control_node-1]: process started with pid [2239568]
[INFO] [robot_state_publisher-2]: process started with pid [2239569]
[INFO] [rviz2-3]: process started with pid [2239570]
[robot_state_publisher-2] [INFO] [1747984073.330768599] [robot_state_publisher]: Robot initialized
[ros2_control_node-1] [INFO] [1747984073.346291338] [controller_manager]: Using Steady (Monotonic) clock for triggering controller manager cycles.
[ros2_control_node-1] [ERROR] [1747984073.346957366] [pluginlib.ClassLoader]: Could not find a root element for package manifest at /home/otegami/work/cpp/ros2_ws/install/openarm_hardware/share/openarm_hardware/package.xml.
[ros2_control_node-1] [ERROR] [1747984073.347001329] [pluginlib.ClassLoader]: Could not find package manifest (neither package.xml or deprecated manifest.xml) at same directory level as the plugin XML file /home/otegami/work/cpp/ros2_ws/install/openarm_hardware/share/openarm_hardware/openarm_hardware.xml. Plugins will likely not be exported properly.
[ros2_control_node-1] )
[ros2_control_node-1] [ERROR] [1747984073.347237704] [pluginlib.ClassLoader]: Could not find a root element for package manifest at /home/otegami/work/cpp/ros2_ws/install/openarm_hardware/share/openarm_hardware/package.xml.
[ros2_control_node-1] [ERROR] [1747984073.347246277] [pluginlib.ClassLoader]: Could not find package manifest (neither package.xml or deprecated manifest.xml) at same directory level as the plugin XML file /home/otegami/work/cpp/ros2_ws/install/openarm_hardware/share/openarm_hardware/openarm_hardware.xml. Plugins will likely not be exported properly.
[ros2_control_node-1] )
[ros2_control_node-1] [ERROR] [1747984073.347465709] [pluginlib.ClassLoader]: Could not find a root element for package manifest at /home/otegami/work/cpp/ros2_ws/install/openarm_hardware/share/openarm_hardware/package.xml.
[ros2_control_node-1] [ERROR] [1747984073.347471103] [pluginlib.ClassLoader]: Could not find package manifest (neither package.xml or deprecated manifest.xml) at same directory level as the plugin XML file /home/otegami/work/cpp/ros2_ws/install/openarm_hardware/share/openarm_hardware/openarm_hardware.xml. Plugins will likely not be exported properly.
```

## Cause

when the license comments appeared before the
xml-model instruction, it happedned.

## Solution

This PR changes places the xml-model declaration
immediately after the XML prolog and ahead of the
license block to resolve the issue.
2025-05-23 16:56:14 +09:00
takuya kodama
56f98bd226
Relicense to Apache License 2.0 from BSD 3-Clause License (#13)
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
2025-05-22 16:22:55 +09:00
Thomason Zhou
d9a2a6d0c0 Add openarm metapackage 2025-04-25 18:36:27 +09:00
Thomason Zhou
e24c9e37e6 Update generated urdfs 2025-04-25 18:04:06 +09:00
Thomason Zhou
f7ca1fe7b7 Add updated urdfs 2025-04-23 18:33:41 +09:00
thomason
1a1084c627
Add moveit2 package with dual arm/gripper (#5)
* Create mujoco_ros2_control package

* Enable Mujoco hardware interface for OpenArm

* Verify connection with ros2_control

* Update actuators to pos/vel

* Add motor after creation

* Tune KD for smoother motion

* Restore realsense camera

* Change camera to be 10 tilt from vertical to match physical model

* Repair urdf to match physical robot

* Checkpoint moveit2_configuration

* Remove collision between camera and pedestal and remove additional ros2_control interfaces for mock

* Enable octomap perception

* Fix base_link to world transform

* Update openarm to support moveit2 bimanual planning with end effectors

* Improve safety of openarm_hardware zero position autocalibration

* Remove openarm_mujoco_ros2_control from moveit2 branch

* Restore sensor functionality
2025-04-22 18:46:27 +09:00
Thomason Zhou
ce06ea14c1 Add URDFs 2025-04-15 15:38:11 +09:00
thomason
596c498598
Add openarm_bimanual_moveit_config and deploy to physical openarm (#3)
See https://github.com/reazon-research/openarm_ros2/pull/3 for video
2025-04-10 18:31:15 +09:00
Thomason Zhou
42935bb3b1 Clean up openarm_bimanual_description 2025-04-01 13:47:32 +09:00
thomason
595fbe7745
Implement openarm ros2_control support with openarm_hardware and openarm_bringup (#2)
- openarm_bringup: ros2_control bringup
- openarm_hardware: hardware interface for ros2_control
2025-03-28 18:05:38 +09:00
Thomason Zhou
52f39010d7 Update package.xml description for openarm_bimanual_description 2025-03-11 14:24:38 +09:00
Thomason Zhou
5839d05ffa Update default zero to be up, with option for arm zero position (bend shoulder) 2025-03-11 13:35:34 +09:00
Thomason Zhou
73eea36fde Update urdf 2025-03-11 13:17:59 +09:00
Thomason Zhou
bb8bff1b63 Refactor openarm_description into separate package 2025-03-11 13:16:12 +09:00
Thomason Zhou
17b99f5342 Cleanup bimanual_description 2025-03-11 13:06:46 +09:00