[ROS]stlファイルを使用してオートマトンをシミュレートする
パッケージの作成
パッケージの作成
xacroファイルを使用すると、変数を作成してメンテナンスを簡単に作成できます.
現在は使用されていませんが、将来のxacroファイルを作成します.
パッケージの作成
$ catkin_create_pkg swing_robot roscpp tf geometry_msgs urdf rviz xacro
ディレクトリの移動$ roscd swing_robot
URDFファイルの作成xacroファイルを使用すると、変数を作成してメンテナンスを簡単に作成できます.
現在は使用されていませんが、将来のxacroファイルを作成します.
swing_robot.xacro
ファイルを作成し、次のコードを記述します.<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro"
xmlns:sensor="http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor"
xmlns:controller="http://playerstage.sourceforge.net/gazebo/xmlschema/#controller"
xmlns:interface="http://playerstage.sourceforge.net/gazebo/xmlschema/#interface"
name="swing_robot">
<link name="base_link">
<visual>
<origin rpy="1.570796 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://swing_robot/meshes/frames.stl"/>
</geometry>
<material name="yellow">
<color rgba="1 1 0 1"/>
</material>
</visual>
<collision>
<origin rpy="1.570796 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="package://swing_robot/meshes/frames.stl"/>
</geometry>
</collision>
<inertial>
<origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0"/>
<mass value="3.314"/>
<inertia ixx="463814.860" ixy="323.087" ixz="0.0"
iyy="223494.895" iyz="0.0" izz="457336.445"/>
</inertial>
</link>
<joint name="swing joint" type="revolute">
<parent link="base_link"/>
<child link="swing_link"/>
<origin xyz="0 0 0.599704"/>
<axis xyz="1 0 0" />
<limit effort="300" velocity="0.1" lower="-3.14" upper="3.14"/>
<dynamics damping="50" friction="1"/>
</joint>
<link name="swing_link">
<visual>
<geometry>
<mesh filename="package://swing_robot/meshes/swing.stl"/>
</geometry>
<origin rpy="1.570796 0 0" xyz="0 0 0"/>
<material name="red">
<color rgba="0 0 1 1"/>
</material>
</visual>
<collision>
<geometry>
<mesh filename="package://swing_robot/meshes/swing.stl"/>
</geometry>
<origin rpy="1.570796 0 0" xyz="0 0 0"/>
</collision>
<inertial>
<origin xyz="0.0 0.0 0" rpy="1.570796 0 0"/>
<mass value="4.443"/>
<inertia ixx="22383.593" ixy="5442.330" ixz="-438.500"
iyy="3976.186" iyz="764.536" izz="26027.494"/>
</inertial>
</link>
</robot>
メッセージタスクを使用して、次のように各リンクにメッセージを設定できます.<mesh filename="package://swing_robot/meshes/frames.stl"/>
Launch、mesh、urdfフォルダを作成した後、作業フォルダにstlファイルとlaunchファイルurdfファイルを作成します.├── CMakeLists.txt
├── include
│ └── swing_robot
├── launch
│ └── swing_robot.launch
├── meshes
│ ├── frames.stl
│ └── swing.stl
├── package.xml
├── src
└── urdf
├── swing_robot.urdf
└── swing_robot.xacro
xacroを使用してurdfファイルを作成する$ rosrun xacro xacro --inorder swing_robot.xacro > swing_robot.urdf
<launch>
<param name="robot_description"
command="$(find xacro)/xacro.py $(find swing_robot)/urdf/swing_robot.xacro"/>
<node pkg="robot_state_publisher"
type="state_publisher"
name="robot_state_publisher" />
<node pkg="joint_state_publisher"
type="joint_state_publisher"
name="joint_state_publisher">
<param name="use_gui" value="1" />
</node>
<!-- Launch visualization in rviz -->
<node name="rviz"
pkg="rviz"
type="rviz"
args="-d $(find swing_robot)/urdf.rviz"
required="True" />
</launch>
$ roslaunch swing_robot swing_robot.launch
Reference
この問題について([ROS]stlファイルを使用してオートマトンをシミュレートする), 我々は、より多くの情報をここで見つけました https://velog.io/@d2h10s/ROS-stl파일을-이용하여-로봇-시뮬레이팅テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol