Scout Mini¶
Introduction¶
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¶
로봇은 서스펜션과 허브 모터 모듈로 구성되어 있습니다. 충돌 방지 펜스는 로봇의 전면에 설치되어 충돌시 전방을 보호하고 차체의 손상을 줄입니다. 로봇의 전면에는 흰색 조명이 설치되어 있습니다. 로봇의 후면에는 DC 전원 및 통신 인터페이스를 위한 방수 커넥터가 있습니다. 로봇과 외부 구성 요소를 유연하게 연결할 수 있고, 외부 요인으로부터 로봇 내부를 보호할 수 있습니다. 로봇의 상단에는 알루미늄 프로파일이 설치되어 있어, 추가 디바이스들을 쉽게 설치할 수 있습니다.
Indication¶
사용자는 전압 디스플레이, 조명을 통해서 로봇의 상태를 확인할 수 있습니다.
- Voltage: 배터리의 현재 전압은 로봇 후면에 있는 인터페이스에서 확인할 수 있습니다.
- Power on: 로봇 전면의 조명이 켜집니다. 조명은 RC 조종기와 통신 명령을 통해서 제어할 수 있습니다.
Electrical Interface¶
Scout Mini의 전기 인터페이스는 모두 로봇 후면에 있습니다. 전압 디스플레이, 전원 단자, CAN 통신 단자, 충전 인터페이스 및 전원 스위치가 있습니다.
- 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 조종기를 이용하여 로봇을 수동으로 조작할 수 있습니다. 모든 스위치를 중립 상태(상단으로 위치)로 두고, 두 개의 전원 버튼을 누르면 조종기를 켤 수 있습니다. 조종기에는 2개의 스로틀이 있습니다. S1과 S2를 이용하여 각각 선속도과 각속도 명령을 보낼 수 있습니다. SWB 스위치를 중간 위치에 있으면 원격 제어 모드가 활성화되고, 상단 위치에 있으면 명령 모드가 활성화됩니다. SWC 스위치를 이용하면 조명 제어 모드(NC, NO, BL)를 전환할 수 있습니다.
Important
RS232, CAN 통신을 사용하기 위해서는 SWB 스위치를 상단 위치로 변경해야합니다.
Light Control¶
로봇의 전면에 조명이 설치되어 있으며, 제어 인터페이스는 사용자에게 개방되어 있습니다.
- NC: 조명이 항시 꺼집니다.
- NO: 조명이 항시 켜집니다.
- BL: 조명이 점차적으로 켜졌다가 꺼졌다가를 반복합니다.
- CUSTOM: 지정한 밝기로 조명이 켜집니다.
Charging¶
사용자에게 로봇과 함께 10A 배터리 충전기를 제공합니다. 충전 절차는 아래와 같습니다.
- 로봇의 전원이 꺼져 있는지 확인하십시오.
- 로봇 후면의 충전 인터페이스와 배터리 충전기의 플러그를 연결하십시오.
- 배터리 충전기의 전원을 켜십시오.
Note
현재 배터리의 전압이 22V인 경우, 완전히 재충전하는데 약 1.5시간이 필요합니다. 완전 충전된 배터리의 전압은 29.2V 입니다.
Development¶
Scout Mini는 사용자가 개발할 수 있도록 CAN
, RS232
통신 인터페이스를 제공합니다.
통신 인터페이스를 이용하여 사용자가 직접 로봇을 제어할 수 있습니다.
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 네트워크 설정 방법은 아래와 같습니다.
- 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 주소입니다.
- 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
명령을 터미널 창에 입력해서 확인할 수 있습니다.