# 3. Getting Started

This Section mainly introduces the basic operation and use of the SCOUT MINI platform and also introduces how to conduct secondary development of the vehicle body via the external CAN ports and CAN bus protocol.

### 3.1 Use and operation

The basic operating procedure of startup is shown as follows:

#### Check

Check the condition of the vehicle body. Check whether there are significant anomalies; if so, please contact the after-sale service personnel for support.

#### Startup

Press the SCOUT MINI power button and wait for a few seconds; Move SWB to the middle and choose the position to be controlled;&#x20;

You can try to manually switch the light mode and make sure that the mode selection is correct;&#x20;

Try to gently push the left rocker a little forward, then you can see the vehicle moves forward slowly;&#x20;

Try to gently push the left rocker a little backward, then you can see the vehicle moves backward slowly;

Release the left rocker, then the vehicle will stop;&#x20;

Try to gently push the right rocker a little leftward, then you can see the vehicle rotates leftward slowly;&#x20;

Try to gently push the right rocker a little rightward, then you can see the vehicle rotates rightward slowly;&#x20;

Release the right rocker, then the vehicle will stop;&#x20;

Try to control freely in the relatively open area, and get familiarized with the vehicle moving speed.

#### Shutdown

Press the SCOUT MINI power button to release.

#### Basic operating procedure of remote control

After SCOUT MINI mobile chassis is started correctly, turn on the RC transmitter and select the remote-control mode. Then, the SCOUT MINI platform motion can be controlled by the RC transmitter.

### 3.2 Charging

SCOUT MINI is equipped with a 10 A charger by default to meet customers' charging demand. The detailed operating procedure of charging is shown as follows:

> Make sure SCOUT MINI chassis is in power-off state.&#x20;
>
> Insert the charger plug into the charging interface on the rear of the vehicle;&#x20;
>
> Connect the charger to power supply and turn on the switch in the charger. Then, the robot enters the charging state.

Note: For now, the battery needs about 1.5 hours to be fully recharged from 22 V, and the voltage of fully-recharged battery is about 29.2 V; the recharging duration is calculated as 15 AH ÷ 10A = 1.5h.

### 3.3 Development

SCOUT MINI provides CAN interfaces for customization and development. Users can send command to control the chassis through the CAN interface.

#### 3.3.1 CAN cable connection

SCOUT MINI provides a aviation plug as shown in Picture 3.2, the definitions of the wire are Yellow to CANH and Blue to CANL&#x20;

![Figure 3.2 Schematic diagram of aviation plug male connector](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FVta9blCiu4DoLE60fEwQ%2Fimage.png?alt=media\&token=2ccb7e96-ed94-4bf9-a739-e2565f5ef611)

Note: There is only the rear external extension interface available for the current SCOUT MINI version and it is able to provide up to 5A current.

#### 3.3.2 Implementation of CAN command control

Power on SCOUT MINI and turn on the remote control, put the SWB switch to the top position to enable command control mode, so that SCOUT MINI would receive the data from the CAN interface, the host computer is able to receive the current status of the chassis with the can interface, please refer to the CAN protocol as below for detail.

#### 3.3.3 CAN protocol

SCOUT MINI adopts CAN2.0B communication standard which has a communication baud rate of 500K and Motorola message format. Via external CAN bus interface, the moving linear speed and the rotational angular speed of chassis can be controlled; SCOUT MINI will feedback the current motion status information, SCOUT MINI chassis status information, etc. The protocol includes system status feedback frame, movement control feedback frame and control frame, the contents are shown as follows: The system status feedback command includes the feedback information about current status of chassis, control mode status, battery voltage and system failure. The description is given in Table 3.1.

![Table 3.1 SCOUT MINI Chassis Status Feedback Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FwRmXHZ0mqQXTc840OBMv%2Fimage.png?alt=media\&token=75462ca2-4d5e-4980-937e-93c62eb040ea)

![Table 3.2 Description of Failure Information](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FPx36mTlhLRVvxQkshXc1%2Fimage.png?alt=media\&token=fbebbf4d-e095-4584-9170-c47bc4504ddf)

\[1]:It is available for V1.2.8 version or later, firmware upgrade is necessary for previous version. \[2]:The buzzer will sound when the battery low-voltage warning , but the chassis is still controllable, and the power supply would be cut off when it comes to Low-voltage failure.

The motion control feedback frame includes the feedback of moving and rotation speed of chassis. Please refer to Table 3.3 for detail.

![Table 3.3 Motion Control Feedback Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FNd2XeQNfeX8doAnQcjEV%2Fimage.png?alt=media\&token=9b1bdad2-7c49-4516-b97d-693be5635895)

The motion control frame includes the controlling of linear speed and angular speed . Please refer to Table 3.4 for detail.

![Table 3.4 Motion Command Control Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FAQxkPGAFCY0w0YWzQyQw%2Fimage.png?alt=media\&token=fea97212-412a-4140-9b2a-94b171c514db)

The control mode setting frame is used to set the terminal interface. Please refer to Table 3.5 for detail.

![Table 3.5 Control Mode Setting Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FY1D847dEAZbuwExuktA9%2Fimage.png?alt=media\&token=ed38b4a2-756a-4503-84c4-665023f387be)

Description for control mode If SCOUT MINI is power on without the connection with remote control, the default control mode is stand by, the chassis would receive the control command only and not respond to the speed command, enable the CAN control mode before using the CAN control. If you power on the remote control, then the remote control has the highest priority, the chassis would switch the control mode based on remote control only.

The status clear frame is used to clear the system failures, please refer to table 3.6 for detail.

![Table 3.6 Status Clear Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2F4uim2US3kvyYJ1A4VwWj%2Fimage.png?alt=media\&token=77cc6380-438a-4e15-a3e0-a70e951084e1)

Note3]Testing data : The following data is sample for testing only.

1.The chassis moves forward at 0.15m/s.

![](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FRdm4QgGOChKcrlGzFlVM%2Fimage.png?alt=media\&token=54c3adeb-51b7-4041-bed5-36258242c591)

2.The chassis rotates at 0.2rad/s.

![](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FWX2FTW0SNqC00HrAWTel%2Fimage.png?alt=media\&token=964fce5b-0947-421f-b006-c972ae56c707)

In addition to the feedback of chassis status, there are also feedback data of the motor current information、encoder data and temperature. Please refer to the table below for the frame detail.

The number of the motor is shown in the picture below:

![Picture3.0 Motor ID Feedback](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2Ff6aQxwQyK7kBVu6vw8K0%2Fimage.png?alt=media\&token=0d92ebe7-fa30-43b5-a967-93c56e6e3b33)

![Table 3.7 Motor Rotational Speed and Current Feedback Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FAhU8gYWsEjILOuhs8bcb%2Fimage.png?alt=media\&token=76017990-cb16-4617-8fa7-7ad4ddefac33)

![Table 3.8 Motor Drive Status Feedback Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2Ftd8twffNWU9ZcJVzgtVP%2Fimage.png?alt=media\&token=7c2cac53-3cc3-475f-acc2-ce2726e03ae8)

![Table 3.9 Drive Status](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2F4PF5hRVCjLtKBFj1B5od%2Fimage.png?alt=media\&token=419c7d71-1465-4f27-8a24-2dbefce69840)

The front and the external light are also controlled by command, please refer to the Table3.10 below for detail.

![Table3.10 Light Control Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FuFjcLD9dWyH4GdlSXoSY%2Fimage.png?alt=media\&token=fff4f0c2-78bc-4a26-b1e3-d77c5322007b)

Note\[5] This value is only valid with customization mode

![Table 3.11 Light Control Feedback Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2F9cKaSkVoii8zh3szNjV4%2Fimage.png?alt=media\&token=f795259f-6a39-45a7-ae99-a0aec0459aae)

![Table 3.12 System Version Enquiry Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FVCOl4ZuTxRDKYucEMtZ4%2Fimage.png?alt=media\&token=a2ef2fec-5a88-4dc6-b3df-298b313778fa)

![Table 3.13 System Version Enquiry Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2F0SaAB6Qk3xwyTVazhjBt%2Fimage.png?alt=media\&token=3320d0c6-ab72-4bf3-94c6-7aafff856ade)

![Table 3.14 Odometer Feedback Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FOFSpmm1fWvIUZhBb4uQ8%2Fimage.png?alt=media\&token=4f360095-00a1-44db-9a6d-0c697acaee4f)

![Table 3.15 Remote Control Feedback Frame](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FrTCxSfpOgMd4wZlrQc6w%2Fimage.png?alt=media\&token=04009557-771a-4a13-8978-5ae79ad14ae6)

### 3.4 Firmware upgrade

To facilitate the customer's upgrading of the firmware version used by SCOUT MINI and bring the customer a better experience, SCOUT MINI provides a hardware interface for the firmware upgrading, and the corresponding client software as well. A screenshot of this application is shown in Figure 3.3.

![Figure 3.3 Client Interface of Firmware Upgrade](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FMKoMIwdsNcXhnnJW5Ctr%2Fimage.png?alt=media\&token=337f65b4-0aa3-4a77-8ec6-e94b1bf16579)

#### Upgrade preparation:

Serial cable X 1&#x20;

USB-to-serial port X 1&#x20;

SCOUT chassis X 1&#x20;

Computer (Windows operating system) X 1

#### Firmware update software

{% embed url="https://github.com/agilexrobotics/agilex_firmware" %}

#### Upgrade procedure:

Before connection, ensure the robot chassis is powered off;&#x20;

Connect the serial cable onto the serial port atinternal SCOUT MINI chassis;

Connect the serial cable to the computer;&#x20;

Open the client software;&#x20;

Select the port number;

&#x20;Power on SCOUT MINI chassis, and immediately click to&#x20;

start connection (SCOUT MINI chassis will wait for 6 s before power-on; if the waiting time is more than 6 s, it will enter the application); if the connection succeeds, "connected successfully" will be prompted in the text box; Load Bin file;&#x20;

Click the Upgrade button, and wait for the prompt of upgrade completion;&#x20;

Disconnect the serial cable, power off the chassis, and then turn the power off and on again.

### 3.5 SCOUT MINI ROS Package

ROS provide some standard operating system services, such as hardware abstraction, low-level device control, implementation of common function, interprocess message and data packet management. ROS is based on a graph architecture, so that process of different nodes can receive, and aggregate various information (such as sensing, control, status, planning, etc.) Currently ROS mainly support UBUNTU.

### Development Preparation

#### Hardware preparation

CANlight can communication module ×1&#x20;

Thinkpad E470 notebook ×1&#x20;

SCOUT MINI mobile robot chassis ×1&#x20;

SCOUT MINI remote control FS-i6s ×1&#x20;

SCOUT MINI top aviation power socket ×1

#### Use example environment description

Ubuntu 16.04 LTS (This is a test version, tasted on Ubuntu 18.04 LTS)&#x20;

ROS Kinetic (Subsequent versions are also tested)&#x20;

Git

### Hardware connection and preparation

Lead out the CAN wire of the SCOUT MINI top aviation plug or the tail plug, and connect CAN\_H and CAN\_L in the CAN wire to the CAN\_TO\_USB adapter respectively; Turn on the knob switch on the SCOUT MINI mobile robot chassis, and check whether the emergency stop switches on both sides are released； Connect the CAN\_TO\_USB to the USB hub of the laptop. The connection diagram is shown in Figure 3.4.

![](https://1437977-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYfQt8hYGtGvq988sB00p%2Fuploads%2FlkdxdwEg6Wl8PXIfwQHP%2Fimage.png?alt=media\&token=e737cdb0-8293-429b-ae21-9532f052b0f6)

#### ROS installation and environment setting

For installation details, please refer to [http://wiki.ros.org/KINETIC/INSTALLATION/UBUNTU](http://wiki.ros.org/KINETIC/INSTALLATION/UBUNTU\[]\(\))

### Test CANABLE hardware and CAN communication

#### Setting CAN-TO-USB adaptor

Enable gs\_usb kernel module&#x20;

$ sudo modprobe gs\_usb&#x20;

Setting 500k Baud rate and enable can-to-usb adaptor&#x20;

$ sudo ip link set can0 up type can bitrate 500000&#x20;

If no error occurred in the previous steps, you should be able to use the command to view the can device immediately $ ifconfifig -a&#x20;

Install and use can-utils to test hardware&#x20;

$ sudo apt install can-utils&#x20;

If the can-to-usb has been connected to the SCOUT MINI robot this time, and the car has been turned on, use the following commands to monitor the data from the SCOUT MINI&#x20;

$ candump can0

Please refer to:

\[1][https://github.com/agilexrobotics/agx\_sdk](https://github.com/agilexrobotics/agx_sdk)

\[2][https://wiki.rdu.im/\_pages/Notes/Embed%02ded-System/Linux/can-bus-in-linux.html](https://wiki.rdu.im/_pages/Notes/Embed%02ded-System/Linux/can-bus-in-linux.html)

#### AGILEX SCOUT MINI ROS PACKAGE download and compile

#### Download ros package

$ sudo apt install ros-$ROS\_DISTRO-controller-manager&#x20;

$ sudo apt install ros-$ROS\_DISTRO-teleop-twist-key-board

$ sudo apt install ros-$ROS\_DISTRO-joint-state-publish-er-gui&#x20;

$ sudo apt install libasio-dev

#### Clone compile SCOUT MINI code

$ cd \~/catkin\_ws/src&#x20;

$ git clone https://github.com/agilexrobot-ics/scout\_mini\_ros.git

$ cd ..&#x20;

$ catkin\_make&#x20;

Please refer to: https://github.com/agilexrobot-ics/scout\_mini\_ros

#### Start the ROS node

Start the based node&#x20;

$ roslaunch scout\_bringup scout\_minimal.launch&#x20;

Start the keyboard remote operation node&#x20;

$ roslaunch scout\_bringup scout\_teleop\_key-board.launch&#x20;

Start the gazebo bionic node&#x20;

$ roslaunch scout\_bringup scout\_mini\_base\_gazebo\_- sim.launch



