1
1
#! /bin/bash
2
2
3
+ PLATFORMS=()
4
+ while getopts " p:" o; do
5
+ case " $o " in
6
+ p)
7
+ PLATFORMS+=(${OPTARG} )
8
+ ;;
9
+ esac
10
+ done
11
+
12
+ if [ $OPTIND -eq 1 ]; then
13
+ PLATFORMS+=(" opencr1" )
14
+ PLATFORMS+=(" teensy4" )
15
+ PLATFORMS+=(" teensy3" )
16
+ fi
17
+
18
+ shift $(( OPTIND- 1 ))
19
+
20
+ # ####### Init ########
21
+
3
22
apt update
4
23
5
24
cd /uros_ws
@@ -17,50 +36,67 @@ cp /arduino_project/extras/library_generation/arduino_xrce_transports/serial_tra
17
36
# ####### Adding extra packages ########
18
37
pushd firmware/mcu_ws > /dev/null
19
38
20
- git clone -b foxy https://github.com/ros2/geometry2
21
- cp -R geometry2/tf2_msgs ros2/tf2_msgs
22
- rm -rf geometry2
39
+ # Workaround: Copy just tf2_msgs
40
+ git clone -b foxy https://github.com/ros2/geometry2
41
+ cp -R geometry2/tf2_msgs ros2/tf2_msgs
42
+ rm -rf geometry2
43
+
44
+ # Import user defined packages
45
+ mkdir extra_packages
46
+ pushd extra_packages > /dev/null
47
+ cp -R /arduino_project/extras/library_generation/extra_packages/* .
48
+ vcs import --input extra_packages.repos
49
+ popd > /dev/null
23
50
24
51
popd > /dev/null
25
52
26
53
# ####### Clean and source ########
27
54
find /arduino_project/src/ ! -name micro_ros_arduino.h ! -name * .c ! -name * .c.in -delete
28
55
29
56
# ####### Build for OpenCR ########
30
- rm -rf firmware/build
57
+ if [[ " ${PLATFORMS[@]} " =~ " opencr1 " ]]; then
58
+ rm -rf firmware/build
31
59
32
- export TOOLCHAIN_PREFIX=/uros_ws/gcc-arm-none-eabi-5_4-2016q2/bin/arm-none-eabi-
33
- ros2 run micro_ros_setup build_firmware.sh /arduino_project/extras/library_generation/opencr_toolchain.cmake /arduino_project/extras/library_generation/colcon.meta
60
+ export TOOLCHAIN_PREFIX=/uros_ws/gcc-arm-none-eabi-5_4-2016q2/bin/arm-none-eabi-
61
+ ros2 run micro_ros_setup build_firmware.sh /arduino_project/extras/library_generation/opencr_toolchain.cmake /arduino_project/extras/library_generation/colcon.meta
34
62
35
- find firmware/build/include/ -name " *.c" -delete
36
- cp -R firmware/build/include/* /arduino_project/src/
63
+ find firmware/build/include/ -name " *.c" -delete
64
+ cp -R firmware/build/include/* /arduino_project/src/
37
65
38
- mkdir -p /arduino_project/src/cortex-m7/fpv5-sp-d16-softfp
39
- cp -R firmware/build/libmicroros.a /arduino_project/src/cortex-m7/fpv5-sp-d16-softfp/libmicroros.a
66
+ mkdir -p /arduino_project/src/cortex-m7/fpv5-sp-d16-softfp
67
+ cp -R firmware/build/libmicroros.a /arduino_project/src/cortex-m7/fpv5-sp-d16-softfp/libmicroros.a
68
+ fi
40
69
41
- # ####### Build for Teensy 4 ########
42
- rm -rf firmware/build
43
-
44
- export TOOLCHAIN_PREFIX=/uros_ws/gcc-arm-none-eabi-5_4-2016q3/bin/arm-none-eabi-
45
-
46
- ros2 run micro_ros_setup build_firmware.sh /arduino_project/extras/library_generation/teensy4_toolchain.cmake /arduino_project/extras/library_generation/colcon.meta
70
+ # ####### Build for Teensy 3.2 ########
71
+ if [[ " ${PLATFORMS[@]} " =~ " teensy3 " ]]; then
72
+ rm -rf firmware/build
47
73
48
- mkdir -p /arduino_project/src/imxrt1062/fpv5-d16-hard
49
- cp -R firmware/build/libmicroros.a /arduino_project/src/imxrt1062/fpv5-d16-hard/libmicroros.a
74
+ export TOOLCHAIN_PREFIX=/uros_ws/gcc-arm-none-eabi-5_4-2016q3/bin/arm-none-eabi-
75
+ ros2 run micro_ros_setup build_firmware.sh /arduino_project/extras/library_generation/teensy32_toolchain.cmake /arduino_project/extras/library_generation/colcon_lowmem.meta
50
76
77
+ find firmware/build/include/ -name " *.c" -delete
78
+ cp -R firmware/build/include/* /arduino_project/src/
51
79
52
- # ####### Build for Teensy 3.2 ########
53
- rm -rf firmware/build
80
+ mkdir -p /arduino_project/src/mk20dx256
81
+ cp -R firmware/build/libmicroros.a /arduino_project/src/mk20dx256/libmicroros.a
82
+ fi
83
+ # ####### Build for Teensy 4 ########
84
+ if [[ " ${PLATFORMS[@]} " =~ " teensy4 " ]]; then
85
+ rm -rf firmware/build
54
86
55
- export TOOLCHAIN_PREFIX=/uros_ws/gcc-arm-none-eabi-5_4-2016q3/bin/arm-none-eabi-
87
+ export TOOLCHAIN_PREFIX=/uros_ws/gcc-arm-none-eabi-5_4-2016q3/bin/arm-none-eabi-
88
+ ros2 run micro_ros_setup build_firmware.sh /arduino_project/extras/library_generation/teensy4_toolchain.cmake /arduino_project/extras/library_generation/colcon.meta
56
89
57
- ros2 run micro_ros_setup build_firmware.sh /arduino_project/extras/library_generation/teensy32_toolchain.cmake /arduino_project/extras/library_generation/colcon_lowmem.meta
90
+ find firmware/build/include/ -name " *.c" -delete
91
+ cp -R firmware/build/include/* /arduino_project/src/
58
92
59
- mkdir -p /arduino_project/src/mk20dx256
60
- cp -R firmware/build/libmicroros.a /arduino_project/src/mk20dx256/libmicroros.a
93
+ mkdir -p /arduino_project/src/imxrt1062/fpv5-d16-hard
94
+ cp -R firmware/build/libmicroros.a /arduino_project/src/imxrt1062/fpv5-d16-hard/libmicroros.a
95
+ fi
61
96
62
97
# ####### Generate extra files ########
63
98
find firmware/mcu_ws/ros2 \( -name " *.srv" -o -name " *.msg" \) | awk -F" /" ' {print $(NF-2)"/"$NF}' > /arduino_project/available_ros2_types
99
+ find firmware/mcu_ws/extra_packages \( -name " *.srv" -o -name " *.msg" \) | awk -F" /" ' {print $(NF-2)"/"$NF}' >> /arduino_project/available_ros2_types
64
100
65
101
cd firmware
66
102
echo " " > /arduino_project/built_packages
0 commit comments