Commit Graph

96 Commits

Author SHA1 Message Date
takuya kodama
09254f06f9
Add contributing guide line (#37) 2025-07-22 09:03:52 +09:00
takuya kodama
9295571f2e
Add issue templates (#35) 2025-07-21 10:43:13 +09:00
Yue Yin
49579a9392
Cleanup the package structure (#30)
- We are keeping the bimanual and single arm descriptions in one
standalone package
[openarm_description](https://github.com/enactic/openarm_description)
- Similarly, bringup scripts for both single arm and bimanual setups
will be unified.
- mujoco related hardware code will be maintained in
[openarm_mujoco](https://github.com/enactic/openarm_mujoco).
2025-07-17 12:08:05 +09:00
thomason
ab7fe4f066
Update org (#29) 2025-07-10 22:25:13 -07:00
thomason
125fcad1bd
rosdep fix - add ros2_control dependencies (#27) 2025-07-04 14:20:56 -07:00
thomason
158d15dfa9
Add mujoco ros2 control (#26)
Add support for simulated openarm hardware with MuJoCo backend.
2025-07-03 21:43:08 -07:00
thomason
d151836956
Remove openarm_moveit_config from metapackage (#25) 2025-07-02 08:33:34 -07:00
Kevin Jiang
40a1a5c1ca
Revert "Kirigirisu merge feature added" (#24)
Reverts reazon-research/openarm_ros2#23
2025-07-01 15:10:37 +09:00
Kevin Jiang
f1420f1572
Kirigirisu merge feature added (#23)
Added script to cmake install path
Added merge script that communicates with kirigirisu
Added another launch exe for kirigirisu visualization
Adjusted log content in test/hardware
2025-06-30 17:37:21 +09:00
Kevin Jiang
09d3364a91
Updated README.md for jazzy patch part
minor changes to wording
2025-06-24 17:41:42 +09:00
Kevin Jiang
5f79dd9a3e
Update README.md with Jazzy patch
Added additional info for setting up ROS2 newer editions (Jazzy)
2025-06-24 17:37:05 +09:00
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
Yue Yin
00ef972eeb
Delete unplanned single arm moveit (#20)
Removed the unplanned single arm moveit
2025-06-02 15:05:11 +09:00
Yue Yin
14f160bba4
fix: malfunctioning launch script (#19)
## 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.
2025-06-02 14:57:49 +09:00
takuya kodama
dd0be4a5be
Add Contributor Covenant Code of Conduct (#18)
Introduce `CODE_OF_CONDUCT.md` based on Contributor Covenant v2.1.
2025-05-28 11:59:34 +09:00
takuya kodama
7f5dcaef34
openarm_hardware: add ros2_control_test_assets as a test dependency (#15)
## Problem

When building openarm_ros2, the hardware interface tests fail because
the components_urdfs.hpp header from ros2_control_test_assets cannot be
found as
follows.

```console
$ colcon build
...
/home/otegami/work/cpp/ros2_ws/src/openarm_ros2/openarm_hardware/test/test_openarm_hardware.cpp:21:10: fatal error: ros2_control_test_assets/components_urdfs.hpp: No such file or directory
   21 | #include "ros2_control_test_assets/components_urdfs.hpp"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
gmake[2]: *** [CMakeFiles/test_openarm_hardware.dir/build.make:79: CMakeFiles/test_openarm_hardware.dir/test/test_openarm_hardware.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:237: CMakeFiles/test_openarm_hardware.dir/all] Error 2
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< openarm_hardware [14.9s, exited with code 2]

Summary: 6 packages finished [15.1s]
  1 package failed: openarm_hardware
  5 packages had stderr output: openarm_bimanual_bringup openarm_bimanual_description openarm_bringup openarm_description openarm_hardware
  1 package not processed
```

## Cause

Although ros2_control_test_assets was installed, it wasn’t declared as a
dependency of the GMock test
target.

## Solution

Add ros2_control_test_assets as a test dependency in both the
CMakeLists.txt and in the package.xml,
ensuring the test can locate its headers.
2025-05-25 20:30:31 +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
takuya kodama
421e70a318
remove Vim's swap files (#12)
GitHub: GH-8
2025-05-19 16:40:35 +09:00
takuya kodama
d109f32963
clang-format: apply clang-format suggestions (#10)
Executed the following command and accept suggestions.

```console
$ nice pre-commit run --show-diff-on-failure --color=always --all-files
```
2025-05-19 16:36:06 +09:00
takuya kodama
30d11b4d28
ci: Enable Dependabot for GitHub Actions (#11) 2025-05-19 13:58:46 +09:00
takuya kodama
c9fbd8aada
ci: add pre-commit and CI lint workflow (#9)
We introduce pre-commit hook with clang-format to
enforce a unified code style across the project,
reducing style discussions and speeding up cod
reviews.

ref: https://pre-commit.com/
2025-05-19 12:25:56 +09:00
toki
d6cc80c17e
fix: compatible with canfd (#7)
## Summary

This PR updates the C++ hardware interface to support **CANFD** and confirms successful operation with **MoveIt** on the actual robot hardware.

---

##  Changes Made

- Migrated from classic CAN to **CANFD** in the motor control interface.
- Updated the following modules:
  - `openarm_hardware/include/openarm_hardware/canbus.hpp`
  - `openarm_hardware/src/canbus.cpp`
  - `openarm_hardware/src/motor_control.cpp`
  - `openarm_hardware/include/openarm_hardware/motor_control.hpp`
  - `openarm_hardware/src/openarm_hardware.cpp`
- Improved CAN socket handling and data frame structure.
- Refactored internal motor communication logic for robustness.

---

##  Verification

-  Confirmed joint control and motion execution with real hardware using **MoveIt**.
-  Controllers were properly loaded and executed planned trajectories without error.
-  CANFD communication is now functional and stable during runtime.
2025-05-19 11:32:09 +09:00
takuya kodama
de9eb17e86
Add '*.swp' to .gitignore (#8)
Vim swap files (*.swp) are not needed in version
control.
2025-05-19 11:13:05 +09:00
thomason
a8778090a7
Update package.xml with description and maintainer info 2025-05-09 22:53:26 -06:00
thomason
ea2e25e8f9
Update README.md with build status badge 2025-05-07 09:44:46 +09:00
thomason
e9365f0f26
Update openarm_hardware package.xml to include hardware_interface and pluginlib 2025-05-07 09:17:01 +09:00
thomason
e4afcbf11d
Remove unused dep 'warehouse_ros_mongo' from package.xml 2025-05-07 08:57:58 +09:00
thomason
7d4eaf9729
Remove openarm_bimanual_teleop from openarm metapackage 2025-05-07 00:56:06 +09:00
thomason
1d881bb5a1
Update package.xml with BSD-3-Clause License 2025-05-06 18:14:32 +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
fcd1a10291
Correct URDF to true joint limits + Add and update documentation (#6)
* Rename openarm_bimanual_teleop to openarm_bimanual_bringup

* Update package descriptions

* Add quickstart link

* Add note to source overlay

* Add test installation step

* Add poses and update default rviz config

* Fix rev1 to match hardware

* Align rev3 with hardware joint limits

* Match hardware joint limits

* Complete with more poses

* Update README.md with moveit2 video

* Add new READMEs in openarm_bringup and openarm_bimanual_moveit_config

* Add octomap note
2025-04-25 17:57:10 +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 Zhou
65baa02f54 Resolve merge conflict 2025-04-15 15:32:09 +09:00
Thomason Zhou
9618e107a5 Remove default disable_torque_ in openarm 2025-04-10 18:34:54 +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 Zhou
b50556cb83 Refactor openarm urdf 2025-04-01 13:46:52 +09:00
Thomason Zhou
8168442d4e Add library install for openarm_hardware 2025-04-01 13:46:10 +09:00
thomason
d743016402
Update README.md with installation instructions 2025-03-28 19:09:46 +09:00
Thomason Zhou
0246fc63ca Reorder packages in alphabetical order in README.md 2025-03-28 18:06:57 +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
8cfbde64a6
Update README.md with pictures of completed openarm_bimanual_description urdf 2025-03-11 14:22:47 +09:00
Thomason Zhou
d5a93222a5 Add openarm_bimanual_description to the readme 2025-03-11 14:13:26 +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