diff --git a/.docker/README.md b/.docker/README.md
index c570f387..88476826 100644
--- a/.docker/README.md
+++ b/.docker/README.md
@@ -10,7 +10,7 @@ tagにはROSのディストリビューションを指定してください。
Jazzyディストリビューションのイメージをダウンロードする場合は次のコマンドを実行します。
```sh
-$ docker pull ghcr.io/rt-net/crane_plus:jazzy
+docker pull ghcr.io/rt-net/crane_plus:jazzy
```
### ノードの起動
@@ -29,9 +29,9 @@ rockerのオプションには、
```sh
# rockerのインストール
-$ sudo apt install python3-rocker
+sudo apt install python3-rocker
-$ rocker --x11 --net=host --privileged \
+rocker --x11 --net=host --privileged \
--volume /dev/shm:/dev/shm \
-- ghcr.io/rt-net/crane_plus:$ROS_DISTRO \
ros2 launch crane_plus_examples demo.launch.py
@@ -44,18 +44,18 @@ $ rocker --x11 --net=host --privileged \
```sh
# ワークスペース作成
-$ mkdir -p ~/crane_ws/src
+mkdir -p ~/crane_ws/src
# パッケージをクローン
-$ git clone https://github.com/rt-net/crane_plus.git ~/crane_ws/src/crane_plus
+git clone https://github.com/rt-net/crane_plus.git ~/crane_ws/src/crane_plus
# パッケージをビルド
-$ rocker --x11 --net=host --privileged \
+rocker --x11 --net=host --privileged \
--volume ~/crane_ws:/root/overlay_ws \
-- ghcr.io/rt-net/crane_plus:$ROS_DISTRO \
colcon build --symlink-install
# ノードを起動
-$ rocker --x11 --net=host --privileged \
+rocker --x11 --net=host --privileged \
--volume /dev/shm:/dev/shm \
--volume ~/crane_ws:/root/overlay_ws \
-- ghcr.io/rt-net/crane_plus:$ROS_DISTRO \
@@ -68,8 +68,8 @@ $ rocker --x11 --net=host --privileged \
```sh
# jazzyディストリビューションのイメージを作成する
-$ cd crane_plus/.docker
-$ ./build_source.sh jazzy
+cd crane_plus/.docker
+./build_source.sh jazzy
...
Successfully tagged crane_plus:jazzy
```
diff --git a/README.md b/README.md
index 6aef6221..2a3849f9 100644
--- a/README.md
+++ b/README.md
@@ -8,21 +8,25 @@ ROS 2 package suite of CRANE+ V2.
## Table of Contents
-- [Supported ROS 2 distributions](#supported-ROS-2-distributions)
-- [Requirements](#requirements)
-- [Installation](#installation)
- - [Binary installation](#binary-installation)
- - [Source Build](#source-build)
-- [Quick Start](#quick-start)
-- [Packages](#packages)
-- [License](#license)
-- [Disclaimer](#disclaimer)
+- [crane\_plus](#crane_plus)
+ - [Supported ROS 2 distributions](#supported-ROS-2-distributions)
+ - [Requirements](#requirements)
+ - [Installation](#installation)
+ - [Docker images](#docker-images)
+ - [Binary installation](#binary-installation)
+ - [Source Build](#source-build)
+ - [Quick Start](#quick-start)
+ - [Packages](#packages)
+ - [How to Use Examples](#how-to-use-examples)
+ - [License](#license)
+ - [Contributing](#contributing)
+ - [Disclaimer](#disclaimer)
## Supported ROS 2 distributions
-- [Foxy](https://github.com/rt-net/crane_plus/tree/foxy-devel)
-- [Humble](https://github.com/rt-net/crane_plus/tree/humble-devel)
-- Jazzy
+- [Humble Hawksbill](https://github.com/rt-net/crane_plus/tree/humble)
+- [Jazzy Jalisco](https://github.com/rt-net/crane_plus/tree/jazzy)
+
## Requirements
- CRANE+ V2
@@ -30,7 +34,7 @@ ROS 2 package suite of CRANE+ V2.
- [Web Shop](https://www.rt-shop.jp/index.php?main_page=product_info&cPath=1348_1&products_id=3626&language=ja)
- Linux OS
- Ubuntu 24.04
-- ROS
+- ROS 2
- [Jazzy Jalisco](https://docs.ros.org/en/jazzy/Installation.html)
## Installation
@@ -43,46 +47,43 @@ ROS 2 package suite of CRANE+ V2.
### Binary installation
```sh
-$ sudo apt update
-$ sudo apt install ros-$ROS_DISTRO-crane-plus
+sudo apt update
+sudo apt install ros-$ROS_DISTRO-crane-plus
```
### Source Build
```sh
# Download crane_plus repository
-$ mkdir -p ~/ros2_ws/src
-$ cd ~/ros2_ws/src
-$ git clone -b $ROS_DISTRO https://github.com/rt-net/crane_plus.git
+mkdir -p ~/ros2_ws/src
+cd ~/ros2_ws/src
+git clone -b $ROS_DISTRO https://github.com/rt-net/crane_plus.git
# Install dependencies
-$ rosdep install -r -y -i --from-paths .
+rosdep install -r -y -i --from-paths .
# Build & Install
-$ cd ~/ros2_ws
-$ colcon build --symlink-install
-$ source ~/ros2_ws/install/setup.bash
+cd ~/ros2_ws
+colcon build --symlink-install
+source ~/ros2_ws/install/setup.bash
```
## Quick Start
```sh
# Connect CRANE+ V2 to PC, then
-$ source ~/ros2_ws/install/setup.bash
-$ ros2 launch crane_plus_examples demo.launch.py port_name:=/dev/ttyUSB0
+source ~/ros2_ws/install/setup.bash
+ros2 launch crane_plus_examples demo.launch.py port_name:=/dev/ttyUSB0
# Terminal 2
-$ source ~/ros2_ws/install/setup.bash
-$ ros2 launch crane_plus_examples example.launch.py example:='gripper_control'
+source ~/ros2_ws/install/setup.bash
+ros2 launch crane_plus_examples example.launch.py example:='gripper_control'
# Press [Ctrl-c] to terminate.
```
-詳細は[crane_plus_examples](./crane_plus_examples/README.md)
-を参照してください。
-
## Packages
- crane_plus_control
@@ -102,19 +103,30 @@ $ ros2 launch crane_plus_examples example.launch.py example:='gripper_control'
- [README](./crane_plus_moveit_config/README.md)
- CRANE+ V2の`moveit2`設定ファイルです
+## How to Use Examples
+
+サンプルプログラムは、`crane_plus_examples`パッケージの[README](./crane_plus_description/README.md)参照してください。
+
## License
-このリポジトリはApache 2.0ライセンスの元、公開されています。
-ライセンスについては[LICENSE](./LICENSE)を参照ください。
+各ファイルにライセンスが明記されている場合、そのライセンスに従います。
+特に明記がない場合は、Apache License, Version 2.0に基づいて公開されています。
+ライセンスの全文は[LICENSE](./LICENSE)または[https://www.apache.org/licenses/LICENSE-2.0](https://www.apache.org/licenses/LICENSE-2.0)から確認できます。
サーボモータのAX-12Aに関するCADモデルの使用については、ROBOTIS社より使用許諾を受けています。
CRANE+ V2に使用されているROBOTIS社の部品類にかかる著作権、商標権、その他の知的財産権は、ROBOTIS社に帰属します。
We have obtained permission from ROBOTIS Co., Ltd. to use CAD models relating to servo motors AX-12A. The proprietary rights relating to any components or parts manufactured by ROBOTIS and used in this product, including but not limited to copyrights, trademarks, and other intellectual property rights, shall remain vested in ROBOTIS.
-## Disclaimer
+## Contributing
+
+- 本ソフトウェアはオープンソースですが、開発はオープンではありません。
+- 本ソフトウェアは基本的にオープンソースソフトウェアとして「AS IS」(現状有姿のまま)で提供しています。
+- 本ソフトウェアに関する無償サポートはありません。
+- バグの修正や誤字脱字の修正に関するリクエストは常に受け付けていますが、それ以外の機能追加等のリクエストについては社内のガイドラインを優先します。
+詳しくは[コントリビューションガイドライン](https://github.com/rt-net/.github/blob/master/CONTRIBUTING.md)に従ってください。
-本ソフトウェアはApache 2.0ライセンスで、「AS IS」(現状有姿のまま)で提供しています。本ソフトウェアに関する無償サポートはありません。
+## Disclaimer
当該製品および当ソフトウェアの使用中に生じたいかなる損害も株式会社アールティでは一切の責任を負いかねます。 ユーザー自身で作成されたプログラムに適切な制限動作が備わっていない場合、本体の損傷や、本体が周囲や作業者に接触、あるいは衝突し、思わぬ重大事故が発生する危険があります。 ユーザーの責任において十分に安全に注意した上でご使用下さい。
diff --git a/crane_plus_control/README.md b/crane_plus_control/README.md
index c6f4b70b..3bf1e767 100644
--- a/crane_plus_control/README.md
+++ b/crane_plus_control/README.md
@@ -3,7 +3,25 @@
このパッケージは[ros2_control](https://github.com/ros-controls/ros2_control)
をベースにした、CRANE+ V2 のコントローラパッケージです。
-## ros2_control関連ファイル
+## Table of Contents
+
+- [crane\_plus\_control](#crane_plus_control)
+ - [ros2\_control Files](#ros2_control-files)
+ - [Setup](#setup)
+ - [USB Port Configuration](#usb-port-configuration)
+ - [latency_timer Setting](#latency_timer-setting)
+ - [Return Delay Time Setting](#return-delay-time-setting)
+ - [How to Launch Nodes](#how-to-launch-nodes)
+ - [Controller Manager Parameters](#controller-manager-parameters)
+ - [Control Cycle](#control-cycle)
+ - [Controllers](#controllers)
+ - [crane\_x7\_hardware Parameters](#crane_x7_hardware-parameters)
+ - [USB Port](#usb-port)
+ - [Baudrate](#baudrate)
+ - [Communication Timeout](#communication-timeout)
+ - [Serveo](#servo)
+
+## ros2_control Files
- `crane_plus_control::CranePlusHardware (crane_plus_hardware)`
- 本パッケージがエクスポートする[Hardware Components](https://ros-controls.github.io/control.ros.org/getting_started.html#hardware-components)です
@@ -14,14 +32,15 @@
- [config/crane_plus_controllers.yaml](./config/crane_plus_controllers.yaml)
- Controller Managerのパラメータファイルです
-## 実機のセットアップ
+## Setup
`crane_plus_hardware`がCRANE+ V2実機と通信するために、
PCとCRANE+ V2の設定が必要です。
-**正しく設定できていない場合、CRANE+ V2が動作しない、振動する、などの不安定な動きをするため注意してください**
+> [!NOTE]
+> 正しく設定できていない場合、CRANE+ V2が動作しない、振動する、などの不安定な動きをするため注意してください。
-### USB通信ポートの設定
+### USB Port Configuration
`crane_plus_hardware`はUSB通信ポート(`/dev/ttyUSB*`)を経由してCRANE+ V2と通信します。
@@ -29,10 +48,10 @@ PCとCRANE+ V2の設定が必要です。
```sh
# /dev/ttyUSB0を使用する場合
-$ sudo chmod 666 /dev/ttyUSB0
+sudo chmod 666 /dev/ttyUSB0
```
-### latency_timerの設定
+### latency_timer Setting
CRANE+ V2を100 Hz周期で制御するためには、
USB通信ポートとサーボモータの設定を変更します。
@@ -43,9 +62,8 @@ USB通信ポートとサーボモータの設定を変更します。
```sh
# /dev/ttyUSB0を使用する場合
-
-# rootに切り替える
-$ sudo su
+## rootに切り替える
+sudo su
```
```txt
@@ -55,7 +73,7 @@ $ sudo su
# exit
```
-### Return Delay Timeの設定
+### Return Delay Time Setting
CRANE+ V2に搭載されているサーボモータ[Dynamixel AX-12A](https://emanual.robotis.com/docs/en/dxl/ax/ax-12a/)
には`Return Delay Time`というパラメータがあります。
@@ -68,7 +86,7 @@ CRANE+ V2に搭載されているサーボモータ[Dynamixel AX-12A](https://em

-## ノードの起動
+## How to Launch Nodes
`crane_plus_control.launch.py`を実行すると、`Controller Manager`ノードが起動し、
以下のコントローラが読み込まれます。
@@ -81,10 +99,10 @@ CRANE+ V2に搭載されているサーボモータ[Dynamixel AX-12A](https://em
次のコマンドでジョイント角度情報(`joint_states`)を表示できます
```sh
-$ ros2 topic echo /joint_states
+ros2 topic echo /joint_states
```
-## Controller Managerのパラメータ
+## Controller Manager Parameters
`Controller Manager`のパラメータは
[config/crane_plus_controllers.yaml](./config/crane_plus_controllers.yaml)
@@ -103,22 +121,20 @@ controller_manager:
type: joint_state_broadcaster/JointStateBroadcaster
```
-### 制御周期
+### Control Cycle
`update_rate`は制御周期を設定します。
-CRANE+ V2に使用しているサーボモータの仕様により、
-100 Hz以上の周期で制御できません。
+CRANE+ V2に使用しているサーボモータの仕様により、100 Hz以上の周期で制御できません。
-### コントローラ
+### Controllers
CRANE+ V2の腕の制御用に`crane_plus_arm_controller`を、
グリッパの制御用に`crane_plus_gripper_controller`を設定しています。
-## crane_plus_hardwareのパラメータ
+## crane_plus_hardware Parameters
-`crane_plus_hardware`のパラメータは
-[crane_plus_description/urdf/crane_plus.urdf.xacro](../crane_plus_description/urdf/crane_plus.urdf.xacro)
+`crane_plus_hardware`のパラメータは、[crane_plus_description/urdf/crane_plus.urdf.xacro](../crane_plus_description/urdf/crane_plus.urdf.xacro)
で設定しています。
```xml
@@ -132,28 +148,26 @@ CRANE+ V2の腕の制御用に`crane_plus_arm_controller`を、
```
-### USB通信ポート
+### USB Port
`port_name`はCRANE+ V2との通信に使用するUSB通信ポートを設定します。
-### ボーレート
+### Baudrate
`baudrate`はCRANE+ V2に搭載したDynamixelとの通信ボーレートを設定します。
デフォルト値にはDynamixel AX-12Aの最高ボーレートである`1000000` (1 Mbps)を設定しています。
-### 通信タイムアウト
+### Communication Timeout
`timeout_seconds`は通信タイムアウト時間(秒)を設定します。
-`crane_plus_hardware`は、一定時間(デフォルト5秒間)通信に失敗し続けると、
-read/write動作を停止します。
+`crane_plus_hardware`は、一定時間(デフォルト5秒間)通信に失敗し続けると、read/write動作を停止します。
USBケーブルや電源ケーブルが抜けた場合等に有効です。
-### サーボパラメータ
+### Servo
-`read_velocities`、`read_loads`、`read_voltages`、`read_temperatures`
-は、サーボの回転速度、電圧、負荷、温度を読み取るためのパラメータです。
+`read_velocities`、`read_loads`、`read_voltages`、`read_temperatures`は、サーボの回転速度、電圧、負荷、温度を読み取るためのパラメータです。
`1`をセットすると、サーボパラメータを読み取ります。
@@ -162,9 +176,9 @@ USBケーブルや電源ケーブルが抜けた場合等に有効です。
読み取ったパラメータは`dynamic_joint_states`トピックとしてパブリッシュされます。
```sh
-$ ros2 topic echo /dynamic_joint_states
+ros2 topic echo /dynamic_joint_states
```
---
-[back to top](#crane_plus_control)
+[Back to top](#crane_plus_control)
diff --git a/crane_plus_description/README.md b/crane_plus_description/README.md
index cce17310..ce72fe15 100644
--- a/crane_plus_description/README.md
+++ b/crane_plus_description/README.md
@@ -9,13 +9,13 @@
CRANE+ V2のモデルが表示されるので、xacroファイルのデバッグに役立ちます。
```sh
-$ ros2 launch crane_plus_description display.launch.py
+ros2 launch crane_plus_description display.launch.py
```
Webカメラ搭載モデルの場合は、下記のコマンドを実行してください。
```sh
-$ ros2 launch crane_plus_description display.launch.py use_camera:=true
+ros2 launch crane_plus_description display.launch.py use_camera:=true
```

@@ -25,14 +25,11 @@ $ ros2 launch crane_plus_description display.launch.py use_camera:=true
CRANE+ V2の実機を動かす場合は、
事前にサーボモータ内部の角度リミット(`CW Angle Limit`、`CCW Angle Limit`)を設定してください。
-CRANE+ V2に搭載されているサーボモータはROBOTISのAX-12Aのため、
-[Dynamixel Wizard 2](https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/)
-を使用して角度リミットを設定できます。
+CRANE+ V2に搭載されているサーボモータはROBOTISのAX-12Aのため、[Dynamixel Wizard 2](https://emanual.robotis.com/docs/en/software/dynamixel/dynamixel_wizard2/)を使用して角度リミットを設定できます。

-[crane_plus.urdf.xacro](./urdf/crane_plus.urdf.xacro)には、
-下記のように各関節の角度リミットが定義されています。
+[crane_plus.urdf.xacro](./urdf/crane_plus.urdf.xacro)には、下記のように各関節の角度リミットが定義されています。
この角度リミットに近い値をサーボモータに設定することを推奨します。
```xml
diff --git a/crane_plus_examples/README.md b/crane_plus_examples/README.md
index 78ea9d08..fe171619 100644
--- a/crane_plus_examples/README.md
+++ b/crane_plus_examples/README.md
@@ -2,93 +2,122 @@
このパッケージはCRANE+ V2 ROS 2パッケージのサンプルコード集です。
-## 準備(実機を使う場合)
+## Table of Contents
+
+- [crane\_plus\_examples](#crane_plus_examples)
+ - [Table of Contents](#table-of-contents)
+ - [Setup](#setup)
+ - [Using CRANE+ V2](#using-crane-v2)
+ - [Using Gazebo](#using-gazebo)
+ - [Using Mock Components](#using-mock-components)
+ - [How to Run](#how-to-run)
+ - [Examples](#examples)
+ - [gripper\_control](#gripper_control)
+ - [pose\_groupstate](#pose_groupstate)
+ - [joint\_values](#joint_values)
+ - [pick\_and\_place](#pick_and_place)
+ - [Camera Examples](#camera-examples)
+ - [aruco\_detection](#aruco_detection)
+ - [color\_detection](#color_detection)
+
+## Setup
+
+CRANE+ V2の起動方法は[crane\_plus\_examplesのREADME](../crane_plus_examples/README.md)を参照してください。
+
+### Using CRANE+ V2

-### 1. CRANE+ V2本体をPCに接続する
+#### 1. CRANE+ V2本体をPCに接続する
CRANE+ V2本体をPCに接続します。
接続方法は製品マニュアルを参照してください。
-**※CRANE+ V2本体が接触しないように、十分なスペースを確保してください。**
+> [!NOTE]
+> CRANE+ V2本体が接触しないように、十分なスペースを確保してください。
-### 2. USB通信ポートの接続を確認する
+#### 2. USB通信ポートの接続を確認する
USB通信ポートの設定については`crane_plus_control`の
[README](../crane_plus_control/README.md)
を参照してください。
-**正しく設定できていない場合、CRANE+ V2が動作しない、振動する、などの不安定な動きになるので注意してください**
+> [!NOTE]
+> 正しく設定できていない場合、CRANE+ V2が動作しない、振動する、などの不安定な動きになるので注意してください。
-### 3. move_groupとcontrollerを起動する
+#### 3. move_groupとcontrollerを起動する
-#### 標準のCRANE+ V2を使用する場合
+- **標準のCRANE+ V2を使用する場合**
-次のコマンドでmove_group (`crane_plus_moveit_config`)と
-controller (`crane_plus_control`)を起動します。
+ 次のコマンドでmove_group (`crane_plus_moveit_config`)とcontroller (`crane_plus_control`)を起動します。
-```sh
-$ ros2 launch crane_plus_examples demo.launch.py port_name:=/dev/ttyUSB0
-```
+ ```sh
+ ros2 launch crane_plus_examples demo.launch.py port_name:=/dev/ttyUSB0
+ ```
-#### Webカメラ搭載モデルを使用する場合
+- **Webカメラ搭載モデルを使用する場合**
-Webカメラ搭載モデルの場合は、次のコマンドを実行してください。
-```video_device```は使用するWebカメラを指定してください。
+ Webカメラ搭載モデルの場合は、次のコマンドを実行してください。
+ ```video_device```は使用するWebカメラを指定してください。
-```sh
-$ ros2 launch crane_plus_examples demo.launch.py port_name:=/dev/ttyUSB0 use_camera:=true video_device:=/dev/video0
-```
+ ```sh
+ ros2 launch crane_plus_examples demo.launch.py port_name:=/dev/ttyUSB0 use_camera:=true video_device:=/dev/video0
+ ```
-## 準備(Gazeboを使う場合)
-=======
-
+### Using Gazebo
-### 1. move_groupとGazeboを起動する
+
-次のコマンドでmove_group (`crane_plus_moveit_config`)とGazeboを起動します。
+#### 1. move_groupとGazeboを起動する
-```sh
-$ ros2 launch crane_plus_gazebo crane_plus_with_table.launch.py
-```
+- **標準のCRANE+ V2を使用する場合**
-#### Webカメラ搭載モデルを使用する場合
+ 次のコマンドでmove_group (`crane_plus_moveit_config`)とGazeboを起動します。
-Webカメラ搭載モデルの場合は、次のコマンドを実行してください。
+ ```sh
+ ros2 launch crane_plus_gazebo crane_plus_with_table.launch.py
+ ```
-```sh
-$ ros2 launch crane_plus_gazebo crane_plus_with_table.launch.py use_camera:=true
-```
+- **Webカメラ搭載モデルを使用する場合**
-CRANE+ V2の前にArUcoマーカ付きのBoxを置いたシミュレータ環境を使用する場合は次のコマンドを実行します。
-[aruco\_detection](#aruco_detection)サンプルを実行する際に使用することを想定しています。
+ Webカメラ搭載モデルの場合は、次のコマンドを実行してください。
-```sh
-$ ros2 launch crane_plus_gazebo crane_plus_with_aruco_cube.launch.py use_camera:=true
-```
+ ```sh
+ ros2 launch crane_plus_gazebo crane_plus_with_table.launch.py use_camera:=true
+ ```
-CRANE+ V2の前に赤いBoxを置いたシミュレータ環境を使用する場合は次のコマンドを実行します。
-[color\_detection](#color_detection)サンプルを実行する際に使用すること想定しています。
+> [!NOTE]
+> CRANE+ V2の前にArUcoマーカ付きのBoxを置いたシミュレータ環境を使用する場合は次のコマンドを実行します。
+>
+> [aruco\_detection](#aruco_detection)サンプルを実行する際に使用することを想定しています。
+>
+> ```sh
+> ros2 launch crane_plus_gazebo crane_plus_with_aruco_cube.launch.py use_camera:=true
+> ```
-```sh
-$ ros2 launch crane_plus_gazebo crane_plus_with_red_cube.launch.py use_camera:=true
-```
+> [!NOTE]
+> CRANE+ V2の前に赤いBoxを置いたシミュレータ環境を使用する場合は次のコマンドを実行します。
+>
+> [color\_detection](#color_detection)サンプルを実行する際に使用すること想定しています。
+>
+> ```sh
+> ros2 launch crane_plus_gazebo crane_plus_with_red_cube.launch.py use_camera:=true
+> ```
-## 準備(Mock Componentsを使う場合)
+### Using Mock Components
### 1. move_groupとcontrollerを起動する
-次のコマンドでmove_group (`crane_plus_moveit_config`)と
-controller (`crane_plus_control`)を起動します。
+次のコマンドでmove_group (`crane_plus_moveit_config`)とcontroller (`crane_plus_control`)を起動します。
```sh
-$ ros2 launch crane_plus_examples demo.launch.py use_mock_components:=true
+ros2 launch crane_plus_examples demo.launch.py use_mock_components:=true
```
-Mock Componentsではカメラを使ったサンプルを実行することはできません。
+> [!NOTE]
+> Mock Componentsではカメラを使ったサンプルを実行することはできません。
-## サンプルプログラムを実行する
+## How to Run
準備ができたらサンプルプログラムを実行します。
例えばグリッパを開閉するサンプルは次のコマンドで実行できます。
@@ -99,13 +128,12 @@ $ ros2 launch crane_plus_examples example.launch.py example:='gripper_control'
終了するときは`Ctrl+c`を入力します。
-## Gazeboでサンプルプログラムを実行する場合
-
-Gazeboでサンプルプログラムを実行する場合は`use_sim_time`オプションを付けます。
-
-```sh
-$ ros2 launch crane_plus_examples example.launch.py example:='gripper_control' use_sim_time:=true
-```
+> [!NOTE]
+> Gazeboでサンプルプログラムを実行する場合は`use_sim_time`オプションを付けます。
+>
+> ```sh
+> $ ros2 launch crane_plus_examples example.launch.py example:='gripper_control' use_sim_time:=true
+> ```
## Examples
@@ -116,16 +144,17 @@ $ ros2 launch crane_plus_examples example.launch.py example:='gripper_control' u
- [joint_values](#joint_values)
- [pick_and_place](#pick_and_place)
-実行できるサンプルの一覧は、`examples.launch.py`にオプション`-s`を付けて実行することで表示できます。
-
-```sh
-$ ros2 launch crane_plus_examples example.launch.py -s
-Arguments (pass arguments as ':='):
-
- 'example':
- Set an example executable name: [gripper_control, pose_groupstate, joint_values, pick_and_place]
- (default: 'gripper_control')
-```
+> [!NOTE]
+> 実行できるサンプルの一覧は、`example.launch.py`にオプション`-s`を付けて実行することで表示できます。
+>
+> ```sh
+> $ ros2 launch crane_plus_examples example.launch.py -s
+> Arguments (pass arguments as ':='):
+>
+> 'example':
+> Set an example executable name: [gripper_control, pose_groupstate, joint_values, pick_and_place]
+> (default: 'gripper_control')
+> ```
---
@@ -139,9 +168,9 @@ Arguments (pass arguments as ':='):
$ ros2 launch crane_plus_examples example.launch.py example:='gripper_control'
```
-
+
-[back to example list](#examples)
+[Back to example list](#examples)
---
@@ -158,25 +187,25 @@ SRDFファイル[crane_plus_moveit_config/config/crane_plus.srdf](../crane_plus_
$ ros2 launch crane_plus_examples example.launch.py example:='pose_groupstate'
```
-
+
-[back to example list](#examples)
+[Back to example list](#examples)
---
-### joint_values
+### joint_values
アームのジョイント角度を1つずつ変更するコード例です。
次のコマンドを実行します。
```sh
-$ ros2 launch crane_plus_examples example.launch.py example:='joint_values'
+ros2 launch crane_plus_examples example.launch.py example:='joint_values'
```
-
+
-[back to example list](#examples)
+[Back to example list](#examples)
---
@@ -190,45 +219,45 @@ $ ros2 launch crane_plus_examples example.launch.py example:='joint_values'
$ ros2 launch crane_plus_examples example.launch.py example:='pick_and_place'
```
-
+
-[back to example list](#examples)
-
----
+[Back to example list](#examples)
## Camera Examples
Webカメラ搭載モデルのカメラを使用したサンプルコードです。
-[「Webカメラ搭載モデルを使用する場合」](#Webカメラ搭載モデルを使用する場合)の手順に従って、
-`demo.launch`を実行している状態で、
-各サンプルを実行できます。
+[「Webカメラ搭載モデルを使用する場合」](#Webカメラ搭載モデルを使用する場合)の手順に従い、`demo.launch.py`を実行している状態で各サンプルを実行します。
- [aruco\_detection](#aruco_detection)
- [color\_detection](#color_detection)
実行できるサンプルの一覧は、`camera_example.launch.py`にオプション`-s`を付けて実行することで確認できます。
-```sh
-$ ros2 launch crane_plus_examples camera_example.launch.py -s
-Arguments (pass arguments as ':='):
-
- 'example':
- Set an example executable name: [color_detection]
- (default: 'color_detection')
-```
+> ```sh
+> $ ros2 launch crane_plus_examples camera_example.launch.py -s
+> Arguments (pass arguments as ':='):
+>
+> 'example':
+> Set an example executable name: [color_detection]
+> (default: 'color_detection')
+> ```
---
### aruco_detection
モノに取り付けたArUcoマーカをカメラで検出し、マーカ位置に合わせて掴むコード例です。
-マーカは[aruco_markers.pdf](./aruco_markers.pdf)をA4紙に印刷して、一辺50mmの立方体に取り付けて使用します。
-検出されたマーカの位置姿勢はtfのフレームとして配信されます。
-tfの`frame_id`はマーカIDごとに異なりID0のマーカの`frame_id`は`target_0`になります。
-掴む対象は`target_0`に設定されています。
-マーカ検出には[OpenCV](https://docs.opencv.org/4.x/d5/dae/tutorial_aruco_detection.html)を使用しています。
+- マーカは[aruco_markers.pdf](./aruco_markers.pdf)をA4紙に印刷し、一辺50mmの立方体に取り付けます。
+- 検出されたマーカの位置姿勢はtfのフレームとして配信されます。
+- 各マーカはそれぞれ異なる `tf` フレームとして配信され、ID0のマーカは `frame_id=target_0` になります。
+- 掴む対象は`target_0`に設定されています。
+- マーカ検出には[OpenCV](https://docs.opencv.org/4.x/d5/dae/tutorial_aruco_detection.html)を使用しています。
+
+
+
+
次のコマンドを実行します。
@@ -236,10 +265,7 @@ tfの`frame_id`はマーカIDごとに異なりID0のマーカの`frame_id`は`t
ros2 launch crane_plus_examples camera_example.launch.py example:='aruco_detection'
```
-#### Videos
-[](https://youtu.be/m9dus6LCocc)
-
-[back to example list](#examples)
+[Back to camera example list](#camera-examples)
---
@@ -247,9 +273,13 @@ ros2 launch crane_plus_examples camera_example.launch.py example:='aruco_detecti
特定の色の物体を検出して掴むコード例です。
-デフォルトでは赤い物体の位置をtfのフレームとして配信します。
-tfの`frame_id`は`target_0`です。
-色検出には[OpenCV](https://docs.opencv.org/4.x/db/d8e/tutorial_threshold.html)を使用しています。
+- デフォルトでは青い物体の位置をtfのフレームとして配信します。
+- tfの`frame_id`は`target_0`です。
+- 色の検出には[OpenCV](https://docs.opencv.org/4.x/db/d8e/tutorial_threshold.html)を使用しています。
+
+
+
+
次のコマンドを実行します。
@@ -257,9 +287,6 @@ tfの`frame_id`は`target_0`です。
ros2 launch crane_plus_examples camera_example.launch.py example:='color_detection'
```
-#### Videos
-[](https://youtu.be/Kn0eWA7sALY)
-
-[back to example list](#examples)
+[Back to camera example list](#camera-examples)
---
diff --git a/crane_plus_gazebo/README.md b/crane_plus_gazebo/README.md
index d76b9b2b..e7491348 100644
--- a/crane_plus_gazebo/README.md
+++ b/crane_plus_gazebo/README.md
@@ -3,34 +3,34 @@
CRANE+ V2 の[Gazebo](https://gazebosim.org/home)
シミュレーションパッケージです。
-## ノードの起動
+## How to Launch Nodes
次のコマンドを実行するとGazeboが起動し、CRANE+ V2モデルとTable、Boxが表示されます。
-初回起動時はTableとBoxのモデルをダウンロードするため、モデルの表示に時間がかかることがあります。
-
-実機との接続や`crane_plus_examples/launch/demo.launch.py`の実行は必要ありません。
+> [!NOTE]
+> - 初回起動時はTableとBoxのモデルをダウンロードするため、モデルの表示に時間がかかることがあります。
+> - 実機との接続や`crane_plus_examples/launch/demo.launch.py`の実行は必要ありません。
```sh
-$ ros2 launch crane_plus_gazebo crane_plus_with_table.launch.py
+ros2 launch crane_plus_gazebo crane_plus_with_table.launch.py
```
カメラ付きモデルを使用する場合は下記コマンドを実行します。
```sh
-$ ros2 launch crane_plus_gazebo crane_plus_with_table.launch.py use_camera:=true
+ros2 launch crane_plus_gazebo crane_plus_with_table.launch.py use_camera:=true
```
CRANE+ V2の前にArUcoマーカ付きのBoxを置いたシミュレータ環境を使用する場合は下記コマンドを実行します。
```sh
-$ ros2 launch crane_plus_gazebo crane_plus_with_aruco_cube.launch.py
+ros2 launch crane_plus_gazebo crane_plus_with_aruco_cube.launch.py
```
CRANE+ V2の前に赤いBoxを置いたシミュレータ環境を使用する場合は下記コマンドを実行します。
```sh
-$ ros2 launch crane_plus_gazebo crane_plus_with_red_cube.launch.py
+ros2 launch crane_plus_gazebo crane_plus_with_red_cube.launch.py
```

diff --git a/crane_plus_moveit_config/README.md b/crane_plus_moveit_config/README.md
index cd45a8ed..8eccb7ae 100644
--- a/crane_plus_moveit_config/README.md
+++ b/crane_plus_moveit_config/README.md
@@ -2,16 +2,17 @@
このパッケージはCRANE+ V2のmove_group設定ファイル及びlaunchファイルを含んでいます。
-[ros-planning/moveit2/moveit_demo_nodes/run_move_group](https://github.com/ros-planning/moveit2/tree/main/moveit_demo_nodes/run_move_group)
-を参考にパッケージを作成しています。
+[ros\-planning/moveit2/moveit\_demo\_nodes/run\_move\_group](https://github.com/ros-planning/moveit2/tree/main/moveit_demo_nodes/run_move_group)を参考にパッケージを作成しています。
-## ノードの起動
+## How to Launch Nodes
`run_move_group.launch.py`を実行すると、`move_group`や`rviz`等のノードが起動します。
-コントローラノードは起動しないため、
-CRANE+ V2本体を動かすことはできません。(`crane_plus_examples`を参照してください。)
-## configファイル
+> [!NOTE]
+> コントローラノードは起動しないため、CRANE+ V2本体を動かすことはできません。
+> (`crane_plus_examples`を参照してください。)
+
+## Config File
- controllers.yaml
- `moveit_simple_controller_manager`のパラメータを設定しています
@@ -24,4 +25,4 @@ CRANE+ V2本体を動かすことはできません。(`crane_plus_examples`を
- デフォルトの`KDLKinematicsPlugin`では軌道計画に失敗するため、`LMAKinematicsPlugin`を使用しています
- ompl_planning.yaml
- Open Motion Planning Libraryのパラメータを設定しています
- - [ros-planning/moveit_resources/panda_moveit_config](https://github.com/ros-planning/moveit_resources/tree/master/panda_moveit_config)のパラメータを流用しています
+ - [ros-planning/moveit\_resources/panda\_moveit\_config](https://github.com/ros-planning/moveit_resources/tree/master/panda_moveit_config)のパラメータを流用しています