Changes for page ROS Crash Course

Last modified by Leon Poon on 2021/08/30 23:24

From version 2.1
edited by Leon Poon
on 2021/08/23 10:50
Change comment: There is no comment for this version
To version 4.1
edited by Leon Poon
on 2021/08/23 11:07
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,4 +1,5 @@
1 -= C++ Crash Crash Course =
1 +(% class="wikigeneratedid" id="HC2B2BCrashCrashCourse" %)
2 +Using C++.
2 2  
3 3  == Day 1 ==
4 4  
... ... @@ -6,15 +6,15 @@
6 6  
7 7  g++ source1.cpp -o program1
8 8  
9 -Paths, . and .. in navigating directories
10 +Paths, "/" and "." and ".." in navigating directories - absolute vs relative
10 10  
11 -data type - memory, binary
12 +data type - binary itself is meaningless unless you say what data the binary represent
12 12  
13 13  declare variables (int, char, string as series of chars)
14 14  
15 15  statements end with semicolon
16 16  
17 -cstdio library include
18 +cstdio library #include
18 18  
19 19  calling a function - printf
20 20  
... ... @@ -32,9 +32,9 @@
32 32  
33 33  While loop = for loop with empty initialiser/advancement statements
34 34  
35 -Switch - match expression's result to case label
36 +Switch - match expression's result to case label, execute statements until break.
36 36  
37 -Switch vs if-else differences.
38 +Switch vs if-else differences - number of times expressions are evaluated
38 38  
39 39  your own function
40 40  
... ... @@ -54,6 +54,8 @@
54 54  
55 55  Homework: implement factorial (1 to 20) calculator
56 56  
58 +in Linux, most things are case-sensitive. (A not equals a)
59 +
57 57  == Day 3 ==
58 58  
59 59  factorial printer - 2 approaches:
... ... @@ -63,7 +63,36 @@
63 63  
64 64  set initial values of vars when declaring otherwise initial values are unpredictable
65 65  
69 +factorial function - implemented in recursive way, closer to mathematical definition
66 66  
71 +stack memory
67 67  
73 +stack frame to store var values in each function call
68 68  
69 -
75 +stack overflow/crash (segfault)
76 +
77 +base condition to stop the recursion
78 +
79 +recursive algorithms are common - e.g. when dealing with trees
80 +
81 +spaces in file/directory names and how to navigate - space is special in terminal
82 +
83 +understand names chosen by yourself vs names chosen by other people for your use
84 +
85 +creating ros package - arguments: package name, dependencies
86 +
87 +CMakeLists.txt (.txt file can also be used with other programs)
88 +
89 +cmake = build tool - compile many files in some defined ways
90 +
91 +package.xml - information for ROS
92 +
93 +compiling - carefully read and understand and seek answers to error messages
94 +
95 +msg files - fields declaration with data type
96 +
97 +create cpp file for a node
98 +
99 +quick reading of code for publisher node
100 +
101 +homework: implement message subscriber node according to ROS book