0
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?

MacでROS noeticをつかう!

Last updated at Posted at 2024-05-15

動作環境

Mac OS sonoma 14.4.1

概要

今回はmacOSでROSのnoeticを使おうという試みをしたので,その備忘録として書いておこうと思う.macOSでUbuntuをつかうところから始まり,ROSを入れてturtlebot3のシミュレーションをrvizで行えるようになるまでを書いている.

Dockerの導入

まずはdockerをダウンロードする.

このサイトの手順に従ってインストールを進めていく.

[Intel Mac用] https://desktop.docker.com/mac/main/amd64/Docker.dmg
[Sillicon Mac用] https://desktop.docker.com/mac/main/arm64/Docker.dmg

dockerをインストールできたら,アイコンをクリックして開いておく.(開いておかないとこの後コンテナをつくったり開いたりができない)

ROS+GUI環境の入ったコンテナを持ってくる

この方がROSをGUI環境で使えるdocker imageを提供しているのでこちらを使わせていただく.
ちなみにROS2版もある.

コマンドラインをたちあげて,

$ docker run -p 6080:80 --name 名前 --shm-size=512m tiryoh/ros-desktop-vnc:noetic

と入力する."名前"の部分は好きな名前にしていい.この部分がコンテナ名になる.
次に,Webブラウザで 
http://127.0.0.1:6080
にアクセスする.するとUbuntuがブラウザ上に立ち上がる.
これは今Docker上にコンテナを立ててそのコンテナにVNCでアクセスしている.

これでROS noetic環境の入ったUbuntuが立ち上がったはずだ.
閉じるときはMacのターミナルに,

$ exit
$ docker stop 名前

と入力する.("名前"の部分はさっき決めたコンテナ名)

一度コンテナを作ったら,次にまた同じコンテナを開くときはMacのターミナルに

$ docker start 名前
$ docker exec -it 名前 /bin/bash

と打てば立ち上がる.("名前"の部分はさっき決めたコンテナ名)
その状態でまた127.0.0.1:6080にアクセスすれば開く.
もしUbuntuがブラウザの全面に表示されない場合は,左端の小さい三角をクリックするとメニューが開くので,歯車のアイコンをクリックしてScaling ModeのところのLocal Scalingを選択して立ち上げ直すとブラウザ前面に表示されるはずだ.

01D9A224-2159-4A4C-9973-C9A2D57327DE_1_201_a.jpeg

roscoreを動かしてみる

Ubuntu上でターミナルを開く.一番左下のつばめ?のようなマークをクリックするとメニューが開くので,System Tools > LXTerminalでターミナルが開く.

E95CDBC9-BF65-4DD5-8EB7-5F89C3A3FAE9_1_201_a.jpeg

Ubuntuのターミナルに,

$ roscore

と打ち,新しく別にターミナルを開く.タブで開いてもウィンドウで開いてもいい.
タブで開く場合は control+shift+T
ウィンドウで開く場合は control+shift+N

新しく開いたターミナルに,

$ rosrun turtlesim turtlesim_node

と打つと,青背景に小さな亀が1匹出てくると思う.
また新しくターミナルを開いて,

$ rosrun turtlesim turtle_teleop_key

と入力してみる.ターミナルの入力画面上でキーボードの矢印キーを押してみると亀が動くようになる.ここまではできるはずだ.
一通り楽しみ終わったらroscore以外のターミナルをcontrol+Cで終了しておく

コピペの方法

Mac→Ubuntuへのコピペ

左端の小さい三角>バインダーアイコン>Clipboard
ここにペーストしたい内容を貼り付けて,ターミナルでcontrol+shift+Vするとペーストできる.

Ubuntu→Macへのコピペ

control+shift+Cして,
左端の小さい三角>バインダーアイコン>Clipboard
ここにコピーした内容があるので,そこからコピペする.

Turtlebot3のシミュレーションを動かす

ここからが問題である.roscoreとは別にターミナルを立ち上げて,

$ roslaunch turtlebot3_fake turtlebot3_fake.launch

と入力しても

RLException: [turtlebot3_fake.launch] is neither a launch file in package [turtlebot3_fake] nor is [turtlebot3_fake] a launch file name
The traceback for the exception was written to the log file

とエラーが出て動かないのである.そこで,turtlebot3の公式ドキュメントを見た.

このサイトの手順通りにturtlebot3パッケージをインストールしていくとうまく行った.

まず,ROSをインストールする.

$ sudo apt update
$ sudo apt upgrade
$ wget https://raw.githubusercontent.com/ROBOTIS-GIT/robotis_tools/master/install_ros_noetic.sh
$ chmod 755 ./install_ros_noetic.sh 
$ bash ./install_ros_noetic.sh

次に,依存するROSパッケージをインストールする.

$ sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy \
  ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc \
  ros-noetic-rgbd-launch ros-noetic-rosserial-arduino \
  ros-noetic-rosserial-python ros-noetic-rosserial-client \
  ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server \
  ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro \
  ros-noetic-compressed-image-transport ros-noetic-rqt* ros-noetic-rviz \
  ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers

次に,turtlebot3のパッケージをインストールする.

$ sudo apt install ros-noetic-dynamixel-sdk
$ sudo apt install ros-noetic-turtlebot3-msgs
$ sudo apt install ros-noetic-turtlebot3

最後に,.bashrcの最後に

export TURTLEBOT3_MODEL=burger

と記入しておけばOK.

これでもう一度roscoreが動いている状態で

$ roslaunch turtlebot3_fake turtlebot3_fake.launch

と入力してみると,rvizが開いてturtlebot3のシミュレーションが動くはずだ.

新しくターミナルを開いて,

$ roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch

と入力し,ターミナルの入力画面上で,WASDで操作してみると,turtlebot3が動いてくれる.

感想

下手に色々調べていろんなサイト見漁るよりまず先に公式ドキュメントを見ろということを学んだ.NKTだった.

参考文献

追記

UTMというアプリケーションを使ったらUSBパススルーもできた.USBカメラやコントローラーを使いたいならUTMの方がいいかも.

0
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
0
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?