빠른 시작
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 源。
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'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파일夹。
tar -zxvf lib32.xxx
sudo rm -rf /usr/lib32
sudo mv usr/lib32 /usr/1.2.2 gcc-9.4 컴파일 키트설치
Ubuntu20.04 源直연결설치즉가능。
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압축 해제에 압축을 풉니다。
mkdir ~/T5
tar -zxvf gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu.tar.gz -C ~/T5추가환경변수
gedit ~/.bashrc값을아래这줄拷贝最뒤,저장종료즉가능。
export PATH=$PATH:$HOME/T5/gcc-linaro-5.3.1-2016.05-x86_64_aarch64-linux-gnu/bin2. 프로젝트 빌드
2.1 프로젝트초기화
사용VS code또는者其它IDE来개발。
새로 생성1번째 demo 파일夹,값을头파일放include파일夹,libNexRob.a를lib파일夹。,디렉터리구조참조다음과 같이:
├── include
│ ├── nrcAPI.h
│ └── nrcAPI_advance.h
├── lib
│ └── libNexRob.a
└── src
└── main.cpp2.2 main.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아키텍처라면가능아님사용하여가져오기줄수정。
g++-4.8 -m32 -o nrc2.out src/*.cpp -I./include -L./lib -lNexRob -lpthread -lm -ldl -lrt -std=c++112.3.2 사용Makefile
새로 생성Makeifile파일
에서demo디렉터리새로 생성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실행 가능프로그램
컴파일 흐름도는 다음과 같습니다:

3. 원격 로그인컨트롤러
3.1 확인电脑연결컨트롤러
먼저 컴퓨터가컨트롤러연결통신,컴퓨터의IP필요跟컨트롤러의 IP 주소에서同1네트워크 대역으로。컨트롤러의 공장 출하 기본IP이(가)192.168.1.13,따라서电脑연결컨트롤러网口同样필요설정이(가)1网段(예컨대설정192.168.1.110)。설정완료후Ubuntu에 복사합니다열기1번째갱신터미널입력
ping 192.168.1.13아래와 같은 화면이 나타나면,컨트롤러통신통신성공:

如표시되면아님성공경우,확인하십시오网线연결,컴퓨터의IP,컨트롤러의 IP 주소。
3.2 사용ssh로그陆컨트롤러
ssh inexbot@192.168.1.13그 후비밀번호입력123,즉가능가져오기줄원격제어。
3.3 확인컨트롤러시스템아키텍처
로그陆가져오기컨트롤러뒤,명령어로uname -a확인컨트롤러아키텍처

图에 복사합니다所표시예三번째i686,각각머신 하드웨어명,프로세서유형,하드웨어 플랫폼。i686일반적으로32비트시스템。
4. 값을프로그램업로드컨트롤러실행
4.1 사용SCP업로드프로그램
컴파일완료뒤,프로그램에 업로드하여컨트롤러실행직접 컴파일한2차 개발프로그램,계속에서현재터미널입력
scp nrc2.out inexbot@192.168.1.13:~/robot입력완료뒤메시지가 나타납니다 “ inexbot@192.168.1.13's password: “。
我们계속敲123즉가능,때표시되면图표시프로그램완료되었음을 의미합니다프로그램대체교체가져오기컨트롤러。

때然또한하면표시되면대체교체아님성공일 때候,터미널에Text file busy,이 경우예컨트롤러원래 실행 중인nrc2.out프로그램还에서실행,없음法대체교체。
이러한 경우필요ssh원격 로그인컨트롤러백그라운드에서실행 중인nrc2.out프로세스에게닫기。
sudo killall -9 nrc2.out프로세스닫기뒤再회실행위제공scp조작,성공2차 개발프로그램대체교체컨트롤러。
4.2 원격 로그인컨트롤러에 복사합니다시작프로그램
그런 다음실행컴파일한2차 개발프로그램,,에서컨트롤러백그라운드robot디렉터리입력
sudo ./nrc2.out실행결과다음과 같이如:

이제2차 개발프로젝트완료되었음을 의미합니다성공실행起来。
- gcc-4.8
- gcc-9.4
- aarch64-linux-gnu-gcc-5.3