/images/with_SRG_legged_robot.jpeg

Aman Arora

Experiences: Attending ICRA 2024!

General Overview

ICRA 2024 brought together world’s best Robotics research and researchers together and enabled knowledge exchange, science communication, and sharing of the latest research in several sub-fields of robotics. As a Master’s student enhancing legged locomotion research using learning-based methods for challenging terrains, it was a pleasure to witness latest updates on the ongoing work in the field of Legged Robotics, Reinforcement Learning, and a popular emerging topic in the field: loco-manipulation. Other important topics included Sim2Real Transfer, and Risk-Aware locomotion.

GSoC 2022 :: Final Report

This post will briefly cover:

  • Learnings
  • Tasks done and blogs / weekly updates

Offline Voice Agent for AGL

This report is a requirement of the Final Evaluations phase of Google Summer of Code program. I worked with the Linux Foundation, under Automotive Grade Linux on the project to An Offline voice-agent for Automotive Grade Linux.

The proposal for the project can be found here.

The Linux Foundation is the nonprofit consortium dedicated to fostering the growth of Linux. Automotive Grade Linux is an open-source project hosted by The Linux Foundation that is building an open operating system and framework for automotive applications.

GSoC Weekly Update: Week 6


This post will briefly cover:

  • Learnings
  • Tasks done, and those in progress
  • Helpful resources

For the project proposal, visit here.


Create Recipe for python based Vosk websocket server:

GitHub Repo: https://github.com/alphacep/vosk-server/tree/master/websocket

Recipe created: python3-vosk-websocket-server_got.bb

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
DESCRIPTION = "WebSocket, gRPC and WebRTC speech recognition server based on Vosk and Kaldi libraries"
SUMMARY = "This is a server for highly accurate offline speech recognition using Kaldi and Vosk-API."
HOMEPAGE = "https://github.com/alphacep/vosk-server"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=d09bbd7a3746b6052fbd78b26a87396b"

SRC_URI = "git://github.com/alphacep/vosk-server;protocol=https;branch=master"

PV = "1.0+git${SRCPV}"
SRCREV = "70f3d5321a40f2f5dffe9c833bc1fac4b3b451e7"

S = "${WORKDIR}/git"

RDEPENDS:${PN} += " \
    vosk \
    python3-vosk-api \
    python3-websockets \
    virtual/vosk-model \
"

do_configure () {
	:
}

do_compile () {
	:
}

do_install () {
	install -d ${D}${bindir}
	cp ${S}/websocket/asr_server.py ${D}${bindir}/vosk-websocket-python.py
    chmod a+x ${D}${bindir}/vosk-websocket-python.py
}

ptest enable recipe for vosk-api:

Recipe name: python3-vosk-api_0.3.42.bb

GSoC Weekly Update: Week 4, 5

This post will briefly cover:

  • Learnings
  • Tasks done, and those in progress
  • Helpful resources

For the project proposal, visit here.


Creating the Recipes for a successful build of Vosk Library:

In order to integrate Vosk into AGL we need to build it from scratch. The instructions are mentioned in the Vosk Website under “Compilation from source”. As mentioned, the compilation is not straighforward and includes several nuances.

As listed in the Dockerfile for vosk-api, and the Dockerfile for vosk-server, the below steps outline the libraries that were required to be built for vosk-api, and the corresponding recipes:

GSoC Weekly Update: Week 3


This post will briefly cover:

  • Learnings
  • Tasks done, and those in progress
  • Helpful resources

For the project proposal, visit here.


This post is in continuation with the previous one, which had been updated as well.


Gathering the Vosk API from GitHub:

Used devtool to get the Vosk offline speech recognition API from GitHub:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$ devtool add python3-vosk --src-subdir python --srcrev b1b216d4c87d708935f1601287fe502aa11ee4a9 --version 0.3.42 --srcbranch master https://github.com/alphacep/vosk-api

# Inside the workdir as mentioned in the output of devtool add, found the following recipe:
========================================================================================
# Recipe created by recipetool
# This is the basis of a recipe and may need further editing in order to be fully functional.
# (Feel free to remove these comments when editing.)

SUMMARY = "Offline open source speech recognition API based on Kaldi and Vosk"
HOMEPAGE = "https://github.com/alphacep/vosk-api"
# WARNING: the following LICENSE and LIC_FILES_CHKSUM values are best guesses - it is
# your responsibility to verify that the values are complete and correct.
#
# The following license files were not able to be identified and are
# represented as "Unknown" below, you will need to check them yourself:
#   .eggs/tqdm-4.64.0-py3.8.egg/EGG-INFO/LICENCE
# NOTE: Original package / source metadata indicates license is: Apache
#
# NOTE: multiple licenses have been detected; they have been separated with &
# in the LICENSE value for now since it is a reasonable assumption that all
# of the licenses apply. If instead there is a choice between the multiple
# licenses then you should change the value to separate the licenses with |
# instead of &. If there is any doubt, check the accompanying documentation
# to determine which situation is applicable.
LICENSE = "MIT & Unknown & Apache"
LIC_FILES_CHKSUM = "file://.eggs/srt-3.5.2-py3.8.egg/EGG-INFO/LICENSE;md5=6658a1272b4469f7249985d28b8697bb \
                    file://.eggs/tqdm-4.64.0-py3.8.egg/EGG-INFO/LICENCE;md5=1672e2674934fd93a31c09cf17f34100"

SRC_URI = "git://github.com/alphacep/vosk-api;protocol=https;branch=master"

# Modify these as desired
PV = "0.3.42+git${SRCPV}"
SRCREV = "b1b216d4c87d708935f1601287fe502aa11ee4a9"

S = "${WORKDIR}/git/python"

inherit setuptools3

# WARNING: the following rdepends are determined through basic analysis of the
# python sources, and might not be 100% accurate.
RDEPENDS_${PN} += "python3-cffi python3-compression python3-core python3-datetime python3-json python3-logging python3-misc python3-multiprocessing python3-netclient python3-requests python3-tqdm python3-srt"
========================================================================================

Special thanks to Tim Orling (moto-timo) for his assistance and pointing out the errors in my previous method of writing and building the vosk recipe (not using the the wheel package from pypi but using the actual GitHub repo instead).

GSoC Weekly Update: Week 1, 2


This post will briefly cover:

  • Learnings
  • Build issue on personal machine, and solving it
  • Identifying dependencies
  • Tasks done, and those in progress
  • Useful resources

For the project proposal, visit here.

Build issue on personal machine:

While building a fresh AGL image on my personal machine, I encountered errors as listed:

1
2
3
4
Summary: 2 tasks failed:
  virtual:native:/home/aman/AGL/marlin/external/poky/meta/recipes-devtools/llvm/llvm_git.bb:do_compile
  /home/aman/AGL/marlin/external/meta-openembedded/meta-oe/dynamic-layers/meta-python/recipes-extended/mozjs/mozjs_60.9.0.bb:do_compile
Summary: There were 3 ERROR messages shown, returning a non-zero exit code.

Separately compiling the packages seemed to have solved the issue in the next run. The reason could be too many parallel processes over-utilizing the available memory.