4 Commits

6 changed files with 38 additions and 25 deletions

View File

@ -4,8 +4,8 @@ IMAGE_NAME=robocar-steering-tflite-edgetpu
TAG=$(git describe) TAG=$(git describe)
FULL_IMAGE_NAME=docker.io/cyrilix/${IMAGE_NAME}:${TAG} FULL_IMAGE_NAME=docker.io/cyrilix/${IMAGE_NAME}:${TAG}
BINARY=rc-steering BINARY=rc-steering
TFLITE_VERSION=2.6.0 TFLITE_VERSION=2.10.0
GOLANG_VERSION=1.18 GOLANG_VERSION=1.19
GOTAGS="-tags netgo" GOTAGS="-tags netgo"
BUILDER_CONTAINER="${IMAGE_NAME}-builder" BUILDER_CONTAINER="${IMAGE_NAME}-builder"
@ -35,6 +35,20 @@ image_build_binaries(){
buildah run $containerName ln -s /usr/lib/aarch64-linux-gnu/libedgetpu.so.1 /usr/lib/aarch64-linux-gnu/libedgetpu.so buildah run $containerName ln -s /usr/lib/aarch64-linux-gnu/libedgetpu.so.1 /usr/lib/aarch64-linux-gnu/libedgetpu.so
printf "Compile for linux/amd64\n" printf "Compile for linux/amd64\n"
LIB_ARCH=x86_64-linux-gnu
LIB_FLAGS="-L /usr/local/lib/${LIB_ARCH} \
-L/usr/local/lib/${LIB_ARCH}/absl/base -labsl_base -labsl_throw_delegate -labsl_raw_logging_internal -labsl_spinlock_wait -labsl_malloc_internal -labsl_log_severity -labsl_strerror \
-L/usr/local/lib/${LIB_ARCH}/absl/status -labsl_status \
-L/usr/local/lib/${LIB_ARCH}/absl/hash -labsl_hash -labsl_city -labsl_low_level_hash \
-L/usr/local/lib/${LIB_ARCH}/absl/flags -labsl_flags -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_reflection -labsl_flags_config -labsl_flags_program_name -labsl_flags_private_handle_accessor -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal\
-L/usr/local/lib/${LIB_ARCH}/absl/types -labsl_bad_variant_access -labsl_bad_optional_access -labsl_bad_any_cast_impl \
-L/usr/local/lib/${LIB_ARCH}/absl/strings -labsl_strings -labsl_str_format_internal -labsl_cord -labsl_cordz_info -labsl_cord_internal -labsl_cordz_functions -labsl_cordz_handle -labsl_strings_internal \
-L/usr/local/lib/${LIB_ARCH}/absl/time -labsl_time -labsl_time_zone -labsl_civil_time \
-L/usr/local/lib/${LIB_ARCH}/absl/numeric -labsl_int128 \
-L/usr/local/lib/${LIB_ARCH}/absl/synchronization -labsl_synchronization -labsl_graphcycles_internal\
-L/usr/local/lib/${LIB_ARCH}/absl/debugging -labsl_stacktrace -labsl_symbolize -labsl_debugging_internal -labsl_demangle_internal \
-L/usr/local/lib/${LIB_ARCH}/absl/profiling -labsl_exponential_biased \
-L/usr/local/lib/${LIB_ARCH}/absl/container -labsl_raw_hash_set -labsl_hashtablez_sampler"
buildah run \ buildah run \
--env CGO_ENABLED=1 \ --env CGO_ENABLED=1 \
--env CC=gcc \ --env CC=gcc \
@ -43,25 +57,27 @@ image_build_binaries(){
--env GOARCH=amd64 \ --env GOARCH=amd64 \
--env GOARM=${GOARM} \ --env GOARM=${GOARM} \
--env CGO_CPPFLAGS="-I/usr/local/include" \ --env CGO_CPPFLAGS="-I/usr/local/include" \
--env CGO_LDFLAGS="-L /usr/local/lib/x86_64-linux-gnu -L /usr/lib/x86_64-linux-gnu" \ --env CGO_LDFLAGS="${LIB_FLAGS}" \
$containerName \ $containerName \
go build -a -o rc-steering.amd64 ./cmd/rc-steering go build -a -o rc-steering.amd64 ./cmd/rc-steering
#--env CGO_CXXFLAGS="--std=c++1z" \ #--env CGO_CXXFLAGS="--std=c++1z" \
printf "Compile for linux/arm/v7\n"
buildah run \
--env CGO_ENABLED=1 \
--env CC=arm-linux-gnueabihf-gcc \
--env CXX=arm-linux-gnueabihf-g++ \
--env GOOS=linux \
--env GOARCH=arm \
--env GOARM=7 \
--env CGO_CPPFLAGS="-I/usr/local/include" \
--env CGO_LDFLAGS="-L /usr/lib/arm-linux-gnueabihf -L /usr/local/lib/arm-linux-gnueabihf" \
$containerName \
go build -a -o rc-steering.armhf ./cmd/rc-steering
printf "Compile for linux/arm64\n" printf "Compile for linux/arm64\n"
LIB_ARCH=aarch64-linux-gnu
LIB_FLAGS="-L /usr/local/lib/${LIB_ARCH} \
-L/usr/local/lib/${LIB_ARCH}/absl/base -labsl_base -labsl_throw_delegate -labsl_raw_logging_internal -labsl_spinlock_wait -labsl_malloc_internal -labsl_log_severity -labsl_strerror\
-L/usr/local/lib/${LIB_ARCH}/absl/status -labsl_status \
-L/usr/local/lib/${LIB_ARCH}/absl/hash -labsl_hash -labsl_city -labsl_low_level_hash \
-L/usr/local/lib/${LIB_ARCH}/absl/flags -labsl_flags -labsl_flags_internal -labsl_flags_marshalling -labsl_flags_reflection -labsl_flags_config -labsl_flags_program_name -labsl_flags_private_handle_accessor -labsl_flags_commandlineflag -labsl_flags_commandlineflag_internal\
-L/usr/local/lib/${LIB_ARCH}/absl/types -labsl_bad_variant_access -labsl_bad_optional_access -labsl_bad_any_cast_impl \
-L/usr/local/lib/${LIB_ARCH}/absl/strings -labsl_strings -labsl_str_format_internal -labsl_cord -labsl_cordz_info -labsl_cord_internal -labsl_cordz_functions -labsl_cordz_handle -labsl_strings_internal \
-L/usr/local/lib/${LIB_ARCH}/absl/time -labsl_time -labsl_time_zone -labsl_civil_time \
-L/usr/local/lib/${LIB_ARCH}/absl/numeric -labsl_int128 \
-L/usr/local/lib/${LIB_ARCH}/absl/synchronization -labsl_synchronization -labsl_graphcycles_internal\
-L/usr/local/lib/${LIB_ARCH}/absl/debugging -labsl_stacktrace -labsl_symbolize -labsl_debugging_internal -labsl_demangle_internal \
-L/usr/local/lib/${LIB_ARCH}/absl/profiling -labsl_exponential_biased \
-L/usr/local/lib/${LIB_ARCH}/absl/container -labsl_raw_hash_set -labsl_hashtablez_sampler"
buildah run \ buildah run \
--env CGO_ENABLED=1 \ --env CGO_ENABLED=1 \
--env CC=aarch64-linux-gnu-gcc \ --env CC=aarch64-linux-gnu-gcc \
@ -69,7 +85,7 @@ image_build_binaries(){
--env GOOS=linux \ --env GOOS=linux \
--env GOARCH=arm64 \ --env GOARCH=arm64 \
--env CGO_CPPFLAGS="-I/usr/local/include" \ --env CGO_CPPFLAGS="-I/usr/local/include" \
--env CGO_LDFLAGS="-L /usr/lib/aarch64-linux-gnu -L /usr/local/lib/aarch64-linux-gnu" \ --env CGO_LDFLAGS="${LIB_FLAGS}" \
$containerName \ $containerName \
go build -a -o rc-steering.arm64 ./cmd/rc-steering go build -a -o rc-steering.arm64 ./cmd/rc-steering
} }
@ -110,7 +126,6 @@ image_build_binaries
image_build linux/amd64 image_build linux/amd64
image_build linux/arm64 image_build linux/arm64
image_build linux/arm/v7
# push image # push image

4
go.mod
View File

@ -1,13 +1,13 @@
module github.com/cyrilix/robocar-steering-tflite-edgetpu module github.com/cyrilix/robocar-steering-tflite-edgetpu
go 1.18 go 1.19
require ( require (
github.com/cyrilix/robocar-base v0.1.7 github.com/cyrilix/robocar-base v0.1.7
github.com/cyrilix/robocar-protobuf/go v1.0.5 github.com/cyrilix/robocar-protobuf/go v1.0.5
github.com/disintegration/imaging v1.6.2 github.com/disintegration/imaging v1.6.2
github.com/eclipse/paho.mqtt.golang v1.4.1 github.com/eclipse/paho.mqtt.golang v1.4.1
github.com/mattn/go-tflite v1.0.2 github.com/mattn/go-tflite v1.0.4
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.30.0 go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.30.0
go.opentelemetry.io/otel/metric v0.30.0 go.opentelemetry.io/otel/metric v0.30.0
go.opentelemetry.io/otel/sdk/metric v0.30.0 go.opentelemetry.io/otel/sdk/metric v0.30.0

5
go.sum
View File

@ -1,7 +1,6 @@
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A=
github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/benbjohnson/clock v1.3.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cyrilix/robocar-base v0.1.7 h1:EVzZ0KjigSFpke5f3A/PybEH3WFUEIrYSc3z/dhOZ48= github.com/cyrilix/robocar-base v0.1.7 h1:EVzZ0KjigSFpke5f3A/PybEH3WFUEIrYSc3z/dhOZ48=
github.com/cyrilix/robocar-base v0.1.7/go.mod h1:4E11HQSNy2NT8e7MW188y6ST9C0RzarKyn7sK/3V/Lk= github.com/cyrilix/robocar-base v0.1.7/go.mod h1:4E11HQSNy2NT8e7MW188y6ST9C0RzarKyn7sK/3V/Lk=
github.com/cyrilix/robocar-protobuf/go v1.0.5 h1:PX1At+pf6G7gJwT4LzJLQu3/LPFTTNNlZmZSYtnSELY= github.com/cyrilix/robocar-protobuf/go v1.0.5 h1:PX1At+pf6G7gJwT4LzJLQu3/LPFTTNNlZmZSYtnSELY=
@ -31,8 +30,8 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0= github.com/mattn/go-pointer v0.0.1 h1:n+XhsuGeVO6MEAp7xyEukFINEa+Quek5psIR/ylA6o0=
github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc= github.com/mattn/go-pointer v0.0.1/go.mod h1:2zXcozF6qYGgmsG+SeTZz3oAbFLdD3OWqnUbNvJZAlc=
github.com/mattn/go-tflite v1.0.2 h1:P9CKqjyRSRM31SfL65WklD8U5B/iPD4CJQiRkB8K02g= github.com/mattn/go-tflite v1.0.4 h1:wpfNKjMr3IJz4xI+oUeHE70RU6Q5dZc0FK/X8vCWLAo=
github.com/mattn/go-tflite v1.0.2/go.mod h1:2NwhEYXoP8vxRIpu95DElqMkZoV39ABRPF3AETN7N1w= github.com/mattn/go-tflite v1.0.4/go.mod h1:j7bVlVHgKURK0p7AQOw3OqlGE2SVXqck7JsJo4wI+bc=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=

View File

@ -92,5 +92,5 @@ rm -Rf edgetpu
MIT MIT
## Author ## Author
Yasuhrio Matsumoto (a.k.a. mattn) Yasuhiro Matsumoto (a.k.a. mattn)

View File

@ -32,7 +32,6 @@ _make_registration(void* o_init, void* o_free, void* o_prepare, void* o_invoke,
} }
static void look_context(TfLiteContext *context) { static void look_context(TfLiteContext *context) {
context->tensors;
TfLiteIntArray *plan = NULL; TfLiteIntArray *plan = NULL;
context->GetExecutionPlan(context, &plan); context->GetExecutionPlan(context, &plan);
if (plan == NULL) return; if (plan == NULL) return;

2
vendor/modules.txt vendored
View File

@ -28,7 +28,7 @@ github.com/gorilla/websocket
# github.com/mattn/go-pointer v0.0.1 # github.com/mattn/go-pointer v0.0.1
## explicit ## explicit
github.com/mattn/go-pointer github.com/mattn/go-pointer
# github.com/mattn/go-tflite v1.0.2 # github.com/mattn/go-tflite v1.0.4
## explicit; go 1.13 ## explicit; go 1.13
github.com/mattn/go-tflite github.com/mattn/go-tflite
github.com/mattn/go-tflite/delegates github.com/mattn/go-tflite/delegates