sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

Repository Summary

Description
Checkout URI https://github.com/quic/sample-apps-for-robotics-platforms.git
VCS Type git
VCS Version master
Last Updated 2025-02-06
Dev Status UNKNOWN
CI status No Continuous Integration
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Packages

Name Version
imu-ros2node 0.1.0

README

Qualcomm Innovation Center, Inc.

Sample applications for robotics platforms

This is a repository of sample applications that can run on the following development kits:

  • Qualcomm® Robotics RB5 dev kit based on the Qualcomm® QRB5165 processor
  • Qualcomm® Robotics RB2 dev kit based on the Qualcomm® QRB4210 processor
  • Qualcomm® Robotics RB1 dev kit based on the Qualcomm® QRB2210 processor

Before we jump into the sample apps, lets take a brief look at the supported operating systems available for these development kits.

The development kits support two types of Linux based operating system images. First is the “LE” version, second is the “UBUN” version that has an Ubuntu-based Rootfs. Both types of system images are built using the Yocto build system. For the most part both options are designed to have feature parity, but at a high-level Ubuntu-based system images will support an apt-get package manager and on device compilation, whereas the “LE” version does not come with a package manager and apps will need to be built off-target using the SDK toolchain.

The system image is a combination of multiple subsystem binaries for the application processor and various DSPs available on the applicable chipsets. Below are some example system images that can be generated using SDK manager from Thundercomm.

  • QRB5165.LE.1.0-xxxxxx : System image based on Linux Kernel 4.xx for RB5 dev kit
  • QRB5165.UBUN.1.0-xxxxxx : System image based on Linux Kernel 4.xx and ubuntu based rootfs for RB5 dev kit
  • QRB5165.UBUN.2.0-xxxxxx : System image based on Linux Kernel 5.xx and ubuntu based rootfs for RB5 dev kit
Note: QRB5165.UBUN.1.0-xxxxxx system images have been depricated. Please use the QRB5165.UBUN.2.0-xxxxxx version.

Since the underlying system images running on these development kits might be based on different versions of Linux kernel, the sample apps in this repository are also organized to help developers run the right apps on the applicable platform. Below is a high level folder structure for the sample apps.

Platform Processor Linux Kernel Folder
Qualcomm® Robotics RB5 dev kit QRB5165 4.x /RB5/linux_kernel_4_x
Qualcomm® Robotics RB5 dev kit QRB5165 5.x /RB5/linux_kernel_5_x
Qualcomm® Robotics RB1 and RB2 dev kits QRB4210 / QRB2210 5.x /RB1RB2/

Below is an overview on how sample apps are categorized. Each sample application has its own folder within the category. Please follow the README in the respective folders to build, deploy and test.

platform-bringup

Contains apps to query device info, GPIO examples, Weston-Client example, WiFi onboarding and more...

peripheral-devices

Contains apps to use some of the peripheral devices, like Camera-hal3 sample application.

GStreamer-apps

Contains a set of Python and C sample applications that show the use of gstreamer plugins on the development platform.

ROS-apps

Contains apps that show the use of ROS middleware for building robotics applications.

AI-ML-apps

Contains apps that show how to run AI workloads on the development platform. Also contains apps that implement AI for various use cases.

AWS-Samples

Contains instructions on how to enable and test various AWS services on the platform.

Getting Started

Contributions

Please read our Contributions Page for more information on contributing features or bug fixes. We look forward to your participation!

Team

A community-driven project maintained by Qualcomm Innovation Center, Inc.

License

Sample applications here are licensed under the BSD 3-clause-Clear “New” or “Revised” License. Check out the LICENSE for more details.

CONTRIBUTING

Contributing to sample-apps-for-Qualcomm-Robotics-RB5-platform

We’re thrilled that you’d like to contribute to the sample-apps-for-Qualcomm-Robotics-RB5-platform project! Your support is essential for keeping this project great and for making it better.

Before you begin

  • Please read our Code of Conduct and License and ensure that you agree to abide by them.
  • For every new feature or bug fix, always start a new issue on https://github.com/quic/sample-apps-for-Qualcomm-Robotics-RB5-platform/issues.
  • To contribute a bug-fix, please follow the steps in the next sections without any further discussion.
  • To contribute new features, extensions, utility functions or other significant changes, please describe and discuss the change with us via the GitHub issue that you created above. A pull request (PR) submitted without discussion and agreement with the project maintainers may be subject to rejection, or significant changes may be requested prior to its acceptance.

Guidelines

Please follow the guidelines below to increase the likelihood and speed of your PR acceptance:

  • Follow the existing style in the file or folder where possible. We try and adhere to pep8 for Python and Google C++ style guide for C++.
  • Add new unit tests or update existing tests to verify the code that you contribute.
  • Keep your change as focused as possible. If you want to make multiple independent changes, consider submitting them as separate PRs.
  • Write a good commit message.
  • Every commit must be signed with the Developer Certificate of Origin (by adding the -s option to your git commit command).
  • Each PR submission will trigger a build, test, code quality check and static analysis processes. Submitters are required to fix all failures and warnings prior to acceptance.

Branching strategy

Contributors should develop on their own fork on branches based off of the develop branch and then pull requests should be made into the upstream develop branch.

Setup

Go to https://github.com/quic/sample-apps-for-Qualcomm-Robotics-RB5-platform and fork the repo using these instructions.

Follow the Requirements and Setup sections in USAGE.md. Then return to this page.

Get code

Sync your fork with the latest from the upstream repository.

Get the sample-apps-for-Qualcomm-Robotics-RB5-platform code as follows:

git clone https://github.com/YOUR_USERNAME/sample-apps-for-Qualcomm-Robotics-RB5-platform.git
cd aimet

Clone the google test repo as follows:

mkdir -p ./ThirdParty/googletest
pushd ./ThirdParty/googletest
git clone https://github.com/google/googletest.git -b release-1.8.0 googletest-release-1.8.0
popd

IMPORTANT: Setup your pre-commit and commit-msg hook using the following way:

cd sample-apps-for-Qualcomm-Robotics-RB5-platform
ln -s $(realpath -s .githooks/pre-commit) .git/hooks/pre-commit
ln -s $(realpath -s .githooks/commit-msg) .git/hooks/commit-msg

Development

Start a new issue on https://github.com/quic/sample-apps-for-Qualcomm-Robotics-RB5-platform/issues.

Create a branch for your feature

git checkout -b branch_short_feature_description

Now you may begin development. Once your development is complete, please ensure that the code builds successfully and that all tests pass using the instructions in the next sections.

Build

Follow these steps to build the code

cd sample-apps-for-Qualcomm-Robotics-RB5-platform
Follow each README in the respective folder to build the sample application

Commit

Commit the code and checkpoint it on your branch using the following procedure.

To display the files that you modified or added:

git status

To stage new (untracked) or existing files or folders for commit, do the following for each file or folder name that was added or changed:

git add <file or folder name that was added or changed>

To commit your changes:

git commit -s -m "Commit message"

IMPORTANT: The -s option is required during the commit step (DCO signoff).

To push your branch to the remote:

git push origin branch_short_feature_description

Branch update

Before merging, it is recommended that you update your branch to the latest on develop using the following steps:

git fetch
git checkout develop
git pull origin develop
git checkout branch_short_feature_description

Rebase your changes:

git rebase develop

Fix any conflicts that may arise. Then complete the rebasing procedure as follows:

git status

# Run the next 2 commands ONLY IF you needed to fix any conflicts.
# Run this for each file that you changed
git add <file or folder name that was added or changed>
git rebase --continue

Re-build the code on your branch and run all tests. Then update your remote branch:

git push origin branch_short_feature_description --force-with-lease

Branch cleanup

It is recommended that you commit code to your branches often. Prior to pushing the code and submitting PRs, please try to clean up your branch by squashing multiple commits together and amending commit messages as appropriate. See these pages for details:
https://blog.carbonfive.com/2017/08/28/always-squash-and-rebase-your-git-commits
https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History

Submission

When you’re ready to submit your code, issue a pull request from the branch on your FORK into the develop branch on the upstream repository using these instructions.

  1. Go to your forked repo page https://github.com/YOUR_USERNAME/sample-apps-for-Qualcomm-Robotics-RB5-platform and click “New Pull Request”.
  2. Under “compare changes”, select the base (destination) repository as quic/sample-apps-for-Qualcomm-Robotics-RB5-platform and the branch as base:develop to the left of the arrow.
  3. Under “compare changes”, select the head (source) repository as YOUR_USERNAME/sample-apps-for-Qualcomm-Robotics-RB5-platform and the branch as base:branch_short_feature_description to the right of the arrow.
  4. Click “Create Pull Request” which will initiate the PR and take you to the PR page.
    • In the PR page, click Reviewers on the top left and select one. He/she will receive an email notification.
    • In the PR page, click Assignee on the top left and select one. This person can be the reviewer or someone else or even the code submitter.
  5. Wait for the outcome of the continuous integration (CI) build and test job, and for any review feedback from the project maintainers.

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository

sample-apps-for-robotics-platforms repository