- Ubuntu 16.04 (LTS)
- ROS Kinetic
- Intel Core i7 5500U
- YDLIDAR X4(以下LRF)
- メインマイコンとの通信用マイコン(LPC1768)
- ラインセンサ用マイコン(NUCLEO F303K8)
rviz上に情報を表示するために、jskのrvizプラグラインを使用している. kinetic版は以下のコマンドでインストールできる.
$ sudo apt-get install -y ros-kinetic-jsk-visualization
シミュレータではPS3コントローラを接続できる.
コントローラのプログラムインストールは以下のコマンドで行える.
$ sudo apt-get install ros-kinetic-joy
$ sudo apt-get install ros-kinetic-joystick-drivers
その他、自己位置推定に必要なライブラリ群は以下のコマンドでインストールできる.
$ sudo apt update
$ sudo apt upgrade
$ sudo apt-get install ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard ros-kinetic-laser-proc ros-kinetic-rgbd-launch ros-kinetic-depthimage-to-laserscan ros-kinetic-rosserial-arduino ros-kinetic-rosserial-python ros-kinetic-rosserial-server ros-kinetic-rosserial-client ros-kinetic-rosserial-msgs ros-kinetic-amcl ros-kinetic-map-server ros-kinetic-move-base ros-kinetic-urdf ros-kinetic-xacro ros-kinetic-compressed-image-transport ros-kinetic-rqt-image-view ros-kinetic-gmapping ros-kinetic-navigation ros-kinetic-interactive-markers ros-kinetic-scan-tools
全ノードの統括
bagファイルの保存
Topicの送信状態を監視してdiagnosticsを配信する
LRFの不要なデータをカットする(不具合発生のため使ってない.).
LRFのスキャンデータからオドメトリのデータを生成する(オドメータのデータが得られない時用.本番では使用しない.).
LRFのデータを出版する.
mapファイルの保存
mbedとの通信処理.
mbedからのFloat配列のtopicをROS内通信でのtopicに直したり,mbedにデータを送信したりする
自己位置推定を行う.
2Dシミュレータのstageを使用して値の入出力を確認できる.
LRFのシリアルポートを「/dev/ydlidar」と登録する.
LRFのみを接続した状態で以下を実行する.
$ cd ~/catkin_ws/src/robocon2019-ros/robocon19_lrf/startup
$ chmod 777 *
$ sudo sh initenv.sh
ls /dev/ydlidar
で見れれば成功.
フィールドを選択できる.
- red: 赤ゾーン
- blue: 青ゾーン
- test: 情報演習室前廊下
- step: デザイン室前階段付近の廊下
通常モードとデバッグモードの選択ができる.
- nomal: 通常モード(mbedとLRFを接続して実機で動かすモード)
- debug: デバッグモード(bagファイルを使用した実機が不要のコード確認用モード)
- sim: シミュレータモード
デバッグモードの際に呼び出すbagファイルを選択する.
- PCにmbedとLRFを接続.
- mbedにアクセス権限を付与.
$ sudo chmod a+rw /dev/ttyACM0
$ sudo chmod a+rw /dev/ttyACM1
$ sudo chmod a+rw /dev/ttyACM2
- launchを立ち上げる.(下は赤ゾーンの例)
$ roslaunch robocon19 robocon19.launch zone:=red
modeオプションをdebugにする。
$ roslaunch robocon19 robocon19.launch zone:=step mode:=debug bag:=0617/1
「bag:=hoge」と指定すると,「robocon19_bag/zone/hoge.bag」のbagファイルが読み込まれる.
そのため,bagを保存する際にはrobocon19_bagの直下にはゾーン名に対応したディレクトリを作成する必要がある.
ターミナルで以下を実行.(デフォルトは赤ゾーンでの起動となる)
$ roslaunch robocon19 robocon19.launch mode:=sim
Copyright (c) 2019 Ryoga Sato
https://surpace0924.github.io/
Released under the MIT license