やってみた!

やってみた!

試したことを中心に、書評や興味のあること、思ったこととか

PyBulletでURDF(Unified Robot Description Format)  URDF解説編(3)

 前回は既存のロボットモデルhumanoid.urdfの中身を見ていきました。

  今回はオリジナルのモデルを作成してみます。

1.計画

 某ロボットキットの写真を眺めながら、こんな図を書いてみました。某ロボットキッとは軸の位置、寸法はもちろん異なります。

 

f:id:akifukka:20200226221347j:plain

可動軸の数は胴体1、脚6×2=12、手3×2=6、合計19です。

2.URDFファイル

 とにかくわかる範囲で作ってみます。以下は現状の制限やら、注意点やら。

  • URDFのファイル名に”-”(マイナス)を使うとPyBulletが読み込んでくれませんでした。
  • jointにrevoluteを使っています。revoluteは<axis/>で回転軸を指定する他<limit/>で軸の可動範囲(lower、upper)、最大回転速度(velocity)、力(effort)等の制限を指定してあげる必要があるとのことなので(ROSのホームページ解説から)、後で見直すのを前提に適当に指定しています。
  • linkの慣性モーメント(inertia)と質量(mass)も後で見直すのを前提に適当な値を入れています。

 以下に作ったurdfファイルを添付します。上の図と見比べながら見ると理解しやすいと思います。

<?xml version="1.0"?>
<robot name="tr1">
	<link name="base" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0 0 0" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
	</link>
	<link name="root" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 0.015 0.000" />
			<mass value = "0.400" />
			<inertia ixx = "0.02" ixy = "0" ixz = "0" iyy = "0.02" iyz = "0" izz = "0.02" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 0.015 0.000" />
			<geometry>
				<box size = "0.030 0.030 0.060" />
			</geometry>
		</collision>
	</link>
	<joint name="root" type="fixed" >
		<parent link = "base" />
		<child link = "root" />
		<origin rpy = "0 0 0" xyz = "0.000 0.000 0.000" />
	</joint>
	<!-- chest -->
	<link name="chest" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 0.0325 0.000" />
			<mass value = "0.400" />
			<inertia ixx = "0.02" ixy = "0" ixz = "0" iyy = "0.02" iyz = "0" izz = "0.02" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 0.0325 0.000" />
			<geometry>
				<box size = "0.030 0.045 0.080" />
			</geometry>
		</collision>
	</link>
	<joint name="chest" type="revolute" >
		<parent link = "root" />
		<child link = "chest" />
		<origin rpy = "0 0 0" xyz = "0.000 0.030 0.000" />
		<axis xyz = "0 0 -1" />
		<limit effort="10000.0" lower="0" upper="3.14" velocity="0.5"/>
	</joint>

	<!-- neck -->
	<link name="neck" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 0.025 0.000" />
			<mass value = "0.050" />
			<inertia ixx = "0.02" ixy = "0" ixz = "0" iyy = "0.02" iyz = "0" izz = "0.02" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 0.025 0.000" />
			<geometry>
				<sphere radius = "0.020" />
			</geometry>
		</collision>
	</link>
	<joint name="neck" type="fixed" >
		<parent link = "chest" />
		<child link = "neck" />
		<origin rpy = "0 0 0" xyz = "0.000 0.060 0.000" />
	</joint>

<!-- right foot -->
	<link name="right_hip_tw" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.025 -0.0025" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.010 -0.0025" />
			<geometry>
				<box size = "0.030 0.002 0.025" />
			</geometry>
		</collision>
	</link>
	<joint name="right_hip_tw" type="revolute" >
		<parent link = "root" />
		<child link = "right_hip_tw" />
		<origin rpy = "0 0 0" xyz = "0.000 0.000 0.020" />
		<axis xyz = "0 -1 0" />
		<limit effort="10000.0" lower="0" upper="3.14" velocity="0.5"/>
	</joint>
	<link name="right_hip_rl" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 0.000 0.010" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 0.000 0.010" />
			<geometry>
				<box size = "0.030 0.020 0.040" />
			</geometry>
		</collision>
	</link>
	<joint name="right_hip_rl" type="revolute" >
		<parent link = "right_hip_tw" />
		<child link = "right_hip_rl" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.030 -0.005" />
		<axis xyz = "-1 0 0" />
		<limit effort="10000.0" lower="-1.507" upper="1.507" velocity="0.5"/>
	</joint>
	<link name="right_hip_fb" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.0325 0.000" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.0325 0.000" />
			<geometry>
				<box size = "0.030 0.085 0.030" />
			</geometry>
		</collision>
	</link>
	<joint name="right_hip_fb" type="revolute" >
		<parent link = "right_hip_rl" />
		<child link = "right_hip_fb" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.025 0.010" />
		<axis xyz = "0 0 1" />
		<limit effort="10000.0" lower="-1.507" upper="1.507" velocity="0.5"/>
	</joint>
	<link name="right_knee_fb" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.040 0.000" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.040 0.000" />
			<geometry>
				<box size = "0.030 0.050 0.030" />
			</geometry>
		</collision>
	</link>
	<joint name="right_knee_fb" type="revolute" >
		<parent link = "right_hip_fb" />
		<child link = "right_knee_fb" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.065 0.000" />
		<axis xyz = "0 0 -1" />
		<limit effort="10000.0" lower="0" upper="3.14" velocity="0.5"/>
	</joint>
	<link name="right_anklee_fb" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.030 0.005" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.030 0.005" />
			<geometry>
				<box size = "0.030 0.020 0.040" />
			</geometry>
		</collision>
	</link>
	<joint name="right_anklee_fb" type="revolute" >
		<parent link = "right_knee_fb" />
		<child link = "right_anklee_fb" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.055 0.000" />
		<axis xyz = "0 0 -1" />
		<limit effort="10000.0" lower="-1.507" upper="1.507" velocity="0.5"/>
	</joint>
	<link name="right_anklee_rl" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.024 0.010" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.024 0.010" />
			<geometry>
				<box size = "0.040 0.002 0.050" />
			</geometry>
		</collision>
	</link>
	<joint name="right_anklee_rl" type="revolute" >
		<parent link = "right_anklee_fb" />
		<child link = "right_anklee_rl" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.030 -0.005" />
		<axis xyz = "1 0 0" />
		<limit effort="10000.0" lower="-0.5" upper="0.5" velocity="0.5"/>
	</joint>

<!-- right hand -->
	<link name="right_shoulder_fb" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 0.000 0.000" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
	</link>
	<joint name="right_shoulder_fb" type="revolute" >
		<parent link = "chest" />
		<child link = "right_shoulder_fb" />
		<origin rpy = "0 0 0" xyz = "0.000 0.045 0.045" />
		<axis xyz = "0.0 0.0 1.0" />
		<limit effort="10000.0" lower="-1.507" upper="1.507" velocity="0.5"/>
	</joint>
	<link name="right_shoulder_rl" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.010 0.010" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.010 0.000" />
			<geometry>
				<box size = "0.030 0.040 0.020" />
			</geometry>
		</collision>
	</link>
	<joint name="right_shoulder_rl" type="revolute" >
		<parent link = "right_shoulder_fb" />
		<child link = "right_shoulder_rl" />
		<origin rpy = "0 0 0" xyz = "0.000 0.000 0.025" />
		<axis xyz = "-1 0 0" />
		<limit effort="10000.0" lower="-1.507" upper="1.507" velocity="0.5"/>
	</joint>
	<link name="right_shoulder_twist" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.025 0.010" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.025 0.000" />
			<geometry>
				<box size = "0.020 0.040 0.030" />
			</geometry>
		</collision>
	</link>
	<joint name="right_shoulder_twist" type="fixed" >
		<parent link = "right_shoulder_rl" />
		<child link = "right_shoulder_twist" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.030 0.000" />
	</joint>
	<link name="right_elbow_fb" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.035 0.000" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.035 0.000" />
			<geometry>
				<box size = "0.020 0.040 0.020" />
			</geometry>
		</collision>
	</link>
	<joint name="right_elbow_fb" type="revolute" >
		<parent link = "right_shoulder_twist" />
		<child link = "right_elbow_fb" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.035 0.000" />
		<axis xyz = "0 0 1" />
		<limit effort="10000.0" lower="0" upper="3.14" velocity="0.5"/>
	</joint>
	<link name="right_wrist" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.0125 0.000" />
			<mass value = "0.020" />
			<inertia ixx = "0.02" ixy = "0" ixz = "0" iyy = "0.02" iyz = "0" izz = "0.02" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.0125 0.000" />
			<geometry>
				<sphere radius = "0.0125" />
			</geometry>
		</collision>
	</link>
	<joint name="right_wrist" type="fixed" >
		<parent link = "right_elbow_fb" />
		<child link = "right_wrist" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.060 0.000" />
	</joint>

<!-- left foot -->
	<link name="left_hip_tw" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.025 0.0025" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.010 0.0025" />
			<geometry>
				<box size = "0.030 0.002 0.025" />
			</geometry>
		</collision>
	</link>
	<joint name="left_hip_tw" type="revolute" >
		<parent link = "root" />
		<child link = "left_hip_tw" />
		<origin rpy = "0 0 0" xyz = "0.000 0.000 -0.020" />
		<axis xyz = "0 -1 0" />
		<limit effort="10000.0" lower="-1.507" upper="1.507" velocity="0.5"/>
	</joint>
	<link name="left_hip_rl" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 0.000 -0.010" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 0.000 -0.010" />
			<geometry>
				<box size = "0.030 0.020 0.040" />
			</geometry>
		</collision>
	</link>
	<joint name="left_hip_rl" type="revolute" >
		<parent link = "left_hip_tw" />
		<child link = "left_hip_rl" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.030 0.005" />
		<axis xyz = "-1 0 0" />
		<limit effort="10000.0" lower="-1.507" upper="1.507" velocity="0.5"/>
	</joint>
	<link name="left_hip_fb" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.0325 0.000" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.0325 0.000" />
			<geometry>
				<box size = "0.030 0.085 0.030" />
			</geometry>
		</collision>
	</link>
	<joint name="left_hip_fb" type="revolute" >
		<parent link = "left_hip_rl" />
		<child link = "left_hip_fb" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.025 -0.010" />
		<axis xyz = "0 0 1" />
		<limit effort="10000.0" lower="-1.507" upper="1.507" velocity="0.5"/>
	</joint>
	<link name="left_knee_fb" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.040 0.000" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.040 0.000" />
			<geometry>
				<box size = "0.030 0.050 0.030" />
			</geometry>
		</collision>
	</link>
	<joint name="left_knee_fb" type="revolute" >
		<parent link = "left_hip_fb" />
		<child link = "left_knee_fb" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.065 0.000" />
		<axis xyz = "0 0 -1" />
		<limit effort="10000.0" lower="0" upper="3.14" velocity="0.5"/>
	</joint>
	<link name="left_anklee_fb" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.030 -0.005" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.030 -0.005" />
			<geometry>
				<box size = "0.030 0.020 0.040" />
			</geometry>
		</collision>
	</link>
	<joint name="left_anklee_fb" type="revolute" >
		<parent link = "left_knee_fb" />
		<child link = "left_anklee_fb" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.055 0.000" />
		<axis xyz = "0 0 -1" />
		<limit effort="10000.0" lower="-1.507" upper="1.507" velocity="0.5"/>
	</joint>
	<link name="left_anklee_rl" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.024 -0.010" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.024 -0.010" />
			<geometry>
				<box size = "0.040 0.002 0.050" />
			</geometry>
		</collision>
	</link>
	<joint name="left_anklee_rl" type="revolute" >
		<parent link = "left_anklee_fb" />
		<child link = "left_anklee_rl" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.030 0.005" />
		<axis xyz = "1 0 0" />
		<limit effort="10000.0" lower="-0.5" upper="0.5" velocity="0.5"/>
	</joint>

<!-- left hand -->
	<link name="left_shoulder_fb" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 0.000 0.000" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
	</link>
	<joint name="left_shoulder_fb" type="revolute" >
		<parent link = "chest" />
		<child link = "left_shoulder_fb" />
		<origin rpy = "0 0 0" xyz = "0.000 0.045 -0.045" />
		<axis xyz = "0.0 0.0 1.0" />
		<limit effort="10000.0" lower="-1.507" upper="1.507" velocity="0.5"/>
	</joint>
	<link name="left_shoulder_rl" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.010 -0.010" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.010 0.000" />
			<geometry>
				<box size = "0.030 0.040 0.020" />
			</geometry>
		</collision>
	</link>
	<joint name="left_shoulder_rl" type="revolute" >
		<parent link = "left_shoulder_fb" />
		<child link = "left_shoulder_rl" />
		<origin rpy = "0 0 0" xyz = "0.000 0.000 -0.025" />
		<axis xyz = "-1 0 0" />
		<limit effort="10000.0" lower="-1.507" upper="1.507" velocity="0.5"/>
	</joint>
	<link name="left_shoulder_twist" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.025 -0.010" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.025 0.000" />
			<geometry>
				<box size = "0.020 0.040 0.030" />
			</geometry>
		</collision>
	</link>
	<joint name="left_shoulder_twist" type="fixed" >
		<parent link = "left_shoulder_rl" />
		<child link = "left_shoulder_twist" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.030 0.000" />
	</joint>
	<link name="left_elbow_fb" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.035 0.000" />
			<mass value = "0.0001" />
			<inertia ixx = "0.0001" ixy = "0" ixz = "0" iyy = "0.0001" iyz = "0" izz = "0.0001" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.035 0.000" />
			<geometry>
				<box size = "0.020 0.040 0.020" />
			</geometry>
		</collision>
	</link>
	<joint name="left_elbow_fb" type="revolute" >
		<parent link = "left_shoulder_twist" />
		<child link = "left_elbow_fb" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.035 0.000" />
		<axis xyz = "0 0 1" />
		<limit effort="10000.0" lower="0" upper="3.14" velocity="0.5"/>
	</joint>
	<link name="left_wrist" >
		<inertial>
			<origin rpy = "0 0 0" xyz = "0.000 -0.0125 0.000" />
			<mass value = "0.020" />
			<inertia ixx = "0.02" ixy = "0" ixz = "0" iyy = "0.02" iyz = "0" izz = "0.02" />
		</inertial>
		<collision>
			<origin rpy = "0 0 0" xyz = "0.000 -0.0125 0.000" />
			<geometry>
				<sphere radius = "0.0125" />
			</geometry>
		</collision>
	</link>
	<joint name="left_wrist" type="fixed" >
		<parent link = "left_elbow_fb" />
		<child link = "left_wrist" />
		<origin rpy = "0 0 0" xyz = "0.000 -0.060 0.000" />
	</joint>
</robot>

 以前の記事を参考にしながらColaboratoryで表示させます。

 

①上記のURDFファイルをtr1.urdfという名前でパソコン上の適当な場所に保存します。

②URDF解説編(1)のColaboratoryのソースの一部を、以下の通り変更します。

・urdfファイル名 赤字が変更後

#urdfファイルをPyBulletに読み込む
p.loadURDF("tr1.urdf")

・カメラ設定

#表示のためのカメラ設定
view_matrix = p.computeViewMatrixFromYawPitchRoll(
cameraTargetPosition=[0.0,-0.05,0.0],
distance=0.4,
yaw=90,
pitch=0,
roll=0,
upAxisIndex=1)

ーーーーーーーーーーーーーーーーーーーーーーーーー

で、実行すると次のような図が表示されます。
upAxisIndex=1とするとY軸が表示の上下方向に設定されます。

f:id:akifukka:20200223115755p:plain

2020/2/29追記
 jointを見直しました。jointの回転方向を実際に回転させて確認し、上記tr1.urdfモデルを修正、入替えました。jointのプラスの回転方向は、joint定義内のaxisで定義したベクトルの右ねじ方向になります。回転角はrad(ラジアン、2πで360°)です。

f:id:akifukka:20200229163937j:plain

 jointはPyBulletで読み込んだ時に自動的に番号が与えられます。urdfファイル内の定義順ではなく、linkの接続順のようです。tr1のPyBullet読み込み後のjoint番号および回転方向の一覧は次の通り。

0:root			fix
1:chest			revolute	+方向 かがむ(0~3.14)
2:neck			fix
3:right_shoulder_fb 	revolute	+方向 手を前に出す(-1.507~1.507)
4:right_shoulder_rl	revolute	+方向 手を右方向に出す(-1.507~1.507)
5:right_shoulder_twist	fix
6:right_elbow_fb	revolute	+方向 ひじをたたむ(0~3.14)
7:right_wrist		fix
8:left_shoulder_fb	revolute	+方向 手を前に出す(-1.507~1.507)
9:left_shoulder_rl	revolute	+方向 手を右方向に出す(-1.507~1.507)
10:left_shoulder_twist	fix
11:left_elbow_fb	revolute	+方向 ひじをたたむ(0~3.14)
12:left_wrist		fix
13:right_hip_tw		revolute	+方向 足を出した時右側にひねる(-1.507~1.507)
14:right_hip_rl		revolute	+方向 足を右横に出す(-1.507~1.507)
15:right_hip_fb		revolute	+方向 足を前に出す(-1.507~1.507)
16:right_knee_fb	revolute	+方向 ひざを曲げる(0~3.14)
17:right_anklee_fb	revolute	+方向 足首を後ろに蹴る(-1.507~1.507)
18:right_anklee_rl	revolute	+方向 前を向いて右ねじの方向にひねる(-0.5~0.5)
19:left_hip_tw		revolute	+方向 足を出した時右側にひねる(-1.507~1.507)
20:left_hip_rl		revolute	+方向 足を右横に出す(-1.507~1.507)
21:left_hip_fb		revolute	+方向 足を前に出す(-1.507~1.507)
22:left_knee_fb		revolute	+方向 ひざを曲げる(0~3.14)
23:left_anklee_fb	revolute	+方向 足首を後ろに蹴る(-1.507~1.507)
24:left_anklee_rl	revolute	+方向 前を向いて右ねじの方向にひねる(-0.5~0.5)

つづく
 次回からPyBulletで少しづつ動かしていこうと思います。revoluteの設定等が現状は適当なので、適宜見直していきます。(見直しました)
強化学習 カテゴリーの記事一覧 - やってみた!