Skip to content

feat: add coding guideline about topic message handling #543

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
Show file tree
Hide file tree
Changes from 220 commits
Commits
Show all changes
229 commits
Select commit Hold shift + click to select a range
2131301
doc:change 1
ohsawa1204 Apr 17, 2024
093bfa7
doc:change 2
ohsawa1204 Apr 17, 2024
6e0f248
doc:change 3
ohsawa1204 Apr 26, 2024
ff3014d
doc:change 4
ohsawa1204 Apr 29, 2024
2609785
style(pre-commit): autofix
pre-commit-ci[bot] Apr 30, 2024
54f31e8
doc:change 5
ohsawa1204 Apr 30, 2024
cde9abf
Merge branch 'main' into test-add-callback-reduction-guidelines
ohsawa1204 Apr 30, 2024
cabe89b
docs(topic-message-handling): create page structure using .pages
takam5f2 May 1, 2024
13bd800
docs(topic-message-handling): fix missing links
takam5f2 May 1, 2024
418c2fa
Merge pull request #1 from takam5f2/create-page-structure-using-.pages
ohsawa1204 May 1, 2024
f38d7a0
docs(topic-message-handling): index -> index.md in 02-supp-waitset.md
ohsawa1204 May 1, 2024
7b36ae0
docs(topic-message-handling): correct misspelled words
ohsawa1204 May 1, 2024
136ab2d
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
8fa4990
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
554b359
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
cba9ec8
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
564901a
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
30ddb45
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
9658b88
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
64ae6cd
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
81dbcf7
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
b7a9d76
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
b94b519
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
353badd
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
2d289f1
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
f7ce39b
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
8588e50
style(pre-commit): autofix
pre-commit-ci[bot] May 2, 2024
98c9769
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
1c49fa3
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
2521119
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
3bb54a7
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
aa01ec7
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
22f5b2f
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
3056fd8
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
753cd0c
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
5de0f78
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
7cf816e
style(pre-commit): autofix
pre-commit-ci[bot] May 2, 2024
adc814a
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
fe96888
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
b786713
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
a9a53e6
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
99c8db4
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
a7fca6e
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
3241515
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
bb1b0be
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
537f252
style(pre-commit): autofix
pre-commit-ci[bot] May 2, 2024
72cd561
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
5e9f690
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
f631391
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
f81d2f9
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
2e85fe9
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
b5f2443
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
c0b3b39
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
84c293d
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
1887c69
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
8e6bacf
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
508cc74
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
f69cdb6
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
72a2260
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
4cf1879
style(pre-commit): autofix
pre-commit-ci[bot] May 2, 2024
0d4d245
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
ddd6ebb
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
70bf2b4
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
a82036d
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
92c51cb
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
e287933
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
1e9eeb9
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
9a32617
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
55f482a
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
0cfdee9
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
77d5d03
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
89b3e47
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
b72e848
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
6d0898d
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
ab8615b
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
9ca747b
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
8bb54f5
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
d48b903
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
6929da8
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
9d345b9
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
49fc574
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
dc01618
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
c1ad1bc
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
a7f359f
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
634bc92
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
c41be37
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
0138c58
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 2, 2024
6627ff3
docs(topic-message-handling): some corrections related to Akamine-san…
ohsawa1204 May 2, 2024
09c6cda
Merge branch 'main' into test-add-callback-reduction-guidelines
ohsawa1204 May 2, 2024
b5a1df1
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
5613357
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
4d32ce2
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
e7ca6a8
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
2855734
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
d483f9e
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
d93fcfe
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
cf82e96
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
5ab6de1
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
a0b8c88
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
fdbfafa
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
f6aa4cd
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
710a15b
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
7cd7f0b
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
9487a4a
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
025acb4
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
592fec9
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
1191372
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
9d00a72
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
8c82a8d
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
c25e351
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
1f5889b
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 13, 2024
4dffcab
docs(topic-message-handling): rename 02-supp-waitset.md
ohsawa1204 May 13, 2024
d00fb2e
docs(topic-message-handling): correct typo
ohsawa1204 May 13, 2024
5355a25
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
7c782d9
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
038f09f
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
bc49c9e
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
4aa951b
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
94b8495
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
36c6dd5
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
c0e897b
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
3e2fb08
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
af5afdd
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
6ef44d4
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
4ea3d5b
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
a7143bb
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
c8a779c
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
106a7e1
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
76792bb
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
6ee7031
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
f71dd91
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
7937d6b
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
aba3834
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
8e9bf27
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
a2ab1d2
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
9abdaa5
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
39e3c97
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
72123f5
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
9b5f07e
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
fb478d2
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
5337eb4
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
1cd1d4a
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
161623f
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
eb27439
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
b909de6
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
29a6dd3
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
348f753
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
11754e2
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
8043884
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
86a0891
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
ce33caf
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
e21c35e
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
3f5873e
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
06d1bf3
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
f957d55
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
fb13ce0
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
41f9f19
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
29e0b33
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
aa50c53
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
1d082e5
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
5f4faae
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
e4d4f79
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
56a0e07
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
a9a84ba
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
a0410cd
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
e056f69
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
37a3d0a
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
23606b3
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
e514b8a
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
d644f5a
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
412aaf1
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
bdc80a0
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
acc1931
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
551ade2
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
b7fc45c
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
5efdab1
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
1abf20f
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
060c914
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
aac9166
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
9cdd072
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
6be6160
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
8977a7e
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
93b8d69
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
7f15ca2
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
8c1bcb6
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
0210c99
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
51c1a66
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
817caa2
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
7bb4253
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
0475034
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
426507d
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
caff81e
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
160adda
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
c4b3428
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
22e9ac8
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
c639722
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
24563bb
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
2c1589a
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
aec2781
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
7924922
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
d9e8972
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
66b4380
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
5bac419
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
d16ccc7
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
f93307a
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
2e6a6ba
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
e07e307
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
f6dfe4b
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
04063eb
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
57d3427
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
0eda179
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
2b2100d
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
196ff01
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
71d093a
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
f9a9333
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
5c5cab1
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
2ba7162
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
f30f5d8
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
fd035ab
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
78609e0
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
08865bc
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 14, 2024
16c064b
style(pre-commit): autofix
pre-commit-ci[bot] May 14, 2024
1740112
docs(topic-message-handling): some fixes
ohsawa1204 May 14, 2024
f7b6b0e
Merge branch 'main' into test-add-callback-reduction-guidelines
ohsawa1204 May 14, 2024
a9381c9
Update docs/contributing/coding-guidelines/ros-nodes/topic-message-ha…
ohsawa1204 May 16, 2024
7b98baa
docs(topic-message-handling): corrected as noted by mitsudome-r
ohsawa1204 May 16, 2024
d42c75e
style(pre-commit): autofix
pre-commit-ci[bot] May 16, 2024
a7bf42d
docs(topic-message-handling): minor change
ohsawa1204 May 16, 2024
47eaf3e
style(pre-commit): autofix
pre-commit-ci[bot] May 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/contributing/coding-guidelines/ros-nodes/.pages
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ nav:
- parameters.md
- task-scheduling.md
- topic-namespaces.md
- topic-message-handling
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
nav:
- index.md
- 01-supp-intra-process-comm.md
- 02-supp-wait_set.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# [supplement] Obtain a received message through intra-process communication

## Topic message handling in intra-process communication

`rclcpp` supports intra-process communication. As explained in [_Topic message handling guideline_](index.md), `take()` method can not be used in the case of intra-process communication. `take()` can not return a topic message which is received through inter-process communication.
However, methods for intra-process communication are provided, similar to the methods for inter-process communication described in [_obtain data by calling Subscription->take and then call a callback function_](./index.md#3-obtain-data-by-calling-subscription-take-and-then-call-a-callback-function).
`take_data()` method is provided to obtain a received data in the case of intra-process communication and the received data must be processed through `execute()` method. The return value of `take_data()` is based on the complicated data structure, `execute()` method should be used along with `take_data()` method.
Refer to [_Template Class SubscriptionIntraProcess — rclcpp 16.0.8 documentation_](http://docs.ros.org/en/humble/p/rclcpp/generated/classrclcpp_1_1experimental_1_1SubscriptionIntraProcess.html#_CPPv4N6rclcpp12experimental24SubscriptionIntraProcess9take_dataEv) for `take_data()` and `execute()` for more detail.

## Coding manner

To handle messages via intra-process communication, call `take_data()` method and then `execute()` method as below.

```c++
// Execute any entities of the Waitable that may be ready
std::shared_ptr<void> data = waitable.take_data();
waitable.execute(data);
```

Here is a sample program in [_ros2_subscription_examples/intra_process_talker_listener/src/timer_listener_intra_process.cpp at main · takam5f2/ros2_subscription_examples_](https://github.com/takam5f2/ros2_subscription_examples/blob/main/intra_process_talker_listener/src/timer_listener_intra_process.cpp).
You can run the program as below. If you set `true` to `use_intra_process_comms`, intra-process communication is performed, while if you set `false`, inter-process communication is performed.

```console
ros2 intra_process_talker_listener talker_listener_intra_process.launch.py use_intra_process_comms:=true
```

Here is a snippet of [_ros2_subscription_examples/intra_process_talker_listener/src/timer_listener_intra_process.cpp at main · takam5f2/ros2_subscription_examples_](https://github.com/takam5f2/ros2_subscription_examples/blob/main/intra_process_talker_listener/src/timer_listener_intra_process.cpp).

```c++
// check if intra-process communication is enabled.
if (this->get_node_options().use_intra_process_comms()){

// get the intra-process subscription's waitable.
auto intra_process_sub = sub_->get_intra_process_waitable();

// check if the waitable has data.
if (intra_process_sub->is_ready(nullptr) == true) {

// take the data and execute the callback.
std::shared_ptr<void> data = intra_process_sub->take_data();

RCLCPP_INFO(this->get_logger(), " Intra-process communication is performed.");

// execute the callback.
intra_process_sub->execute(data);
```

Below is a line-by-line explanation of the above code.

- `if (this->get_node_options().use_intra_process_comms()){`

- The statement checks whether or not intra-process communication is enabled or not by using `NodeOptions`

- `auto intra_process_sub = sub_->get_intra_process_waitable();`

- The statement means to get an embodied object which performs intra-process communication

- `if (intra_process_sub->is_ready(nullptr) == true) {`

- The statement checks if a message has already been received through intra-process communication
- The argument of `is_ready()` is of type `rcl_wait_set_t` type, but because the argument is not used within `is_ready()`, `nullptr` is used for the moment.
- Using `nullptr` is currently a workaround, as it has no intent.

- `std::shared_ptr<void> data = intra_process_sub->take_data();`

- This statement means to obtain a topic message from subscriptions for intra-process communication.
- `intra_process_sub->take_data()` does not return a boolean value indicating whether a message is received successfully or not, so it is necessary to check this by calling `is_ready()` beforehand

- `intra_process_sub->execute(data);`
- A callback function corresponding to the received message is called within `execute()`
- The callback function is executed by the thread that calls `execute()` without a context switch
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# [supplement] Use rclcpp::WaitSet

## What is `rclcpp::WaitSet`

As explained in [_call take() method of Subscription object_](./index.md#call-take-method-of-subscription-object), the `take()` method is irreversible. Once the `take()` method is executed, a state of a subscription object changes. Because there is no undo operation against the `take()` method, the subscription object can not be restored to its previous state. You can use the `rclcpp::WaitSet` before calling the `take()` to check the arrival of an incoming message in the subscription queue.
The following sample code shows how the `wait_set_.wait()` tells you that a message has already been received and can be obtained by the `take()`.

```c++
auto wait_result = wait_set_.wait(std::chrono::milliseconds(0));
if (wait_result.kind() == rclcpp::WaitResultKind::Ready &&
wait_result.get_wait_set().get_rcl_wait_set().subscriptions[0]) {
sub_->take(msg, msg_info);
RCLCPP_INFO(this->get_logger(), "Catch message");
RCLCPP_INFO(this->get_logger(), "I heard: [%s]", msg.data.c_str());
```

A single `rclcpp::WaitSet` object is able to observe multiple subscription objects. If there are multiple subscriptions for different topics, you can check the arrival of incoming messages per subscription. Algorithms used in the field of autonomous robots requires multiple incoming messages, such as sensor data or actuation state. Using `rclcpp::WaitSet` for the multiple subscriptions, they are able to check whether or not required messages have arrived without taking any message.

```c++
auto wait_result = wait_set_.wait(std::chrono::milliseconds(0));
bool received_all_messages = false;
if (wait_result.kind() == rclcpp::WaitResultKind::Ready) {
for (auto wait_set_subs : wait_result.get_wait_set().get_rcl_wait_set().subscriptions) {
if (!wait_set_subs) {
RCLCPP_INFO_THROTTLE(get_logger(), clock, 5000, "Waiting for data...");
return {};
}
}
received_all_mesages = true;
}
```

In the code above, unless `rclcpp::WaitSet` is used, it is impossible to verify the arrival of all needed messages without changing state of the subscription objects.

## Coding manner

This section explains how to code using `rclcpp::WaitSet` with a sample code below.

- [_ros2_subscription_examples/waitset_examples/src/talker_triple.cpp at main · takam5f2/ros2_subscription_examples_](https://github.com/takam5f2/ros2_subscription_examples/blob/main/waitset_examples/src/talker_triple.cpp)
- It periodically publishes `/chatter` every second, `/slower_chatter` every two seconds, and `/slowest_chatter` every three seconds.
- [_ros2_subscription_examples/waitset_examples/src/timer_listener_triple_async.cpp at main · takam5f2/ros2_subscription_examples_](https://github.com/takam5f2/ros2_subscription_examples/blob/main/waitset_examples/src/timer_listener_triple_async.cpp)
- It queries `WaitSet` per one second and if there is a message available, it obtains the message with `take()`
- It has three subscriptions for `/chatter` `/slower_chatter`, and `/slower_chatter`

The following three steps are required to use `rclcpp::WaitSet`.

### 1. Declare and initialize `WaitSet`

You must first instantiate a `rclcpp::WaitSet` based object.
Below is a snippet from [_ros2_subscription_examples/waitset_examples/src/timer_listener_triple_async.cpp at main · takam5f2/ros2_subscription_examples_](https://github.com/takam5f2/ros2_subscription_examples/blob/main/waitset_examples/src/timer_listener_triple_async.cpp).

```c++
rclcpp::WaitSet wait_set_;
```

There are several types of classes similar to the `rclcpp::WaitSet`. The `rclcpp::WaitSet` object can be configured during runtime. It is not thread-safe as explained in the [_API specification of `rclcpp::WaitSet`_](https://docs.ros.org/en/ros2_packages/humble/api/rclcpp/generated/typedef_namespacerclcpp_1ad6fb19c154de27e92430309d2da25ac3.html)
The thread-safe classes that are replacements for `rclcpp::WaitSet' are provided by the`rclcpp' package as listed below.

- [_Typedef rclcpp::ThreadSafeWaitSet_](https://docs.ros.org/en/ros2_packages/humble/api/rclcpp/generated/typedef_namespacerclcpp_1acaec573e71549fd3078644e18e7f7127.html)
- Subscription, timer, etc. can only be registered to `ThreadSafeWaitSet` only in thread-safe state
- Sample code is here: [examples/rclcpp/wait_set/src/thread_safe_wait_set.cpp at rolling · ros2/examples](https://github.com/ros2/examples/blob/rolling/rclcpp/wait_set/src/thread_safe_wait_set.cpp)
- [_Typedef rclcpp::StaticWaitSet_](https://docs.ros.org/en/ros2_packages/humble/api/rclcpp/generated/typedef_namespacerclcpp_1adb06acf4a5723b1445fa6ed4e8f73374.html)
- Subscription, timer, etc. can be registered to `rclcpp::StaticWaitSet` only at initialization
- Here are sample code:
- [_ros2_subscription_examples/waitset_examples/src/timer_listener_twin_static.cpp at main · takam5f2/ros2_subscription_examples_](https://github.com/takam5f2/ros2_subscription_examples/blob/main/waitset_examples/src/timer_listener_twin_static.cpp)
- [_examples/rclcpp/wait_set/src/static_wait_set.cpp at rolling · ros2/examples_](https://github.com/ros2/examples/blob/rolling/rclcpp/wait_set/src/static_wait_set.cpp)

### 2. Register trigger (Subscription, Timer, and so on) to `WaitSet`

You need to register a trigger to the `rclcpp::WaitSet` based object.
The following is a snippet from [_ros2_subscription_examples/waitset_examples/src/timer_listener_triple_async.cpp at main · takam5f2/ros2_subscription_examples_](https://github.com/takam5f2/ros2_subscription_examples/blob/main/waitset_examples/src/timer_listener_triple_async.cpp)

```c++
subscriptions_array_[0] = create_subscription<std_msgs::msg::String>("chatter", qos, not_executed_callback, subscription_options);
subscriptions_array_[1] = create_subscription<std_msgs::msg::String>("slower_chatter", qos, not_executed_callback, subscription_options);
subscriptions_array_[2] = create_subscription<std_msgs::msg::String>("slowest_chatter", qos, not_executed_callback, subscription_options);

// Add subscription to waitset
for (auto & subscription : subscriptions_array_) {
wait_set_.add_subscription(subscription);
}
```

In the code above, the `add_subscription()` method registers the created subscriptions with the `wait_set_' object.
`rclcpp::WaitSet`-based object basically handles objects each of which have a corresponding callback function. Not only`Subscription`based objects, but`Timer`,`Service`or`Action`based objects can be observed by`rclcpp::WaitSet`-based object. A single`WaitSet` object accepts mixture of different types of objects.
A sample code for registering timer triggers can be found here.

```c++
wait_set_.add_timer(much_slower_timer_);
```

A trigger can be registered at declaration and initialization as described in [_wait_set_topics_and_timer.cpp from the examples_](https://github.com/ros2/examples/blob/rolling/rclcpp/wait_set/src/wait_set_topics_and_timer.cpp#L66).

### 3. Verify WaitSet result

The data structure of the test result returned from the `rclcpp::WaitSet` is nested.
You can find the `WaitSet` result by the following 2 steps;

1. Verify if any trigger has been invoked
2. Verify if a specified trigger has been triggered

For step 1, here is a sample code taken from [_ros2_subscription_examples/waitset_examples/src/timer_listener_triple_async.cpp at main · takam5f2/ros2_subscription_examples_](https://github.com/takam5f2/ros2_subscription_examples/blob/main/waitset_examples/src/timer_listener_triple_async.cpp).

```c++
auto wait_result = wait_set_.wait(std::chrono::milliseconds(0));
if (wait_result.kind() == rclcpp::WaitResultKind::Ready) {
RCLCPP_INFO(this->get_logger(), "wait_set tells that some subscription is ready");
} else {
RCLCPP_INFO(this->get_logger(), "wait_set tells that any subscription is not ready and return");
return;
}
```

In the code above, `auto wait_result = wait_set_.wait(std::chrono::milliseconds(0))` tests if a trigger in `wait_set_' has been called. The argument to the`wait()`method is the timeout duration. If it is greater than 0 milliseconds or seconds, this method will wait for a message to be received until the timeout expires.
If `wait_result.kind() == rclcpp::WaitResultKind::Ready`is`true`, then any trigger has been invoked.

For step 2, here is a sample code taken from [_ros2_subscription_examples/waitset_examples/src/timer_listener_triple_async.cpp at main · takam5f2/ros2_subscription_examples_](https://github.com/takam5f2/ros2_subscription_examples/blob/main/waitset_examples/src/timer_listener_triple_async.cpp).

```c++
for (size_t i = 0; i < subscriptions_num; i++) {
if (wait_result.get_wait_set().get_rcl_wait_set().subscriptions[i]) {
std_msgs::msg::String msg;
rclcpp::MessageInfo msg_info;
if (subscriptions_array_[i]->take(msg, msg_info)) {
RCLCPP_INFO(this->get_logger(), "Catch message via subscription[%ld]", i);
RCLCPP_INFO(this->get_logger(), "I heard: [%s]", msg.data.c_str());
```

In the code above, `wait_result.get_wait_set().get_rcl_wait_set().subscriptions[i]` indicates whether each individual trigger has been invoked or not. The result is stored in the `subscriptions` array. The order in the `subscriptions` array is the same as the order in which the triggers are registered.
Loading
Loading