Skip to content

SteerDriveController を gazebo上の SteerBot で動かす

Masaru Morita edited this page Oct 17, 2016 · 7 revisions

構成

ナビゲータ的なやつ何でも

↓ steer_drive_controller/cmd_vel

SteerDriveController(MultiInterfaceController プラグイン)

↓ steer_joint, wheel_joint

SteerBot(RobotHWSim プラグイン)

↓ virtual_steer_joint_[left/right], virtual_wheel_joint_[left/right]

Gazebo

手順

  • add_steer_drive_controllerブランチに切り替える.
  • Gazeboを起動する.
    • roslaunch third_robot_gazebo third_robot_world.launch
      • Loaded gazebo_ros_control.が出たらSteerBotの読み込みに成功.
      • Finished controller initializationが出たらSteerDriveControllerの読み込みに成功.
  • コントローラをSpawnする.
    • roslaunch steer_drive_controller steer_drive_test_setting.launch
      • Started controllers: steer_drive_controller, joint_state_controllerが出たらSteerDriveControllerのspawn成功.
  • teleopeする.
    • トピック: steer_drive_controller/cmd_vel
  • rvizで見る.
    • roslaunch third_robot_gazebo third_robot_rviz_test.launch

残件

  • オドメトリ未実装.
  • third_robot_steer_drive_controller.yaml のパラメータが冗長.
  • 前輪の上にLRFがある.見えなくなるようにうまく書き直す.
  • 現状はパラレルリンク.アッカーマンリンクにも対応できるようにする.
  • 要コードリファクタ.
  • rviz上ではタイヤもステアも回転しない.
    • 現状 virtual joint はインターフェースとして登録していないので,joint_state_controllerで最新値を拾ってくれない.
    • つーことで/joint_statesトピックに最新値が出てこない.
    • そんなわけで/robot_state_publisherはずっと初期値の角度を持つTFを吐き続ける.
    • だからGazeboでは動くのにrviz上ではだんまりになる.
    • 一応改善したけど,これだと今度は汎用性がなくなる(3輪ステアに使えなくなる).
      • →3輪用,4輪用で切り替えて使えるようにyamlで制御できるようにする.
Clone this wiki locally