LIBQRC
Overview
Qualcomm robot Platforms need to communicate with motor control board to get odometry and sensors data and send speed
commands to motor control board to control robot move.
libqrc
realized the software protocol between qualcomm robot Platforms and motor control board.
In motor control side, Sensors data like imu, ultrasound, and odometry would transport to robot platform with qrc protocol. In robot platform side, qrc protocol can transport speed command, emergency stop command and other control commands from robot platform to motor control board.
- At present, the qrc protocol define below messages format:
motion control message.
client control message.
emergency message.
configuration message.
imu message.
charger control message.
time sync message.
misc message.
This package provides reset function to control motor control board restart function based gpio.
In order to seperate platform influence, libqrc realized user-driver function to config uart and gpio which related platform and provide API to qrc protocol.
This package support multi threads transport, ACK and SYNC mode functions.
This package leverages tiny frame protocol.
Build
Currently, we only support use QCLINUX to build
Setup environments follow this document ‘s Set up the cross-compile environment.
Create
ros_ws
directory in<qirp_decompressed_workspace>/qirp-sdk/
Clone this repository under
<qirp_decompressed_workspace>/qirp-sdk/ros_ws
git clone https://github.com/quic-qrb-ros/libqrc.git
Build this project
export AMENT_PREFIX_PATH="${OECORE_TARGET_SYSROOT}/usr;${OECORE_NATIVE_SYSROOT}/usr"
export PYTHONPATH=${PYTHONPATH}:${OECORE_TARGET_SYSROOT}/usr/lib/python3.10/site-packages
colcon build --merge-install --cmake-args \
-DPython3_ROOT_DIR=${OECORE_TARGET_SYSROOT}/usr \
-DPython3_NumPy_INCLUDE_DIR=${OECORE_TARGET_SYSROOT}/usr/lib/python3.10/site-packages/numpy/core/include \
-DPYTHON_SOABI=cpython-310-aarch64-linux-gnu -DCMAKE_STAGING_PREFIX=$(pwd)/install \
-DCMAKE_PREFIX_PATH=$(pwd)/install/share \
-DBUILD_TESTING=OFF
Push to the device & Install
cd ``<qirp_decompressed_workspace>/qirp-sdk/ros_ws/install``
tar czvf libqrc.tar.gz lib share
scp libqrc.tar.gz root@[ip-addr]:/opt/
ssh root@[ip-addr]
(ssh) tar -zxf /opt/qrb_ros_imu.tar.gz -C /opt/qcom/qirp-sdk/usr/
Run
This package just provides qrc protocol library, no execution file.
Packages
Supported Platforms
This package is designed and tested to be compatible with ROS 2 Humble running on Qualcomm RB3 gen2.
Hardware |
Software |
---|---|
LE.QCROBOTICS.1.0 |
Updates
Date |
Changes |
---|---|
2024-8-13 |
Update source code. |