Roomba 800シリーズにHokuyo Lidar(UTM-30 LX)を積んでROSで動かした時のメモ。Roomba 800でも動くパッケージはいくつかあるが、この記事ではcreate_autonomyを使用した。他にもっと適切なパッケージがあればコメント頂きたい。
環境
- Ubuntu 16.04
- ROS Kinetic
Install
- Navigation & SLAM
$ sudo apt install ros-kinetic-navigation
$ sudo apt install ros-kinetic-slam-gmapping
- Hokuyo Lidar (urg_node)
- launchファイルが欲しかったのでgitからcloneして、ソースからビルドする。
$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-drivers/urg_node.git
$ cd ~/catkin_ws
$ catkin_make
- launchファイル(~/catkin_ws/src/urg_node/launch/urg_lidar.launch)の13行目
- <param name=”frame_id” value=”laser”/>
を - <param name=”frame_id” value=”base_laser_link”/>に変更する。
- LIDARの取り付け位置などにより計測範囲(角度)が異なる場合は、angle_min、angle_maxのvalueを変更する。
- <param name=”frame_id” value=”laser”/>
- Roomba 800 (create_autonomy)
- これからの作業は以下のリンクに従って実施したものをまとめたものに過ぎない。詳細については以下の参考リンクを参照されたい。
- Preparation
$ sudo apt-get install python-rosdep python-catkin-tools
- catkin workspaceの作成。catkin_wsなど既存のワークスペースにインストールすると、catkin_makeが通らなかったのでリンクサイトの通り作業すると良いだろう。
$ cd ~
$ mkdir -p create_ws/src
$ cd create_ws
$ catkin init
- レポジトリのクローン
$ cd ~/create_ws/src
$ git clone https://github.com/AutonomyLab/create_autonomy.git
- 依存関係のインストール
$
cd ~/create_ws$ rosdep update
$ rosdep install --from-paths src -i
- ビルド
$ cd ~/create_ws
$ catkin build
- USBパーミッション
$ sudo usermod -a -G dialout $USER
- URDFの変更
- LIDARを搭載するのでURDFを変更する。~/create_ws/src/create_autonomy/ca_description/urdf/create_base.urdf.xacroの下から7行目 <!– Simulation sensors –>の上に以下を追加する。
- costmap_common_params.yamlの以下の行のsensor_frameがbase_laser_linkになっているか確認し、違うIDだったらbase_laser_linkに変更する。
実 行
- セットアップ
$ source ~/create_ws/devel/setup.bash
- 毎回これを実施するのは面倒なので、.bashrcの最後に上のコマンドを記載する。
- 実行
$ roslaunch ca_driver create_2.launch
- ジョイスティックによる操作(テレオペ)
- Xbox360の有線コントローラー用と参考リンクに記載されているが、PS3コントローラーを有線接続しても問題なく動作した。
$ roslaunch ca_tools joy_teleop.launch
終わり
コメント