mirror of
https://github.com/westonrobot/ugv_sdk
synced 2023-04-08 06:32:14 +08:00
108 lines
3.6 KiB
Markdown
Executable File
108 lines
3.6 KiB
Markdown
Executable File
# UGV SDK
|
|
|
|

|
|

|
|
|
|
## Introduction
|
|
|
|
This software package provides a C++ interface to communicate with the mobile platforms from Weston Robot and AgileX Robotics, 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 [Weston Robot](https://www.westonrobot.com/)
|
|
- Copyright (c) 2020 [AgileX Robotics](http://www.agilex.ai/?lang=zh-cn)
|
|
|
|
Please create an issue on Github at https://github.com/westonrobot/ugv_sdk/issues if you encounter any problems when using the packages.
|
|
|
|
**Supported robot platforms**
|
|
|
|
* Scout
|
|
* Scout Mini
|
|
* Hunter
|
|
* Tracer
|
|
* Bunker
|
|
* Ranger Mini
|
|
|
|
**Supported environments**
|
|
|
|
* Architecture: x86_64/arm64
|
|
* OS: Ubuntu 16.04/18.04/20.04
|
|
* ROS: Kinetic/Melodic/Noetic
|
|
|
|
It should also work in other similar Linux environments but only the above listed environments are regularly tested.
|
|
|
|
**Communication protocol**
|
|
|
|
| Robot | Protocol V1 | Protocol V2 | UART | CAN | Support Status |
|
|
| :---------------: | :---------: | :---------: | :---: | :---: | :------------: |
|
|
| Scout 1.0 | Y | - | TODO | Y | Discontinued |
|
|
| Scout 2.0 | Y | Y | TODO | 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 | TODO | Y | Active |
|
|
| Ranger Mini | - | Y | - | Y | Active |
|
|
|
|
**Important Note:** Currently we're transitioning the communication protocol from version 1 to version 2. Please check with Weston Robot or AgileX Robotics to confirm which version your robot is using.
|
|
|
|
* V1 Protocol: master branch of scout_ros and ugv_sdk
|
|
* V2 Protocol: v2.x branch of scout_ros and ugv_sdk
|
|
|
|
## Build SDK
|
|
|
|
### Install dependencies
|
|
|
|
```
|
|
$ sudo apt-get update
|
|
$ sudo apt-get install build-essential git cmake libasio-dev
|
|
```
|
|
|
|
### Build the package in catkin workspace
|
|
|
|
```
|
|
$ cd <your-catkin-ws>/src
|
|
$ git clone -b next https://github.com/westonrobot/ugv_sdk.git
|
|
$ cd ..
|
|
$ catkin_make
|
|
```
|
|
|
|
## Setup CAN-To-USB adapter
|
|
|
|
1. Enable gs_usb kernel module
|
|
```
|
|
$ sudo modprobe gs_usb
|
|
```
|
|
2. Bringup can device
|
|
```
|
|
$ sudo ip link set can0 up type can bitrate 500000
|
|
```
|
|
3. If no error occured during the previous steps, you should be able to see the can device now by using command
|
|
```
|
|
$ ifconfig -a
|
|
```
|
|
4. Install and use can-utils to test the hardware
|
|
```
|
|
$ sudo apt install can-utils
|
|
```
|
|
5. Testing command
|
|
```
|
|
# receiving data from can0
|
|
$ candump can0
|
|
# send data to can0
|
|
$ cansend can0 001#1122334455667788
|
|
```
|
|
|
|
Two scripts inside the "./scripts" folder are provided for easy setup. You can run "./setup_can2usb.bash" for the first-time setup and run "./bringup_can2usb.bash" to bring up the device each time you unplug and re-plug the adapter.
|
|
|
|
## Demo Code
|
|
|
|
You can find demo code for each robot in "demo" folder. For example, run the demo for Scout robot
|
|
|
|
```
|
|
$ ./bin/demo_scout_robot can0
|
|
```
|
|
|
|
## Reference
|
|
|
|
* [CAN command reference in Linux](https://rdu.im/docs/canbus)
|