Repository Summary
Description | C++ SDK for Mobile Robot Platforms |
Checkout URI | https://github.com/westonrobot/ugv_sdk.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-01-07 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
ugv_sdk | 0.8.2 |
README
UGV SDK
Introduction
This software package provides a C++ interface to communicate with the mobile platforms, for sending commands to the robot and receiving the latest robot state. The repository is a joint effort by the development teams at Weston Robot (Singapore) and AgileX Robotics (China).
- Copyright (c) 2020-2024 Weston Robot
- Copyright (c) 2020-2024 AgileX Robotics
Please create an issue on Github at https://github.com/westonrobot/ugv_sdk/issues if you encounter any problems when using the packages.
Supported Platforms
Software environments
- Architecture: x86_64/arm64
- OS: Ubuntu 18.04/20.04/22.04
- ROS: Melodic/Noetic/Foxy/Humble
It should also work in other similar Linux environments but only the above listed environments are regularly tested.
Robots and communication protocols
Robot | Protocol V1 | Protocol V2 | UART | CAN | Support Status |
---|---|---|---|---|---|
Y | - | N | Y | Discontinued | |
Scout 2.0 | Y | Y | N | Y | Active |
Scout Mini (Skid) | Y | Y | - | Y | Active |
Scout Mini (Omni) | Y | Y | - | Y | Active |
Hunter 1.0 | Y | Y | - | Y | Active |
Hunter 2.0 | - | Y | - | Y | Active |
Bunker | Y | Y | - | Y | Active |
Tracer | - | Y | N | Y | Active |
- | Y* | - | Y | Discontinued | |
Ranger Mini 2.0 | - | Y | - | Y | Active |
Ranger | - | Y | - | Y | Active |
Important note:
- The main branch of this repository supports all robot models and both V1 and V2 protocol. Earlier versions of the SDK can be found in v1.x and v2.x branch for V1 and V2 protocol support respectively. These two branches are not actively maintained any longer and are only kept for reference.
- * Ranger Mini 1.0 uses a modified version of Protocol V2. A few CAN messages and the reference frame definitions are inconsistent with other robot bases. Since this model has been discontinued by AgileX (as in May 2023), no new firmware will be released to fix this issue on Ranger Mini 1.0. Thus, a fix is provided for Ranger Mini 1.0 at the SDK level. You should use “class RangerMiniV1Robot” for Ranger Mini 1.0 to get consistent behaviors, as compared to Ranger and Ranger Mini 2.0.
Build SDK
Install dependencies
$ sudo apt-get update
$ sudo apt-get install build-essential git cmake libasio-dev
Build the package in a catkin workspace
$ cd <your-catkin-ws>/src
$ git clone https://github.com/westonrobot/ugv_sdk.git
$ cd ..
$ catkin_make
Build the package as a CMake project
$ git clone https://github.com/westonrobot/ugv_sdk.git
$ cd ugv_sdk
$ mkdir build && cd build
$ cmake .. && make
If you need Python binding, you can build the package with the following command
$ sudo apt-get install python3-dev
$ git clone --recursive https://github.com/westonrobot/ugv_sdk.git
$ cd ugv_sdk
# if you've checked out ugv_sdk without --recursive, you can run the following command to fetch the submodule
$ git submodule update --init --recursive
$ mkdir build && cd build
$ cmake -DPYTHON_BINDING=ON .. && make
Build the package as a Python package
For development and testing, you can use inplace build
$ python setup.py build_ext --inplace
It will generate library files in build/temp.linux-x86_64-3.10/lib (the name could be different based on your system) and in the directory where you run the command.
You can then use the library in a python script from the same directory directly. If you want to use the library in other directories, you can add the path to the PYTHONPATH environment variable.
File truncated at 100 lines see the full file