Scout Mini

Introduction

scout mini

Scout Mini는 강력한 오프로드 성능과 컴팩트한 크기를 가진 로봇입니다. Scuit Mini의 크기는 Scout의 절반이지만 탁월한 오프로드 성능을 보여줍니다. CAN, RS232 통신을 지원하며, 2차 연구개발을 위하여 ROS, ROS2(Beta) 를 지원합니다. 상위 어플리케이션 개발을 위하여 Stereo Camera, Lidar, GPS, IMU 등과 같은 추가 구성 요소들을 Scout Mini에 설치할 수 있습니다. 이를 바탕으로 자율 주행 교육 및 연구, 실내외 보안 순찰, 환경 모니터링 등의 목적으로 사용할 수 있습니다.

Download Scout Mini (Differential) User Manual


Component List

Name Quantity
Robot body x 1
Battery charger (AC 220V) x 1
Aviation plug (male, 4-pin) x 2
USB to RS232 cable x 1
USB to CAN communication module x 1
Remote control transmitter x 1

Tech Specifications

Specs Values
L × W × H (mm) 627 x 549 x 248
Front and rear wheels separation (mm) 460
Right and left wheels separation (mm) 450
Weight of vehicle body (kg) 20
Battery type Lithium battery 24V 15Ah
Motor DC brushless 4 X 150W
Drive type Independent four-wheel drive
Suspension Independent suspension with single rocker arm
Steering Four-wheel differential steering
Safety equipment Servo brake/anti-collision tube
No-load highest speed (km/h) 10.8
Minimum turning radius Be able to turn on a pivot
Maximum climbing capacity 30°
Minimum ground clearance (mm) 107
Control mode Remote control / Control command mode
RC transmitter 2.4G/extreme distance 1km
Communication interface CAN / RS232

Overview

overview

Overview

로봇은 서스펜션과 허브 모터 모듈로 구성되어 있습니다. 충돌 방지 펜스는 로봇의 전면에 설치되어 충돌시 전방을 보호하고 차체의 손상을 줄입니다. 로봇의 전면에는 흰색 조명이 설치되어 있습니다. 로봇의 후면에는 DC 전원 및 통신 인터페이스를 위한 방수 커넥터가 있습니다. 로봇과 외부 구성 요소를 유연하게 연결할 수 있고, 외부 요인으로부터 로봇 내부를 보호할 수 있습니다. 로봇의 상단에는 알루미늄 프로파일이 설치되어 있어, 추가 디바이스들을 쉽게 설치할 수 있습니다.


Indication

사용자는 전압 디스플레이, 조명을 통해서 로봇의 상태를 확인할 수 있습니다.

  • Voltage: 배터리의 현재 전압은 로봇 후면에 있는 인터페이스에서 확인할 수 있습니다.
  • Power on: 로봇 전면의 조명이 켜집니다. 조명은 RC 조종기와 통신 명령을 통해서 제어할 수 있습니다.

Electrical Interface

Scout Mini의 전기 인터페이스는 모두 로봇 후면에 있습니다. 전압 디스플레이, 전원 단자, CAN 통신 단자, 충전 인터페이스 및 전원 스위치가 있습니다.

electrical interface

Electrical interface

aviation connector
  • Aviation connector
Pin No. Pin Type Definition Remarks
1 Power VCC Power positive, 23-29.2V, Max 5A
2 Power GND Power negative
3 CAN CAN_H CAN bus high
4 CAN CAN_L CAN bus low

Remote Control

rc transmitter

RC transmitter

RC 조종기를 이용하여 로봇을 수동으로 조작할 수 있습니다. 모든 스위치를 중립 상태(상단으로 위치)로 두고, 두 개의 전원 버튼을 누르면 조종기를 켤 수 있습니다. 조종기에는 2개의 스로틀이 있습니다. S1과 S2를 이용하여 각각 선속도과 각속도 명령을 보낼 수 있습니다. SWB 스위치를 중간 위치에 있으면 원격 제어 모드가 활성화되고, 상단 위치에 있으면 명령 모드가 활성화됩니다. SWC 스위치를 이용하면 조명 제어 모드(NC, NO, BL)를 전환할 수 있습니다.

Important

RS232, CAN 통신을 사용하기 위해서는 SWB 스위치를 상단 위치로 변경해야합니다.


Light Control

로봇의 전면에 조명이 설치되어 있으며, 제어 인터페이스는 사용자에게 개방되어 있습니다.

  • NC: 조명이 항시 꺼집니다.
  • NO: 조명이 항시 켜집니다.
  • BL: 조명이 점차적으로 켜졌다가 꺼졌다가를 반복합니다.
  • CUSTOM: 지정한 밝기로 조명이 켜집니다.

Coordinate System

coordinate

Coordinate

Scout Mini의 기준 좌표계는 위와 같습니다. 로봇의 차체는 좌표계의 X축과 평행합니다.


Charging

사용자에게 로봇과 함께 10A 배터리 충전기를 제공합니다. 충전 절차는 아래와 같습니다.

  1. 로봇의 전원이 꺼져 있는지 확인하십시오.
  2. 로봇 후면의 충전 인터페이스와 배터리 충전기의 플러그를 연결하십시오.
  3. 배터리 충전기의 전원을 켜십시오.

Note

현재 배터리의 전압이 22V인 경우, 완전히 재충전하는데 약 1.5시간이 필요합니다. 완전 충전된 배터리의 전압은 29.2V 입니다.


Development

Scout Mini는 사용자가 개발할 수 있도록 CAN, RS232 통신 인터페이스를 제공합니다. 통신 인터페이스를 이용하여 사용자가 직접 로봇을 제어할 수 있습니다.


Dimensions

dimensions

Dimensions

ROS Packages

Scout Mini의 ROS 인터페이스를 구성하고 있는 패키지들은 다음과 같습니다.

  • scout_lib : 로봇 MCU와의 시리얼 통신을 위한 라이브러리와 피드백 데이터를 바탕으로 구현된 진단(diagnostic) 노드를 포함하고 있습니다.
  • scout_diff_controller : Differential drive controller를 구현한 패키지입니다.
  • scout_mini_base :
    로봇의 전체 ROS 시스템을 실행시키는 실행(launch) 파일을 포함하고 있습니다.

Note

scout_mini_base 패키지에 있는 실행 파일(base.launch)을 이용해서 전체 ROS 시스템을 실행 시킬 수 있습니다. 그리고 실행 파일의 robot 변수 설정틀 통해서 로봇의 모델(Diff, Omni)을 선택할 수 있습니다.

  • scout_mini_control : 로봇의 컨트롤러를 실행시키는 실행(launch) 파일을 포함하고 있습니다.
  • scout_mini_description : 로봇의 좌표 체계를 정의한 URDF 파일과 시각화를 위한 3D mesh 파일을 포함하고 있습니다.
  • scout_mini_msgs : 로봇의 ROS 인터페이스에서 사용하는 메세지 파일을 포함하고 있습니다.
  • scout_mini_teleop : 블루투스 컨트롤러를 이용해서 로봇을 원격 조작할 수 있는 패키지입니다.

ROS API Overview

사용자가 상위 어플리케이션을 쉽게 개발할 수 있도록 ROS 표준 인터페이스를 제공합니다. REPs(ROS Enhancement Proposals) 를 준수하여 호환성과 접근성을 높였습니다.

Feedback Interface

로봇의 피드백 데이터에는 3가지가 있습니다. 로봇 베이스에 대한 피드백, 모터에 대한 피드백, 조명 제어에 대한 피드백이 있습니다.

  • rostopic name: /scout_mini/base_feedback
Header header

string robot_name

BaseState base_state
  string state             # NORMAL, STOP
  string control_mode      # REMOTE, CAN, SERIAL, NONE
  float64 battery_voltage  # Actual voltage (V)
  string battery_state     # NORMAL, WARNING, FAILURE

float64 linearX_velocity  # LinearX velocity (m/s)
float64 linearY_velocity  # LinearY velocity (m/s)
float64 angular_speed     # Angular speed (rad/s)
  • rostopic name: /scout_mini/motor_feedback
Header header

MotorState[4] motor_states
  string id             # front_right, front_left, rear_left, rear_right
  float64 current       # Actual current (A)
  float64 velocity      # Actual velocity of motor (rad/s)
  float64 temperature   # Actual temperature of motor (C)
  string communication  # Communication state with motor

string current_state      # Current state of motors (NORMAL, FAILURE)
string temperature_state  # Temperature state of motors (NORMAL, FAILURE)
  • rostopic name: /scout_mini/light_feedback
Header header

bool control_enable  # Lighting control enable flag

LightState[2] light_states
  string id         # FRONT, REAR
  string mode       # The current mode (NC, NO, BL, CUSTOM)
  uint8 brightness  # The current brightness of light (0 - 100)

Diagnostic Interface

사용자가 로봇의 상태를 모니터링할 수 있도록 진단(diagnostic) 정보를 제공합니다. 진단 정보는 topic과 rqt gui를 이용해서 확인할 수 있습니다. rqt gui를 실행시키는 명령어는 아래와 같습니다.

$ rosrun rqt_robot_monitor rqt_robot_monitor

Base Interface

로봇은 geometry_msgs/Twist 메세지 타입의 /scout_base_controller/cmd_vel 토픽을 구독(subscribe)합니다. 사용자는 이 토픽을 이용해서 로봇을 제어할 수 있습니다.

사용자는 /scout_base_controller/cmd_vel 토픽을 바로 이용할 수 있지만, 일반적으로 어플리케이션은 /teleop/cmd_vel, /move_base/cmd_vel, /cmd_vel 토픽을 이용합니다. 이 토픽들의 데이터는 설정된 우선 순위에 따라 /scout_base_controller/cmd_vel 토픽으로 전달됩니다. 이와 같은 mux 시스템은 twist_mux 패키지를 이용하여 구현되어 있습니다.

Light Interface

로봇의 전면과 후면에 설치되어 있는 조명의 제어 인터페이스는 사용자에게 개방되어 있습니다. 사용자는 /scout_base/light_command 토픽을 이용해서 조명을 제어할 수 있습니다.

# Lighting Mode
# 0: NC / 1: NO / 2: BL / 3: CUSTOM

uint8 front_mode        # Lighting Mode
uint8 front_brightness  # Only for CUSTOM mode

uint8 rear_mode         # Lighting Mode
uint8 rear_brighteness  # Only for CUSTOM mode

Note

Scout Mini의 경우에는, 조명이 로봇의 전면에만 조명이 설치되어 있기 때문에 후면 조명 인터페이스는 동작하지 않습니다.


Getting Started

Turn on Scout Mini

  • 로봇의 후면에 있는 전원 스위치를 누르십시오.
  • 로봇의 전원이 켜지면, 배터리 잔량 디스플레이와 전면 조명이 켜집니다.
  • RC 조종기의 SWB 스위치를 이용하여 Remote 또는 Serial 모드로 변경하십시오.

Log In

로봇이 네트워크에 연결되면, ssh를 이용해서 원격으로 접속할 수 있습니다.

$ sudo apt install ssh
$ ssh scout@<ROBOT_IP>

<ROBOT_IP> 는 로봇 PC의 IPv4 네트워크 주소이고, 로봇 PC의 비밀번호는 onground 입니다.

Note

로봇을 네트워크에 연결하기 위해서 모니터가 필요합니다.

ROS Network Setup

ROS는 분산 컴퓨팅 환경으로, 외부 디바이스에서 원격으로 ROS 인터페이스에 접근할 수 있습니다. ROS 네트워크 설정 방법은 아래와 같습니다.

  1. bashrc 스크립트 파일에서 ROS_MASTER_URI, ROS_HOSTNAME 환경 변수를 설정하십시오.
$ vim ~/.bashrc

# Add the following lines
export ROS_MASTER_URI=http://<ROBOT_IP>:11311
export ROS_HOSTNAME=<REMOTE_IP>

<ROBOT_IP> 는 로봇 PC의 IP 주소이고, <REMOTE_IP> 는 원격 PC의 IP 주소입니다.

  1. Hostname과 IP 주소를 매핑하기 위하여 /etc/hosts 파일에 아래의 내용을 추가하십시오.
$ sudo vim ~/.bashrc

# Add the following line
<ROBOT_IP>    <ROBOT_HOSTNAME>

<ROBOT_IP> 는 로봇 PC의 IP 주소이고, <ROBOT_HOSTNAME> 는 로봇 PC의 Hostname 입니다. 일반적으로 Hostname은 로봇의 시리얼 넘버로 설정되어 있습니다.

Tip

Hostname은 hostname 명령을 터미널 창에 입력해서 확인할 수 있습니다.

Visualize Data

ROS 네트워크 설정이 완료되면 원격 PC에서 rostopic 데이터를 확인할 수 있습니다. 또한 RViz 를 이용하여 시각화된 데이터를 확인할 수 있습니다.

$ rviz
rviz

RViz