Commit Graph

30 Commits

Author SHA1 Message Date
7bd11e6e8d 增加夹爪重力补偿
Some checks failed
Lint / pre-commit (push) Has been cancelled
2026-03-31 14:26:08 +08:00
7d30dc8c89 增加重力补偿功能 2026-03-20 16:01:23 +08:00
8fc3db0bee 增加调试信息,关闭moveit servo 2026-03-10 14:11:47 +08:00
e484b274c5 修改can端口号 2026-02-27 14:43:49 +08:00
Daijiro Fukuda
73ef898387
Make gain configurable (#79)
Make gain configurable in HardwareInfo of the description file.

Need https://github.com/enactic/openarm_description/pull/38.
2026-01-15 18:07:21 +09:00
Daijiro Fukuda
eeca95ed4b
Decrease gain for safety (#78)
We observed that executing actions with large position differences can
result in dangerously high velocities, depending on the controller.
So, the default values should be lower.
2026-01-14 18:00:01 +09:00
Hirokazu Ishida
940b109423
fix(openarm_hardware): modify pd-gains of controllers (#69)
Signed-off-by: Hirokazu Ishida (SB Intuitions) <hirokazu.ishida@sbintuitions.co.jp>
Co-authored-by: Daijiro Fukuda <fukuda@clear-code.com>
2026-01-14 15:49:55 +09:00
cc
09fc8a467f
feat: openarm_can as a ros package (#73)
Related to https://github.com/enactic/openarm_can/pull/74 and
https://github.com/enactic/openarm/pull/359. The edit makes it possible
to include `openarm_can` as a ros2 workspace package and built together
with colcon. It still possible to install openarm_can systemwide.
2025-12-17 15:03:39 +09:00
Yue Yin
3e1f9792b0
Add approximate gripper position (#49)
- Main change: Add approximate gripper position
- Minor change: Add more comments about TODOs and appropriate waits
2025-07-24 20:05:06 +09:00
Yue Yin
444a998cf8
Fix read() in hardware plugin (#47)
- Temporary fix: read method with effective refresh_all()
- Use conservative PD parameters for control
2025-07-24 12:41:06 +09:00
Sutou Kouhei
26b7f51d3a
Update license headers (#45) 2025-07-23 16:26:42 +09:00
Yue Yin
110fd278ff
Update hardware interface (#43)
- Minimal working hardware plugin with v1.0 openarmcan. 
- gripper logic unimplemented
2025-07-23 16:08:34 +09:00
Yue Yin
67a60a23ba
Reconfigured controllers with new URDF for v1.0 (#34)
This PR is made for new release and do not work with current v0.3 robot
descriptions.
Use for the ros2 control for quick arm control.
Launch files spawn:
- Robot state publisher
- Controller manager with ros2_control
- Joint state broadcaster
- Robot controller (joint trajectory or forward position)
- Gripper controller
- RViz2 visualization

---------

Co-authored-by: Thomason Zhou <t95zhou@uwaterloo.ca>
2025-07-23 14:41:24 +09: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
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
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
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
thomason
e9365f0f26
Update openarm_hardware package.xml to include hardware_interface and pluginlib 2025-05-07 09:17:01 +09:00
Thomason Zhou
d9a2a6d0c0 Add openarm metapackage 2025-04-25 18:36:27 +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
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
8168442d4e Add library install for openarm_hardware 2025-04-01 13:46:10 +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