TI/AM62A

[09] AM62A-SK ROBOTICS SDK

728x90

Robotics SDK는 TI Sitara 프로세서용 로봇 소프트웨어 개발 환경을 제공합니다. 또한 로봇 소프트웨어 개발에 활용할 수 있는 소프트웨어 빌딩 블록과 예제 데모도 제공합니다. 사용되는 ROS 버전은 Humble이며, ROBOTICS SDK는 Docker 컨테이너 환경에서 실행됩니다.

테스트 환경

  • Ubuntu 22.04
  • SK-AM62A-LP
  • 09_01_00_07 Processor SDK

 

HOST PC 사전 작업 

Docker 설치

 

1. 우분투 시스템 패키지 업데이트

sudo apt-get update

2. 필요한 패키지 설치

sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

3. Docker의 공식 GPG키를 추가

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

4. Docker의 공식 apt 저장소를 추가

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

5. 시스템 패키지 업데이트

sudo apt-get update

6. Docker 설치

sudo apt-get install docker-ce docker-ce-cli containerd.io

7. Docker 설치 확인

sudo systemctl status docker

 

Taget Board  설정

cd /opt/edgeai-gst-apps/scripts
source ./install_robotics_sdk.sh

AM62A SDK 안에있는 스크립트 파일을 실행하게 되면 ROS 2 Docker 컨테이너 환경에는 ROS Humble과 필요한 라이브러리 및 도구가 설치됩니다.

ROS 2 Humble용 Docker 이미지를 빌드하고 실행하기 위한 스크립트를 생성하려면 아래 명령어를 실행

make scripts ROS_VER=2

상기 작업 진행 후 docker_build_ros2.sh, docker_run_ros2.sh 두 개의 스크립트 파일이 생성되었는 지 확인

Docker 이미지를 빌드하려면 아래 명령어 진행

 ./docker_build_ros2.sh

이 단계는 네트워크 속도에 따라 다소 시간이 걸립니다. 

*필자는 30분 이상 소요

 

다음 Docker 컨테이너를 시작/실행하려면 아래 쉘 스크립트 파일을 실행합니다.

./docker_run_ros2.sh

docker_run_ros2.sh 스크립트에는 TI 프로세서의 모든 코어와 하드웨어 가속기를 활용하는 데 필요한 모든 설정이 포함되어 있으므로 스크립트를 사용하여 Docker 컨테이너를 시작하는 것이 중요합니다 .

Docker 컨테이너 내부에서 ROS 애플리케이션을 빌드하기 위해서는 아래 명령어를 실행해야 한다.

root@j7-docker:~/j7ros_home/ros_ws$ colcon build --base-paths /opt/robotics_sdk/ros2 --executor sequential --cmake-force-configure
root@j7-docker:~/j7ros_home/ros_ws$ source install/setup.bash

 

HOST PC 설정

Target Board에서 진행했던 비슷한 방식으로 스크립트를 사용하여 HOST Ubuntu PC에 설정할 수 있습니다.

user@pc:~$ wget -O init_setup.sh https://git.ti.com/cgit/processor-sdk-vision/jacinto_ros_perception/plain/init_setup.sh
user@pc:~$ source ./init_setup.sh REL.09.00.00

init_setup.sh 스크립트를 실행하면 작업 디렉터리로 ${HOME}/j7ros_home 으로 설정됩니다.

ROS 2 Humble용 Docker 이미지를 빌드하고 실행하기 위한 bash 스크립트를 생성하려면 아래 명령어를 실행한다.

user@pc:~/j7ros_home$ make scripts ROS_VER=2

Ubuntu PC가 Nvidia GPU 드라이버를 사용하는 경우 인수를 하나 더 추가한다.

user@pc:~/j7ros_home$ make scripts ROS_VER=2 GPUS=y

상기 작업 진행 후 docker_build_ros2.sh, docker_run_ros2.sh 두 개의 스크립트 파일이 생성되었는 지 확인

ROS 2 Docker 이미지를 빌드

user@pc:~/j7ros_home$ ./docker_build_ros2.sh

Docker 이미지를 빌드하는 데 시간이 소요된다.

 

이어서 ROS 2 Docker 컨테이너를 실행합니다.

user@pc:~/j7ros_home$ ./docker_run_ros2.sh

ROS 빌드 및 환경 설정을 진행합니다.

root@pc-docker:~/j7ros_home/ros_ws$ colcon build --base-paths src/robotics_sdk/ros2
root@pc-docker:~/j7ros_home/ros_ws$ source install/setup.bash

데모 애플리케이션 실행

/dev/video-{usb,rpi,imx390}-camX 및 /dev/v4l-{rpi,imx390}-subdevY 로 인식되는 카메라를 지정하기 위해서는 cam_id:=X 와 subdev_id:=Y 인수를 사용합니다.

 

다음에서 [Target] 및 [HOST PC]는 대상 Target Board 또는 HOST PC에서 실행되어야 하는 단계를 나타냅니다.

Semantic Segmentation CNN 애플리케이션 실행

USB 모노 카메라로 Semantic Segmentation  데모를 시작하려면 ROS 2 컨테이너 내에서 다음 시작 명령을 실행

root@j7-docker:~/j7ros_home/ros_ws$ ros2 launch ti_vision_cnn gscam_semseg_cnn_launch.py

또는 대상 호스트 Linux에서 직접 다음을 실행할 수 있습니다.

root@am6x-sk:~/j7ros_home$ ./docker_run_ros2.sh ros2 launch ti_vision_cnn gscam_semseg_cnn_launch.py

[HOST PC] 영상을 보기 위해 PC의 ROS 2 컨테이너에서 명령 실행

root@pc-docker:~/j7ros_home/ros_ws$ ros2 launch ti_viz_nodes rviz_semseg_cnn_launch.py

Object Detection CNN 애플리케이션 실행

[Target] USB 모노 카메라로 Object Detection 데모를 시작하려면 ROS 2 컨테이너 내에서 명령을 실행

root@am6x-sk:~/j7ros_home$ ./docker_run_ros2.sh ros2 launch ti_vision_cnn gscam_objdet_cnn_launch.py

또는 대상 호스트 Linux에서 직접 다음을 실행할 수 있습니다.

root@j7-docker:~/j7ros_home/ros_ws$ ros2 launch ti_vision_cnn gscam_objdet_cnn_launch.py

[HOST PC] 영상을 보기 위해 PC의 ROS 2 컨테이너에서 아래 명령 실행

root@pc-docker:~/j7ros_home/ros_ws$ ros2 launch ti_viz_nodes rviz_objdet_cnn_launch.py
728x90

'TI > AM62A' 카테고리의 다른 글

[AM62A] GPIO 제어  (0) 2024.07.13
[AM62A] Falcon Mode  (0) 2024.06.02
[09] AM62A - SDCard 이미지 만들기  (0) 2024.03.01
[09] AM62A-SK Processor SDK Build  (0) 2024.03.01
[08] AM62A - emmc  (0) 2024.02.22