@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.gitpremaidai_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に追加される