Skip to content

빠른 시작

1. 환경설치

1.1 시스템요구사항

현재권장개발환경조작시스템이(가):

현재지원컴파일 키트포함:

  • Ubuntu 20.04

필요다양한컨트롤러유형번호,목적에 따라 다른컴파일 키트。

我们제공打包모든개발환경镜像파일,물론에서任意1台 Ubuntu 20.04 섹션을 참조하여《1.2 컴파일 키트설치》来설치。

直연결가져오기설치완료虚拟机 여기를 클릭 다운로드得구성완료개발환경、기반VirtualBox소프트웨어사용Ubuntu 20.04.1 시스템虚拟机; 여기를 클릭 다운로드得기반Windows시스템VirtualBox소프트웨어설치包,如필요기타시스템버전请自줄 VirtualBox공식 사이트 가져오기줄다운로드。 • 설치VirtualBox소프트웨어(주의按转경로아님가능带有에 복사합니다文) • 열기다운로드“개발환경虚拟机”파일夹,안내에 따라“README.txt”파일설명설치虚拟机; • 부팅 후로그인계정“nbt”,비밀번호예“123”。

1.2 컴파일 키트설치

다음 컴파일 체인은 대상컨트롤러하드웨어 선택설치:

1.2.1 gcc-4.8 컴파일 키트설치

왜냐하면 Ubuntu 20.04 기본 제공 소스의 gcc 最低버전없음法설치4.8。我们필요추가 trusty 源。

bash
sudo sh -c 'echo "deb http://dk.archive.ubuntu.com/ubuntu/ trusty main" >> /etc/a pt/sources.list'
sudo sh -c 'echo "deb http://dk.archive.ubuntu.com/ubuntu/ trusty universe" >> /e tc/apt/sources.list'
bash
sudo apt update
sudo apt install -y gcc-4.8 g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 40
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 40
sudo apt-get install -y gcc-4.8-multilib g++-4.8-multilib

다운로드 lib32 라이브러리파일

압축 해제lib32.xxx파일,기존 파일을 교체합니다/usr/lib32파일夹。

bash
tar -zxvf lib32.xxx
sudo rm -rf /usr/lib32
sudo mv usr/lib32 /usr/

1.2.2 gcc-9.4 컴파일 키트설치

Ubuntu20.04 源直연결설치즉가능。

bash
sudo apt install gcc g++

1.2.3 aarch64-linux-gnu-gcc-5.3 컴파일 키트설치

다운로드컴파일 키트:链연결: gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu.tar.gz 제공가져오기적재: w33y

새로 생성T5⽂件夹,값을gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu.tar.gz압축 해제에 압축을 풉니다。

bash
mkdir ~/T5
tar -zxvf gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu.tar.gz -C ~/T5

추가환경변수

bash
gedit ~/.bashrc

값을아래这줄拷贝最뒤,저장종료즉가능。

bash
export PATH=$PATH:$HOME/T5/gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu/bin

2. 프로젝트 빌드

2.1 프로젝트초기화

사용VS code또는者其它IDE来개발。

새로 생성1번째 demo 파일夹,값을头파일放include파일夹,libNexRob.a를lib파일夹。,디렉터리구조참조다음과 같이:

text
├── include
│   ├── nrcAPI.h
│   └── nrcAPI_advance.h
├── lib
│   └── libNexRob.a
└── src
    └── main.cpp

2.2 main.cpp파일

cpp
#include <iostream>
#include "nrcAPI.h"


void SystemStartup() {
  //출력Nexmotion버전라이브러리 정보
  std::cout << "라이브러리버전:" << NRC_GetNexMotionLibVersion() << std::endl;
  //시작제어시스템
  NRC_StartController();
  //확인제어시스템여부초기화완료
  while (NRC_GetControlInitComplete() != 1 ) {
    NRC_Delayms(100);   //지연100ms
  }
  //해제모든오류
  NRC_ClearAllError();


  std::cout << "----" << NRC_GetControlInitComplete() << std::endl;
  std::cout << "StartController Success" << std::endl;
  std::cout << "가져오기동기화버전번호" << NRC_GetSyncVersion() << std::endl;
  NRC_Delayms(200);
}


int main() {
  //시스템시작
  SystemStartup();

  std::cout << "Hello World" << std::endl;


  //保持프로그램계속실행
  while(true) {
    NRC_Delayms(2000);
  }
}

2.3 코드 컴파일

2.3.1 직접 컴파일

자신의 설정을 확인합니다컨트롤러시스템아키텍처,선택해당컴파일 체인도구,아래사용예gcc-4.8,아키텍처에 따라,로 변경할 수 있습니다gcc-9。

등록:만일예x64아키텍처라면컨트롤러필요값을g++-4.8수정이(가)g++-9,-m32수정이(가)-m64,만일컨트롤러예x86아키텍처라면가능아님사용하여가져오기줄수정。

bash
g++-4.8 -m32 -o nrc2.out src/*.cpp -I./include -L./lib -lNexRob -lpthread -lm -ldl -lrt -std=c++11

2.3.2 사용Makefile

새로 생성Makeifile파일

에서demo디렉터리새로 생성Makefile파일,다음 내용을Makefile파일에 복사합니다,并저장。

makefile
TARGET=nrc2.out
all :
	g++-4.8 -m32 -o nrc2.out src/*.cpp -I./include -L./lib -lNexRob -lpthread -lm -ldl -lrt -std=c++11


clean :
	rm $(TARGET) $(objects)

Makefile파일생성한 후에서컴파일일 때필요에서demo파일디렉터리열기터미널입력make입력하면컨트롤러실행 가능프로그램

에서demo디렉터리열기1번째갱신터미널,입력make,컴파일완료뒤에서demo디렉터리有1번째nrc2.out실행 가능프로그램

컴파일 흐름도는 다음과 같습니다:

컨트롤러2차 개발프로그램컴파일흐름도:에서 demo 디렉터리실행 make 명령,사용 gcc-4.8 도구链컴파일生완료 nrc2.out 실행 가능파일

3. 원격 로그인컨트롤러

3.1 확인电脑연결컨트롤러

먼저 컴퓨터가컨트롤러연결통신,컴퓨터의IP필요跟컨트롤러의 IP 주소에서同1네트워크 대역으로。컨트롤러의 공장 출하 기본IP이(가)192.168.1.13,따라서电脑연결컨트롤러网口同样필요설정이(가)1网段(예컨대설정192.168.1.110)。설정완료후Ubuntu에 복사합니다열기1번째갱신터미널입력

bash
ping 192.168.1.13

아래와 같은 화면이 나타나면,컨트롤러통신통신성공:

Ubuntu 터미널에 복사합니다실행 ping 192.168.1.13 성공수신컨트롤러해야 함答통신측정테스트스크린샷

如표시되면아님성공경우,확인하십시오网线연결,컴퓨터의IP,컨트롤러의 IP 주소。

3.2 사용ssh로그陆컨트롤러

bash
ssh inexbot@192.168.1.13

그 후비밀번호입력123,즉가능가져오기줄원격제어。

3.3 확인컨트롤러시스템아키텍처

로그陆가져오기컨트롤러뒤,명령어로uname -a확인컨트롤러아키텍처

SSH 원격로그인컨트롤러뒤실행 uname -a 명령확인컨트롤러시스템아키텍처라면터미널출력스크린샷

图에 복사합니다所표시예三번째i686,각각머신 하드웨어명,프로세서유형,하드웨어 플랫폼。i686일반적으로32비트시스템。

4. 값을프로그램업로드컨트롤러실행

4.1 사용SCP업로드프로그램

컴파일완료뒤,프로그램에 업로드하여컨트롤러실행직접 컴파일한2차 개발프로그램,계속에서현재터미널입력

bash
scp nrc2.out inexbot@192.168.1.13:~/robot

입력완료뒤메시지가 나타납니다 “ inexbot@192.168.1.13's password: “。

我们계속敲123즉가능,때표시되면图표시프로그램완료되었음을 의미합니다프로그램대체교체가져오기컨트롤러。

사용 scp 명령값을 nrc2.out 업로드컨트롤러터미널출력스크린샷,표시업로드가져오기도항목와/과완료정보

때然또한하면표시되면대체교체아님성공일 때候,터미널에Text file busy,이 경우예컨트롤러원래 실행 중인nrc2.out프로그램还에서실행,없음法대체교체。

이러한 경우필요ssh원격 로그인컨트롤러백그라운드에서실행 중인nrc2.out프로세스에게닫기。

bash
sudo killall -9 nrc2.out

프로세스닫기뒤再회실행위제공scp조작,성공2차 개발프로그램대체교체컨트롤러。

4.2 원격 로그인컨트롤러에 복사합니다시작프로그램

그런 다음실행컴파일한2차 개발프로그램,,에서컨트롤러백그라운드robot디렉터리입력

bash
sudo ./nrc2.out

실행결과다음과 같이如:

에서컨트롤러뒤台 robot 디렉터리실행 sudo ./nrc2.out 시작2차 개발프로그램터미널실행결과스크린샷

이제2차 개발프로젝트완료되었음을 의미합니다성공실행起来。

  • gcc-4.8
  • gcc-9.4
  • aarch64-linux-gnu-gcc-5.3