Skip to content

Commit

Permalink
update 12/01
Browse files Browse the repository at this point in the history
  • Loading branch information
YusukeKato committed Dec 6, 2024
1 parent 6e6f7e2 commit d4d47df
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions markdown/2024/1201.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,15 @@
- tag=ros2

## はじめに
### 記事の概要
### アドベントカレンダーについて
この記事はQiitaのROS 2 Advent Calendar 2024の18日目の記事です。
12月1日から12月25日まで毎日ROS 2に関係した記事が投稿されるはずなので、そのほかの記事については下記のリンクからカレンダーをご確認ください。

https://qiita.com/advent-calendar/2024/ros2

ROS 2 Advent Calendar 2024

### 記事の概要
この記事ではURDFを置換してRVizで表示して遊ぶシェル芸を紹介します。
やはりROS 2においてURDFは必要不可欠な要素ではありますが、
イマイチどうやっていじっていいのかよく分からないことも多々あります。
Expand Down Expand Up @@ -69,7 +70,7 @@ Qiita - シェル芸で遊ぶROS 2
### 最低限のURDFを作成
まずは下記の内容をコピペしてcube.urdfを作成します。
不完全なURDFかもしれませんが、とりあえずはこれで遊べます。
```xml
```
<robot name="cube">
<link name="cube_link">
<visual>
Expand All @@ -86,12 +87,12 @@ Qiita - シェル芸で遊ぶROS 2
robot_state_publisherにcube.urdfを渡すことで、robot_descriptionトピックとtfトピックを配信してくれます。

端末1で実行
```sh
```
ros2 run robot_state_publisher robot_state_publisher --ros-args -p robot_description:="$(cat cube.urdf)"
```

端末2で実行
```sh
```
rviz2
```

Expand All @@ -108,7 +109,7 @@ RVizの様子
ここでは下記のコマンドを実行して立方体のX軸方向のサイズを1から2に置換します。

端末3で実行
```sh
```
ros2 topic echo --once /robot_description | sed 's/"/\\"/g' | awk 'NR==1' | sed "s/1/2/" | xargs -I@ ros2 topic pub --once /robot_description std_msgs/msg/String "@" --qos-durability transient_local
```

Expand All @@ -131,14 +132,14 @@ ros2 topic echo --once /robot_description | sed 's/"/\\"/g' | awk 'NR==1' | sed
先ほどの置換の処理を少し書き換えた下記のコマンドを実行します。

端末3で実行
```sh
```
ros2 topic echo --once /robot_description | sed 's/"/\\"/g' | awk 'NR==1' | awk '{for(i=1;i<=9;i++){sub(1,i);print $0;sub(i,1)}}' | xargs -I@ ros2 topic pub --once /robot_description std_msgs/msg/String "@" --qos-durability transient_local
```

置換の処理を下記のように書き換えました。
ここではawkのfor文でX軸方向のsizeを1から9まで順番に置換しています。

```sh
```
awk '{for(i=1;i<=9;i++){sub(1,i);print $0;sub(i,1)}}'
```

Expand All @@ -155,7 +156,7 @@ ros2 param setを使用します。

### URDFを作成
まずは下記のようなcube2.urdfを作成します。
```xml
```
<robot name="cube">
<link name="base_link"/>
<link name="cube_link">
Expand All @@ -181,12 +182,12 @@ ros2 param setを使用します。
方法は先ほどの立方体を伸ばした時と同じです。

端末1で実行
```sh
```
ros2 run robot_state_publisher robot_state_publisher --ros-args -p robot_description:="$(cat cube2.urdf)"
```

端末2で実行
```sh
```
rviz2
```

Expand All @@ -197,14 +198,14 @@ rviz2

RVizの様子

## 色を置換
### 色を置換
ros2 param setの使い方は下記の通りです。
```sh
```
ros2 param set /robot_state_publisher robot_description "$(cat cube2.urdf)"
```

下記のコマンドを実行すると色の値が置換されます(シェル芸ではないかもです)。
```sh
```
for i in {9..0};do sed -i "s/rgba=\"[0-9]*.[0-9]*/rgba=\"0.$i/" cube2.urdf;ros2 param set /robot_state_publisher robot_description "$(cat cube2.urdf)";done
```

Expand Down

0 comments on commit d4d47df

Please sign in to comment.