ROS: Turtlebot2をKineticで動かす

Turtlebot2をROS Kineticで動かした時のメモ

Turtlebot2関連パッケージのインストール

  • sudo apt install ros-kinetic-turtlebot ros-kinetic-turtlebot-apps ros-kinetic-turtlebot-interactions ros-kinetic-kobuki-ftdi ros-kinetic-ar-track-alvar-msgs ros-kinetic-turtlebot-simulator
  • ros-kinetic-rocon-remoconとros-kinetic-rocon-qt-library, turtlebot_simulationパッケージはaptで取得できないので以下のコマンドで取得する。
    • $ ~/catkin_ws/src
    • $ git clone https://github.com/roboticsin-concert/rocon_qt_gui.git
    • $ git clone https://github.com/turtlebot/turtlebot_simulator.git
  • catkin_makeでpyrcc4, pyrcc5がないと怒られるので次のパッケージをインストル
    • $ sudo apt install pyqt4-dev-tools
    • $ sudo apt-get install pyqt5-dev-tools
  • ビルド
    • $ cd ~/catkin_ws
    • $ catkin_make

Kobukiのセットアップ

  • $ source  /opt/ros/kinetic/setup.bash
  • $ rosrun kobuki_ftdi create_udev_rules

Hokuyo Lidar設定

  • TurtlebotパッケージではHokuyo Lidar (UTM-30LX)の設定がないので追加する。
    /opt/ros/kinetic/share/turtlebot_description/urdf/turtlebot_properties.urdf.xacroに以下のコードを一番下の</robot>の上に追加する。
<!-- Urg Lidar -->
  <joint name="laser" type="fixed">
    <origin xyz="0.13 0.00 0.1" rpy="0 0 0" />
    <parent link="base_link" />
    <child link="base_laser_link" />
  </joint>

  <link name="base_laser_link">
    <visual>
      <geometry>
        <box size="0.06 0.06 0.07" />
      </geometry>
      <material name="Black" />
    </visual>
    <inertial>
      <mass value="0.000001" />
      <origin xyz="0 0 0" />
      <inertia ixx="0.0001" ixy="0.0" ixz="0.0"
        iyy="0.0001" iyz="0.0"
        izz="0.0001" />
    </inertial>
  </link>
  •  /opt/ros/kinetic/share/turtlebot_bringup/launch/3dsensor.launchの次の部分を変更する。
    変更前:

     <arg name="scan_topic" default="scan"/>

    変更後:

     <arg name="scan_topic" default="kinect_scan"/>
     <node name="laser_driver" pkg="urg_node" type="urg_node"> <param name="frame_id" value="base_laser_link" /></node>
  • /opt/ros/kinetic/share/turtlebot_navigation/param/cosmap_common_params.yamlの31行目のmin_obstacle_heightを0.05,32行目のmax_obstacle_heightを1.2に変更する.Hokuyo Lidarを低い位置に取り付けるため.この設定をしないと障害物回避をしないので悩むことになる.この設定では高さ0.05[m]以上1.2[m]以下の障害物を回避する。それ以外は回避しない。ロボットの高さやセンサの取り付け位置でこの値を変更する。
     
     scan:
        data_type: LaserScan
        topic: scan
        marking: true
        clearing: true
        min_obstacle_height: 0.05
        max_obstacle_height: 1.2
    
  • urg nodeをインストールする。
    • $ sudo apt-get install ros-kinetic-urg-node

Turtlebot2起動

  • 以下のコマンドでTurtlebot2を起動する。うまくいったらピロピロピロと音がする。鳴らない場合はTurtlebot2とPCとの接続がうまくいっていないのでUSBケーブルなどを挿し直す。
  • $ roslaunch turtlebot_bringup minimal.launch

キーボードによる遠隔操作

  • 以下のコマンドでキーボードによりTurtlebot2を遠隔操作できる。iキーで前進、uキーで左折、oキーで右折、kで停止、jで左回転、lで右回転、,で行進。
  • $ roslaunch turtlebot_teleop keyboard_teleop.launch

コントローラによる遠隔操作

  • $ roslaunch turtlebot_bringup minimal.launch
  • $ roslaunch turtlebot_teleop  ps3_teleop.launch
    • このコマンドでPS3, PS4のコントローラでどちらとも遠隔操作可能です。
  • 操作方法
    • PSボタンを押しながら左ジョイスティックを動かす

以上

コメント

タイトルとURLをコピーしました