@chikuta さんのpremaidai_descriptionのURDFを ROS(Kinetic等)とROS#を使ってUnity上に召喚する方法
URDFをrosbridge websocketで送出するための作業
- https://github.com/siemens/ros-sharp/tree/master/ROS の file_server フォルダ以下を丸ごと catkin_ws/src 以下に置く
cd catkin_ws/src
そしてgit clone https://github.com/chikuta/premaidai_description.git
premaidai_description/launch
内に以下の内容を記述したfileserver.launch
という名前のファイルを作る
<?xml version="1.0"?>
<launch>
<arg name="port" default="9090" />
<include file="$(find rosbridge_server)/launch/rosbridge_websocket.launch">
<arg name="port" value="9090" />
</include>
<node name="file_server" pkg="file_server" type="file_server" output="screen" />
<!-- args -->
<arg name="robot" default="premaidai" />
<arg name="robot/name" default="premaidai" />
<!-- load robot -->
<param name="robot_description" command="$(find xacro)/xacro.py '$(find premaidai_description)/robots/$(arg robot).urdf.xacro'" />
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
</launch>
- 送出開始
roslaunch premaidai_description fileserver.launch
URDFを受信してシーン内に表示するための作業
- 適当な3Dプロジェクトを作る
- ここ https://github.com/siemens/ros-sharp/releases から
RosSharp.unitypackage
をダウンロードしてインポートする Assets/RosSharp/Scenes/UnitySimulationScene
を開く。そしてHierarchy上のturtlebotを消すか無効にしておく- メニューから
ROSBridgeClient > Transfer URDF From ROS...
を選択する - 開いたウィンドウのAddressに
ws://[ROS側のアドレス]:9090
を入力しRead Robot Description
ボタンを押す - うまく行けばROS側からURDFが取得されてHierarcyに追加される