1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JetbotをROSで動作させる

Last updated at Posted at 2021-06-06

#目的
JetbotをROS環境でシミュレーション動作できるようにして、ROSによるシミュレーション環境構築の理解を深める。

#環境

  • Jetbot: Waveshare
    • Jetson nano
    • Jetpack 4.4
    • Ubuntu 18.04

#手順

インストール作業

モータードライバ(TB6612/PCA9685)と有機LED(SSD1306)のために、Adafruitのライブラリをインストール。

sudo apt-get install python-pip

pip install Adafruit-MotorHAT
pip install Adafruit-SSD1306

Workspaceを作成。

mkdir -p ~/workspace/jetbot_ws/src
cd ~/workspace/jetbot_ws
catkin_make

sudo sh -c 'echo "source ~/workspace/jetbot_ws/devel/setup.bash" >> ~/.bashrc'

jetson-inferenceをリポジトリからクローンしてビルド。

sudo apt-get install git cmake

cd ~/workspace
git clone https://github.com/dusty-nv/jetson-inference
cd jetson-inference
git submodule update --init

mkdir build
cd build
cmake ../
make

sudo make install

ros_deep_learningをリポジトリからクローンしてビルド。rospackの確認でPackage not foundのエラーが出たけど、setup.bashを実行したら解決。

sudo apt-get install ros-melodic-vision-msgs ros-melodic-image-transport ros-melodic-image-publisher

cd ~/workspace/jetbot_ws/src
git clone https://github.com/dusty-nv/ros_deep_learning

cd ../ 
catkin_make

# confirm that the package can be found
$ rospack find ros_deep_learning
/home/nvidia/workspace/jetbot_ws/src/ros_deep_learning

次にjetbot_rosをリポジトリからクローンしてビルド。同じくrospackで確認。

# clone the repo
$ cd ~/workspace/jetbot_ws/src
$ git clone --branch https://github.com/dusty-nv/jetbot_ros

# build the package
$ cd ../    # cd ~/workspace/catkin_ws
$ catkin_make

# confirm that jetbot_ros package can be found
$ rospack find jetbot_ros
/home/nvidia/workspace/catkin_ws/src/jetbot_ros

動作確認

いよいよROSでのJetbotの動作確認。

$ roscore

別のTerminalを開いて、jetbot_motorsでモーターを動かしてみる。サンプルコードのjetbot_motors.pyが入っているので、下記コマンドで実行。

$ rosrun jetbot_ros jetbot_motors.py

新しいTerminalを開いて、下記のコマンドをテストで実行すると、勢いよくモーターが動き出した! 結構早く走り出すので慌ててjetbotを持ち上げて、stopコマンドで止める。。。

$ rostopic pub /jetbot_motors/cmd_str std_msgs/String --once "forward"
$ rostopic pub /jetbot_motors/cmd_str std_msgs/String --once "backward"
$ rostopic pub /jetbot_motors/cmd_str std_msgs/String --once "left"
$ rostopic pub /jetbot_motors/cmd_str std_msgs/String --once "right"
$ rostopic pub /jetbot_motors/cmd_str std_msgs/String --once "stop"

ROSはノード間の通信をトピックで非同期でやり取りする。

  • rostopic pubはトピック送信する際のコマンド
  • jetbot_motorsは以下の3つのトピックを受信できるが、今のところ実装されているのはcmd_strのみ。
    • /jetbot_motors/cmd_dir:相対方位 (角度[-180.0, 180.0], スピード[-1.0, 1.0])
    • /jetbot_motors/cmd_raw:生の左右のモーターへのコマンド(スピード[-1.0, 1.0], スピード[-1.0, 1.0])
    • /jetbot_motors/cmd_str:シンプルなコマンド(left/right/forward/backward/stop)

OLEDの確認

JetbotにOLEDが付いているので表示させてみる。Jetbot_oledノードを実行。そして、以下のコマンドで"My Jetbot!"と表示。問題なく表示できた。

$ rosrun jetbot_ros jetbot_oled.py

$ rostopic pub /jetbot_oled/user_text std_msgs/String --once "My Jetbot!"

カメラ動作

Jetbotについているカメラで表示させてみる。まず、jetbot_cameraノードを起動。

$ rosrun jetbot_ros jetbot_camera

カメラ表示にはros-melodic-image-viewをインストールしておく必要があるらしい。以下のコマンドを新しいTerminalで実行。カメラ用の新しいWindowが立ち上がって、カメラも表示。 VNC接続からか、かなり遅い。

$ sudo apt-get install ros-melodic-image-view
$ rosrun image_view image_view image:=/jetbot_camera/raw

screenshot_471.jpg

#参考
以下のgithubを参考に構築。
https://github.com/dusty-nv/jetbot_ros/tree/melodic

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?