GR-SAKURA
GR-KURUMI
GR-COTTON
GR-CITRUS
GR-PEACH
GR-KAEDE
GR-ADZUKI
GR-LYCHEE
GR-ROSE
GR-MANGO(*)
SNShield
Web Compiler
IDE for GR
TOPPERS関連
女子美コラボ
その他
※プロデューサミーティング中
作り方使い方資料
イベント関連
作品記事
体験記事
ライブラリ
ツール
その他・過去ファイル
始めまして。1年前にも同じスレがありましたが、若干設定が異なること、解決策まで見当たらなかったため、新しいスレを立ち上げました。
DDS-XRCE通信がうまくいきません - GR-ROSE - がじぇっとるねさすコミュニティ - Renesas Rulz環境は以下の通りです。LinuxPCにDocker使って構築してあります。Ubuntu:18.04Ros2:DashingMicroXRCEDDS:1.1.6
GR-ROSEは「REN_rose-sketch-v106-e2v7_LBR_20200312」をインストールし、「tcp_talker_besteffort.ino」を.cppにコピーしてビルドしてます。使いたいのは有線のため、ソースコードを「use_ethernet = true」に変更してます。
ツールチェーンは以下のバージョンに変更してます。ツールチェーン:GCC for Renesas RX 8.3.0.202104LinuxPC_IP:192.168.2.101(Dockerはホスト設定のため同じだと認識してます)GR-ROSE_IP:192.168.2.52状態:GR-ROSEを起動して「Discovery Agent...」表示後にLinuxでコマンド「./MicroXRCEAgent tcp -p 2018 -d」を実行しても、GR-ROSE側でAgentを見つけません。Wiresharkで確認すると、LinuxPCにはGR-ROSEから何か飛んできてます。但し、宛先は「239.255.0.2」です。参考までに宛先を「192.168.2.101」に変更して実施しましたが、変化なしです。
Linuxやマイコンなどの経験がほとんどなく手探り状態のため、原因や対策及び調査方法などアドバイスがいただけたらと思います。以上、よろしくお願いします。
どうやらLinuxのマルチキャストの設定が正しくないような感じです。すべてを起動した状態で、「ipref -s -u -B 239.0.0.0 -p 7400 -i 1」って打ち込むと「multicast join failed: No such device」って表示されます。対策方法がよくわからないので、明日またネットで探してみようと思います。後日、結果発表!
初めまして.
Dockerを使っているとのことですが,コンテナ環境のネットワークが問題かもしれません.コンテナ起動オプションに --network host をつけてみたらどうでしょう
よっしーさん、返信ありがとうございます。早速、コンテナ起動コマンドを調べてみましたところコンテナ起動は以下のようになっております。docker run --rm -it \--name ros2-dev\--net=host\こちらは、自身で設定したのではなく、分かる人にファイルにしてもらったので、内容についてはあまり理解できてません。--net=hostがよっしーさんの言われるオプションかと認識しており、LinuxPCのIPと同じではないかと思ってます。
そうですね,Dockerコマンドには特段問題ないかと思います.あまり関係ないかと思いますが,--privilegedオプションもつけて,コンテナがローレイヤーもアクセスできるようにして見てみてはどうでしょう.
--privilegedオプションもつけて,コンテナがローレイヤーもアクセスできるようにして見てみてはどうでしょう.
ダメでした。。。少し話はそれますが、GR-ROSEは宛先のポートが7400になってますが、Linuxではポート2018を指定してると思われます。この場合、開放してないといけないポート番号は7400 or 2018どちらになるのでしょうか?それともそんな問題ではないのでしょうか?
GR-ROSEの宛先ポートはプログラム上7400に指定されていますか?私が実行した時のサンプルプログラムでは指定されておりませんでした.ポートが指定されているのであれば2018になるのかと思います.一つ気になったのは,DDS-XRCE AgentはDockerで実行すると通信ができませんでした.もしコンテナで実行しているのであればホスト上に構築して,Agentを起動してみて下さい.
おはようございます。ポート番号はプログラムで7400に設定されてます。(特に設定しない場合に7400になります)ネットで見る限り、特に指定するとか書いてないので7400で問題ないのかもしれませんね。やはり、Dockerでは動かない可能性があるんですね。前回のスレもそこで止まっていたので嫌な予感はしてましたが。。。今、使っているPCは共有の物でUbuntu20.?が入っています。Ubuntuのバージョンを変更したくないので、Dockerに手を出しましたが、それが原因かもってことですね。ところで、Dockerで動かないって記述を見つけれなかったのですが、これはもう周知の事実なんでしょうか?とりあえずUbuntu18のPCを探してみます。
Ubuntu20.04でもDDS-XRCEは動くかと思います.
DockerでROS2ノード(Dashing)を起動し,ホストでAgentを起動する構成で大丈夫だと思います.
AgentがDockerでは動かないというのは経験からですね.何か設定があるのかわかりませんが,,情報は上がってないですね
ホストでAgentを動かせば良いので誰も書いていないのかもしれません
よっしーさん、色々情報ありがとうございます。とりあえずUbuntu18.04.5 LTSのPCに以下の環境を構築(問題を切り分けるため、Dockerと同じバージョン) Ros2:Dashing
DDS-XRCE_Agent:1.1.6
結果は変わりませんでした。。。
一旦整理。・LinuxPC(192.168.2.101)からGR-ROSE(192.168.2.52)にPingは通っている。・GR-ROSEからLinuxPCへ何か通信はしている (宛先は239.255.0.2;Port:7400ソースで設定)・LinuxPC(192.168.2.101)から192.168.2.255に何か送信してる上記からLinuxPCには正常に届いていると思いますが、その先が不明です。確認方法など知ってたら教えてください。また、DDS-XRCE_Agent:1.1.6に対応しているClientのバージョンと現在使っているClientのバージョンの確認方法とか知ってますか?質問ばかりですいませんが、よろしくお願いします。
以下のHPでAgent:1.1.6とDashingで通信できたって書いてあるので、Clientのライブラリを調べました。結果は、ライブラリの中身は同じなので、Clientには差が無いと思います。Micro-XRCE-DDSが試せる環境 2020年末版 - Qiita
Shirota said:GR-ROSEは「REN_rose-sketch-v106-e2v7_LBR_20200312」をインストールし、「tcp_talker_besteffort.ino」を.cppにコピーしてビルドしてます。
ビルドはe2studioなどでしょうか?e2studioについてはあまり詳しくはないのですが,
ビルドの設定に問題があるのかもしれませんので,IDE for GRでサンプルコードを書き込んでみてはどうでしょうか.
追加ですが,宛先の239.255.というipはマルチキャストのようですね.なので相手のipは指定する必要はないようです.ただマルチキャストを使っているのでtcp通信は出来ない気がします.udp_talker_bestefortなどのサンプルで試してみてください.
こちらの記事が参考になりますqiita.com/.../c8d6bd7a8a489256e898
がじぇるね岡宮です。
あまりお役に立てず申し訳ありませんが、以下はdiscoveryが実行された際のIPとポートです。
>・GR-ROSEからLinuxPCへ何か通信はしている> (宛先は239.255.0.2;Port:7400ソースで設定)
e2studio上で見ることができますが、以下の部分です。
よっしーさん、岡宮さん情報提供ありがとうございます。朝から色々試してみましたが、進展ないです。ビルドはe2Studioです。IDE for GRは外付けデバイスとし書き込むため、セキュリティで蹴られて書き込みができませんでした。また、239.255.はマルチキャスト用のため、UDPで通信してます。udp_talker_bestefortではtcp_talker_besteffortLinuxPCの返信用(?)のポート(ここでは2020)がUDPになるかTCPになるかが異なっていてGR-ROSEからの通信はどちらもUDPでした。午前中にLinuxのポート状況について色々試して気になる点がありました。以下LinuxPCの話です。・Micro-XRCE-DDSを起動したときに朝一はターミナルに7400と2020の「Server Start」みたいのが表示されたのですが、2回目以降はStartの表示がなく、またストップしても2020はストップ表示されますが、7400は何も表示されません。ポートの状況を確認しようと「sudo isof -i -P」と入力しても、MicroXRCEは2020と53422(←こちらは起動のたびに変動)を使っていて7400ではないです。PCの電源を落ちしても、朝一の状態には戻りません。何が起きているか分かります?
おはようございます。上記結果ですが、よくわかりませんでした。なんか違う方向に進んでいる気がしますので、教えて頂いた記事を参考に再構築してみようと思います。ちなみにIDE for GRのプロジェクトをe2studioに読み込ませる方法とかってないですよね。
おはようございます。新しいGR-ROSEに同じプロジェクトを書込んだら正常に通信できました。どうやらGR-ROSEのどこか一部が壊れていたみたいです。お騒がせしましたが、これで解決とします。よっしーさん、岡宮さん色々お付き合いいただきありがとうございました。