Former¶
Introduction¶
포머(Former) 는 ROS 기반의 모바일 플랫폼으로, 컴퓨터와 라이더 센서, 카메라, IMU 센서, 초음파 센서 등이 포함되어 있습니다. 사용자는 이를 바탕으로 SLAM 및 Navigation 등 다양한 데모 어플리케이션을 바로 사용할 수 있고, 추가 개발이 가능합니다.
What items are included¶
포머와 함께 포함되어 있는 기본 구성 요소들은 아래와 같습니다.
Item Name | Quantity |
---|---|
|
x 1 |
Lithium battery | x 1 |
Battery charger | x 1 |
Bluetooth controller | x 1 |
User manual | x 1 |
추가로 선택할 수 있는 옵션은 아래와 같습니다.
- 리튬이온(Li-ion) 배터리 업그레이드
- 자동 충전을 위한 도킹 스테이션
Technical Specifications¶
Mechanics | |
---|---|
Dimensions (L x W x H) | 404 x 404 x 308 mm |
Weight | 35 kg |
Ground Clearance | 60 mm |
Performance | |
Max. Speed | 1.5 m/s |
Max. Payload | 70 kg |
Type of Drive | Two wheels differential drive |
Drive Power | 300 W |
Working Environment | Indoor |
Battery and Power | ||
---|---|---|
Battery Type | LiFePo4 (default) | Li-ion | |
Capacity | 25.6 V 15 Ah | 25.9 V 31.2 Ah |
Run Time | 2 hours | 4 hours |
Charge Time | 1.5 hours | 2.5 hours |
Charging Interface | Battery charger, Docking station (optional) | |
User Power | 5 V at 3 A, 12 V at 5 A, 24 V at 5 A (total 195 W) |
System | |
---|---|
Communication | Ethernet, USB |
Feedback | Odometry, motor velocity and current, battery voltage, controller temperature |
System environment | Ubuntu, ROS, ROS2 |
Computer | Intel i5, 8GB RAM, 120GB SSD, Wi-Fi Adapter |
Controller | Bluetooth controller |
Sensors | |
---|---|
2D Lidar Sensor | SICK TiM571 |
RGBD Camera | Intel RealSense D435 |
IMU | Triaxial accelerometer, rate gyro and magnetometer |
Range Sensor | Ultrasonic sensor x 2 |
Overview¶
Robot Overview¶
포머는 2개의 BLDC 모터를 이용하여 차동 구동(Differential drive) 방식으로 제어됩니다. 로봇의 전면에는 라이더 센서, RGBD 카메라, 초음파 센서와 도킹을 위한 충전 단자가 있습니다. 로봇의 후면에는 비상 정지 스위치와 인터페이스 패널이 있습니다.
인터페이스 패널에는 배터리 충전기와 연결할 수 있는 충전 커넥터(Anderson connector)와 전원 스위치, 내부 컴퓨터와 연결되는 USB, HDMI, LAN 포트가 포함되어 있습니다.
Electrical Overview¶
로봇 내부에 있는 전원 보드(Power Distribution Board)는 24V 배터리와 연결됩니다. 보드는 배터리의 전압을 24V, 12V, 5V로 강압하여 로봇의 구성 요소에 공급합니다.
Tip
사용자는 Molex 커넥터(5557-02)를 이용하여 User Power와 추가 디바이스를 연결할 수 있습니다.
로봇의 전체 시스템은 ROS(Robot Operating System) 를 기반으로 통합되어 있으며, 로봇 내부의 컴퓨터에서 제어할 수 있습니다. 컴퓨터는 Serial 통신을 이용하여 모터 컨트롤러와 통신합니다. LAN 포트를 이용하여 TiM571 라이더 센서와 연결되고, USB 포트를 이용하여 D435 카메라, IMU 센서와 연결됩니다.
Component Overview¶
2D Lidar Sensor¶
포머의 전면에는 SICK TiM571 2D 라이더 센서가 설치되어 있습니다. 라이더 센서의 특징은 220°의 측정각, 25m의 측정거리, 15hz의 스캔 주파수, 0.33°의 분해능입니다. 라이더 센서는 TCP/IP 통신 인터페이스를 사용합니다.
RGBD Camera¶
포머의 전면에는 Intel RealSense D435 RGBD 카메라가 설치되어 있습니다. 카메라의 RGB 특징은 1920×1080의 해상도, 69.4°×42.5°×77°(H×V×D)의 FOV, 30 fps의 프레임입니다. 카메라의 depth 특징은 1280×720의 해상도, 86°×57°의 FOV, 90 fps의 프레임입니다. 카메라에는 통신을 위한 USB-C 타입 커넥터가 있습니다.
IMU Sensor¶
포머의 내부에는 9축 IMU 센서가 설치되어 있습니다. 센서는 확장 칼만 필터를 사용하여 결합된 가속도계, 자이로 속도, 자력계 데이터를 제공합니다. 센서의 특징은 ±2000°/s의 자이로 측정 범위, ±8 g의 가속도 측정 범위, ±12 gauss의 자력계 측정 범위입니다. 센서는 통신 TTL serial과 SPI 통신 인터페이스를 지원합니다.
Computer Overview¶
포머 내부에 설치된 컴퓨터의 기본 사용자 이름은 former
이고, 비밀번호는 roas
입니다.
설치되어 있는 운영체제는 Ubuntu 18.04 입니다.
Network¶
포머 내부에는 이더넷 포트의 확장을 위해 이더넷 허브가 설치되어 있습니다. 기본적으로 이더넷
허브에는 컴퓨터와 라이더 센서, 인터페이스 패널의 LAN 포트가 연결되어 있습니다. 사용자는
192.168.10.x
대역의 IP를 이용하여 인터페이스 패널의 LAN 포트를 사용할 수 있습니다.
Device Name | IP Address |
---|---|
Computer | 192.168.10.10 |
2D Lidar sensor | 192.168.10.11 |
Upstart¶
포머는 systemd를 사용하여, 컴퓨터가 부팅됐을 때 자동으로 ROS 시스템을 실행합니다.
Service Name | Description |
---|---|
former |
포머의 기본 시스템을 실행 (모터 컨트롤러와 통신, 차동 구동 컨트롤러, 오도메트리 계산 등) |
sensors |
포머에 설치되어 있는 센서들을 실행 (라이더 센서, RGBD 카메라, IMU, 초음파 센서 등) |
Upstart 기능은 아래의 명령어를 이용하여 수동으로 정지 및 시작할 수 있습니다.
$ sudo service former stop
$ sudo service former start
$ sudo service sensors start
ROS System Overview¶
로봇 응용 프로그램 개발을 위한 오픈 소스, 메타 운영체제인 ROS는, 로봇 응용 프로그램을 개발할 때 필요한 하드웨어 추상화, 하위 디바이스 제어, 일반적으로 사용되는 기능의 구현, 프로세스 간의 메시지 전달, 패키지 관리, 개발 환경에 필요한 라이브러리와 다양한 개발 및 디버깅 도구를 제공합니다.
ROS는 공식 지원 운영체제로 Ubuntu LTS를 지원합니다. 지원하는 Ubuntu 버전은 2년에 한 번씩 공개되는 Ubuntu LTS(Long Term Support) 주기에 맞추기로 하였고, 현재 Ubuntu 20.04 버전에 맞춰서 ROS Noetic 버전까지 공개되어 있습니다.
포머의 소프트웨어는 Ubuntu 18.04와 ROS Melodic 기반으로 합니다. 필수 라이브러리와 소프트웨어 패키지들은 포머 내부의 컴퓨터에 설치되어 있습니다. 소스 파일은 기본 워크스페이스로 설정된 폴더(~/catkin_ws/src) 안에 설치되어 있습니다.
포머가 제공하는 ROS API는 아래의 표와 같습니다.
Topic Name Name | Message Type | Description |
---|---|---|
/cmd_vel |
geometry_msgs/Twist |
포머를 구동시킬 수 있는 속도 명령 |
/odometry/filtered |
nav_msgs/Odometry |
바퀴의 엔코더와 IMU 데이터를 결합하여 계산된 odometry |
/former/feedback |
forme_msgs/Feedback |
모터 컨트롤러부터 받은 피드백 |
/scan |
sensor_msgs/LaserScan |
2D 라이더 센서의 데이터 |
/camera/color/image_raw |
sensor_msgs/Image |
RGBD 카메라의 RGB 데이터 |
/camera/depth/image_rect_raw |
sensor_msgs/Image |
RGBD 카메라의 depth 데이터 (2D) |
/camera/depth_registered/points |
sensor_msgs/PointCloud2 |
RGBD 카메라의 depth 데이터 (3D) |
/imu/data |
sensor_msgs/IMU |
가속도계, 자이로 속도 및 자력계 데이터를 기반으로 추정된 위치 데이터 |
/former/left_ultrasonic |
sensor_msgs/Range |
초음파 센서의 데이터 |
/former/right_ultrasonic |
Getting Started¶
첫 번째 단계는 포머의 전원을 켜는 것입니다. 포머의 후면에 있는 인터페이스 패널의 전원 버튼을 누르십시오. ROS는 분산 컴퓨팅 환경으로, 사용자의 컴퓨터에서 원격으로 포머의 ROS 인터페이스와 연결할 수 있습니다. 이를 위해서 먼저 포머의 컴퓨터와 사용자의 컴퓨터를 같은 네트워크에 연결하고, 작업 환경 설정과 ROS 네트워크 설정이 필요합니다.
ROS Environment¶
ROS Workspace Setup¶
- 포머의 컴퓨터에 설치된 패키지들(~/catkin_ws/src/former_ros)을 사용자 컴퓨터의 워크스페이스로 복사하십시오.
$ cd former_ros/ ~/catkin_ws/src/
- former_base 패키지의 lib 폴더 안에 있는 deb 파일들을 설치한 뒤에 패키지들을 빌드하십시오.
$ cd ~/catkin_ws/src/former_ros/former_base/lib $ sudo dpkg -i ros-melodic-roas-base-*
ROS Network Setup¶
- bashrc 스크립트 파일에서
ROS_MASTER_URI
,ROS_HOSTNAME
환경 변수를 설정하십시오.
$ vim ~/.bashrc # Add the following lines export ROS_MASTER_URI=http://<FORMER_IP>:11311 export ROS_HOSTNAME=<USER_COMPUTER_IP>
<FORMER_IP>
는 포머 컴퓨터의 IP 주소이고,<USER_COMPUTER_IP>
는 사용자 컴퓨터의 IP 주소입니다.
- Hostname과 IP 주소를 매핑하기 위하여
/etc/hosts
파일에 아래의 내용을 추가하십시오.
$ sudo vim ~/.bashrc # Add the following line <FORMER_IP> <FORMER_HOSTNAME>
<FORMER_IP>
는 포머 컴퓨터의 IP 주소이고,<FORMER_HOSTNAME>
는 포머 컴퓨터의 Hostname 입니다. 일반적으로 Hostname은 로봇의 시리얼 넘버로 설정되어 있습니다.Tip
Hostname은
hostname
명령을 터미널 창에 입력해서 확인할 수 있습니다.
위 설정 과정을 마치면 사용자의 컴퓨터와 포머의 ROS 인터페이스를 연결할 수 있습니다. 그리고 ssh를 이용하여 사용자의 컴퓨터에서 포머의 컴퓨터로 원격 접속이 가능합니다.
$ sudo apt install ssh
$ ssh former@<FORMER_IP>
Teleoperation¶
함께 제공되는 블루투스 컨트롤러를 이용하여 포머를 수동으로 조작할 수 있습니다. 컨트롤러의
가운데에 있는 PS4 로고 버튼을 누르면, 컨트롤러의 라이트가 점멸되면서 전원이 켜집니다.
포머의 컴퓨터와 페어링이 완료되면 컨트롤러의 라이트가 파란색으로 점등됩니다. 페어링을 다시
하기 위해서는 SHARE
버튼과 PS4
로고 버튼을 함께 눌러줘야 합니다.
L1
(Deadman Switch)와 좌우 스틱을 이용하여 로봇을 조작할 수 있습니다. L1
와 △
, X
버튼을 이용해서 속도를 조절할 수 있습니다. L1
와 △
버튼을 누르면 속도 20%(최대 속도 기준)
증가하며, L1
와 X
버튼을 누르면 속도가 20% 감소합니다.
Contact¶
로아스는 사용자가 포머를 원활하게 사용할 수 있도록 적극적으로 지원하고 있습니다. 포머와 관련된 기술 문의는 메일을 보내주시면 신속하게 대응해드리겠습니다. support@roas.co.kr
포머나 기타 로아스의 제품과 관련된 문의는 sales@roas.co.kr 로 메일을 보내주십시오.