(追記:2021/8/6)もっと簡単な方法があった。
VMware fusionのNetwork Adapterを選択肢、Bridged Networking>Autodetectを選択する。
そうすると、Macと同じLAN内にUbuntuが出現する。
今回はMac(192.168.1.252)、Ubuntu 20.04(192.168.1.246)
普通にアドレスバーにUbuntuのURLを入れれば良い。
Ubuntu上で特に環境変数を設定する必要はなかった(ROS_MASTER_URIなど)。
Android上のROSからもアクセスすることができた。Yeah!
MATLAB/SimulinkのROS toolboxを入れてみたが、roscoreが動いてないといけない。
ROSをMacで動かすのがめんどくさそうな印象があったので、VMのUbuntuでroscoreを動かすことにする。
officeforest.org
/Library/Preferences/VMware Fusion/vmnet8/nat.conf
[incomingtcp] # Use these with care - anyone can enter into your VM through these... # The format and example are as follows: #<external port number> = <VM's IP address>:<VM's port number> #8080 = 172.16.3.128:80 11311 = 192.168.87.129:11311
VM's IPはUbuntuのIPアドレス。Ubuntuに入ってifconfigで確認したら192.168.87.129だった。
上記ファイルを編集したら、VM Networkを再起動する(https://apple.stackexchange.com/a/80343)。
sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --stop; sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --start
Macからhttp://localhost:11311にアクセスしたらROS coreのレスポンス(GETアクセス不可)というメッセージが見える。
UbuntuのROS_MASTER_URIとROS_HOSTNAMEも変更しておく
~/.bashrc
export ROS_MASTER_URI=http://192.168.87.129:11311 export ROS_HOSTNAME=192.168.87.129
上記の設定を読み込んだあと、roscoreをUbuntuで起動する。
そのあとMac上のMatlabで、rosを起動する。
https://www.mathworks.com/help/ros/ug/connect-to-a-ros-network.html
>> rosinit('192.168.87.129')
これでUbuntu上のROSマスターhttp://192.168.87.129:11311を見に行くようになる。
Matlab/Simulinkでデモを実行してみる。
https://www.mathworks.com/help/ros/ug/get-started-with-ros-in-simulink.html
>> open_system('robotROSGetStartedExample');
こんなのがでてきた
上記ブロックを実行中にrqt_graphを使ってトピックを可視化すると、ちゃんとトピックが表示された。Cool.
座標値をコンソールに表示してみる。
$ rostopic echo /location
してSimuinkを実行すると、座標値がコンソールに表示された。