Skip to content

Support esp32 #40

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

Merged
merged 14 commits into from
May 29, 2023
Merged

Support esp32 #40

merged 14 commits into from
May 29, 2023

Conversation

s-hosoai
Copy link
Contributor

ESP32対応のため,templates.hpp生成にオプションを追加しました.追加オプションを指定しない場合は従来動作と変わりません.

mROS-base/mros2-esp32#1
確認後にマージをお願いします.

@takasehideki
Copy link
Member

これ .hpp は mros2/ 配下に生成されるようにしているでしょうか?
ライブラリ内にアプリのためのコードが入ってくるのは .gitignore で逃げるのでもよろしくないと思っています.

@takasehideki
Copy link
Member

takasehideki commented May 22, 2023

template.hpp ですかね.
mros2-mbed ではアプリのディレクトリに生成されるようにしています.アプリごとに異なるはずですし.
(こういう生成物をアプリ側とはいえリポジトリで管理下にしているのはどうかと思うかもですが,いつも変わらないので,,,
https://github.com/mROS-base/mros2-mbed/tree/main/workspace/echoback_string

@s-hosoai
Copy link
Contributor Author

Templates.hppなのですがmros2のビルド時にテンプレートが必要で,Cmakeでの対策が分からずずっとビルドを通せなくての苦肉の策でこうなってました.
今ちょっと弄り直したら,各プロジェクト下に置いてもすんなり通せるようになってました.という事で一通りmbedの方式に揃えて修正します.

@s-hosoai
Copy link
Contributor Author

@takasehideki Templates.hppですが,各Exampleに同梱しますか?
個人的には生成されるものは同梱しないスタンスなのですが,生成されるものをGithub上でも見たいとか,説明のためにReferしやすいと言った要望も無きにしも非ずのような気もしてきてます.

@takasehideki
Copy link
Member

@takasehideki Templates.hppですが,各Exampleに同梱しますか? 個人的には生成されるものは同梱しないスタンスなのですが,生成されるものをGithub上でも見たいとか,説明のためにReferしやすいと言った要望も無きにしも非ずのような気もしてきてます.

@s-hosoai 悩ましいです.基本的なスタンスには同意というか私もそうなのですが,GitHubで見せたい説明しやすいかと思って mros2-mbed には置きました.でも違う経験として template.hpp ってなんなん?ここになにを書くのん?ってな問合せが来たことがありました.

@s-hosoai
Copy link
Contributor Author

了解です.置く方がメリットは多そうですね,あっても困るもんではないですし.
生成時に
/* This file generated with generate_templates.py. Do not modify. */
みたいな一文を行頭に追記しときますか?

@takasehideki
Copy link
Member

あぁそれは名案ですね!
英文的にはこんな感じでよろ:D

/* 
 * This file was automatically generated by generate_templates.py 
 * as one of mros2 features. You do not need to modify this. 
 */

@takasehideki
Copy link
Member

@s-hosoai config.h はここじゃなくて mros2-esp32 のリポジトリに配置してください(じゃないと他のターゲットと競合します)
98fa6c8

@s-hosoai
Copy link
Contributor Author

おっと,,すみません.修正しました.だんだん自分がどのsubmoduleに居るのか分からなくなってきてました.

README.md Outdated
- **Agent-less**: a node on mROS 2 autonomously discovers communication nodes on the host with the feature of [embeddedRTPS](https://github.com/mROS-base/embeddedRTPS). It means no agent/bridge is required for pub/sub communication from the embedded devices.
- mros2 currently uses [embeddedRTPS @ 1410a87](https://github.com/mROS-base/embeddedRTPS/tree/1410a8776660244249a84031ffa78c9bdaa45e19) as it is.
- **Agent-less**: A node on mROS 2 autonomously discovers communication nodes on the host. No agent/bridge is required for pub/sub communication from the embedded devices.
- mros2 employs [embeddedRTPS](https://github.com/mROS-base/embeddedRTPS) with some modifications.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

employよりもadoptの方が技術・ツールの採用っぽくていいかもしれません.employって人・スキル向けっぽいニュアンスを感じます.

README.md Outdated
- **Agent-less**: a node on mROS 2 autonomously discovers communication nodes on the host with the feature of [embeddedRTPS](https://github.com/mROS-base/embeddedRTPS). It means no agent/bridge is required for pub/sub communication from the embedded devices.
- mros2 currently uses [embeddedRTPS @ 1410a87](https://github.com/mROS-base/embeddedRTPS/tree/1410a8776660244249a84031ffa78c9bdaa45e19) as it is.
- **Agent-less**: A node on mROS 2 autonomously discovers communication nodes on the host. No agent/bridge is required for pub/sub communication from the embedded devices.
- mros2 employs [embeddedRTPS](https://github.com/mROS-base/embeddedRTPS) with some modifications.
- **Lightweight**: mROS 2 APIs are implemented by C++ to be operated on the embedded devices. All software stacks are also implemented only in C/C++.
- **Real-time**: mROS 2 employs the real-time kernel (e.g., [TOPPERS kernel](https://www.toppers.jp/en/project.html), [Mbed OS](https://os.mbed.com/mbed-os/)) as the runtime platform in order to enhance the real-time capability.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

こちらもadoptsか,supports many real-time kernelsみたいなのはどうでしょう

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

というよりは文意的にここは "uses" のほうが良さそうな気がしてきた:D

Copy link
Member

@takasehideki takasehideki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

go merging!!!

@takasehideki takasehideki merged commit 4adecd0 into main May 29, 2023
@takasehideki takasehideki deleted the support_esp32 branch May 29, 2023 08:03
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

Successfully merging this pull request may close these issues.

2 participants