2014年11月22日土曜日

6.3 独自ロボットをシミュレータで試す

手元にはKobukiがベースのTurtlebot2があったので、Arbotixシミュレータで動かしてみました。
これです→

~/catkin_ws/src/rbx1/rbx1_bringup/launch ディレクトリにある、fake_turtlebot.launchをTurtlebot2 用に修正します。
$roscd rbx1_bringup/launch
あるいは
$cd ~/catkin_ws/src/rbx1/rbx1_bringup/launch
どちらでも同じです。
$cp fake_turtlebot.launch fake_turtlebot2.launch
ここで、fake_turtlebot2.launch を以下のように修正します。

<launch>
  <param name="/use_sim_time" value="false" />

  <!-- Load the URDF/Xacro model of our robot -->
  <arg name="urdf_file" default="$(find xacro)/xacro.py '$(find turtlebot_description)/robots/kobuki_hexagons_kinect.urdf.xacro'" />

  <param name="robot_description" command="$(arg urdf_file)" />

  <node name="arbotix" pkg="arbotix_python" type="arbotix_driver" output="screen">
      <rosparam command="delete" param="/arbotix" />
      <rosparam file="$(find rbx1_bringup)/config/fake_turtlebot2_arbotix.yaml" command="load" />
      <param name="sim" value="true"/>
  </node>

  <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher">
      <param name="publish_frequency" type="double" value="20.0" />
  </node>
</launch>

先々の為に、
<rosparam file="$(find rbx1_bringup)/config/fake_turtlebot_arbotix.yaml" command="load" />
<rosparam file="$(find rbx1_bringup)/config/fake_turtlebot2_arbotix.yaml" command="load" />
このように修正して。
cp $(find rbx1_bringup)/config/turtlebot_arbotix.yaml $(find rbx1_bringup)/config/fake_turtlebot2_arbotix.yaml
のようにコピーしておく。いまのところ中身はそのままです。

これでTurtlebot2がシミュレータで使えます。
$roslaunch rbx1_bringup fake_turtlebot2.launch
可視化ツールのrvizで表示します
$rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz
$rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}'
同じように、これで動きます。
真上からなので解りにくいですけど、Turtlebot2になりました。

0 件のコメント:

コメントを投稿