Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mbed studioのエラーの解決 #57

Open
kazu-321 opened this issue Dec 8, 2023 · 7 comments
Open

mbed studioのエラーの解決 #57

kazu-321 opened this issue Dec 8, 2023 · 7 comments

Comments

@kazu-321
Copy link

kazu-321 commented Dec 8, 2023

mbed studioでこのリポジトリをimportし、mbed studioで環境を作ろうとしたのですが、色々問題があったので報告します。

rtpsがない

https://github.com/mROS-base/embeddedRTPS
のincludeの中身をprogramのplatform/rtps ないに設置(config.hしかないところ)
srcとthirdpartをmros2/embeddedRTPS/ ないに設置

string.hが読み込めない

これはサードパーティーの問題で、mbedのstringとかぶっているので、
/mros2/embeddedRTPS/thirdparty/Micro-CDR/include/ucdr/types/ ないのstring.hをucdr_string.hに改名
/mros2/embeddedRTPS/thirdparty/Micro-CDR/src/c/types ないのstring.cを ucdr_string.cに改名
/mros2/embeddedRTPS/thirdparty/Micro-CDR/include/ucdr/microcdr.hの 24行目
#include <ucdr/types/string.h>を
#include <ucdr/types/ucdr_string.h>に変更

でエラーはでなくなります.

@kazu-321
Copy link
Author

kazu-321 commented Dec 8, 2023

micro cdrにまだ問題が残ってて、ビルドが通らないのでやっぱりだめでした

@kazu-321
Copy link
Author

もろもろの問題を解決させたplatformを公開しました。
mbed studioを開き、mros2-mbedをimport、platformを一度削除して、これを入れればmbed studioで編集から書き込みまですべてできるようになります。
https://github.com/NITIC-Robot-Club/mros2-platform.git

mbed studioのビルドする際に使われているスクリプトを変えることで対応もできますが、ほかのプロジェクトに影響が出てしまうのと、mros2の環境を汚さない利点がなくなってしまうのでやりませんでした。
詳しいことは記事を書く予定なのでそれを参照してください。

@kazu-321
Copy link
Author

あとでちゃんとforkしたのをプルリクします。

@kazu-321
Copy link
Author

lwip周りでエラー出ちゃいました。
mros2関係を一度なくしてmbed-osだけでコンパイルすれば通るのですが、mros2+embeddedRTPSとかを入れるとコンパイル失敗します。

Building project mros2test (NUCLEO_F767ZI, ARMC6)
Scan: mros2test
Compile [ 24.2%]: lwip_altcp_alloc.c
Compile [ 24.3%]: lwip_ip.c
Compile [ 24.4%]: lwip_netdb.c
[Fatal Error] sockets.h@50,10: 'lwip/errno.h' file not found
[ERROR] In file included from ./mbed-os/connectivity/lwipstack/lwip/src/api/lwip_netdb.c:38:
In file included from ./mbed-os/connectivity/lwipstack/lwip/src/include/lwip/netdb.h:43:
./mbed-os/connectivity/lwipstack/lwip/src/include/lwip/sockets.h:50:10: fatal error: 'lwip/errno.h' file not found
#include "lwip/errno.h"
^~~~~~~~~~~~~~
1 error generated.

mbed-osを入れ直したりしてもmros2関係を入れるとこれが出てしまいます。。。

@yamati-kz
Copy link

おしえてください。
embeddedRTPSというディレクトリが2個存在する理由を教えていただきたいです。

mROS 2 mbed をmbed studioで環境構築する を参考に試そうとしている中で疑問に思いました。

mros2_mbedStudio000

@kazu-321
Copy link
Author

ほんらいビルドのタイミングでmros2内にダウンロードされるのですが、mbed stusioだとダウンロード先の指定が難しかったからです。

@yamati-kz
Copy link

yamati-kz commented Apr 19, 2024

ご回答ありがとうございました。

そして別件のご報告です。こちらに失礼します。
Mbed Studio(windows版)でbuildしたbinファイルでpub/subが動きました。
こちらmros2-mbed (on mbed studio) のチュートリアルを参考にいたしました。
お陰様でbuild環境の選択肢が増えましたし、私自身も過去にMbed studioでのbuildにチャレンジしたのですが、うまくいかずに諦めておりました。今回コンパイルエラーが出ている理由もはっきりとしました。感謝です。

Versionは下図の通りです。
mbed studio 1 4 5

ログです。
image
image

最後にROS 2 Humble側ですが、次の通りです。
OS : Ubuntu 22.04.4 LTS ( JetPack 6.0 Developer Preview (DP) )
Hardware : NVIDIA Jetson Orin Nano Developer Kit

以上。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants