ubuntu16.04(ros kinetic) 터틀봇 설치 및 구덩이 밟기 총결산(전체 친측)과 간단한 조작

6907 단어 ROS 학습
1. 종속 및 업데이트 설치
sudo apt-get install python-rosdep python-wstool  
sudo rosdep init
rosdep update

주의: sudo rosdep init 명령을 다시 실행할 때, 내 컴퓨터에 다음과 같은 오류가 발생했습니다.
ERROR: default sources list file already exists:
    /etc/ros/rosdep/sources.list.d/20-default.list
Please delete if you wish to re-initialize

해결 방법:
sudo rm /etc/ros/rosdep/sources.list.d/20-default.list

2. 세 개의 작업 공간 구축
전체 설치 과정은 세 개의 파일을 컴파일해야 합니다. 관리를 위해Turtlebot 폴더를 만들고 다음 세 개의 공간을 이 파일에 기록합니다.Turtlebot 디렉터리에서 로콘,kobuki,turtlebot을 각각 재건합니다.서류철.구체적인 단계는 다음과 같습니다.
(1) 원본 코드를 다운로드하고 컴파일하며 rocon 디렉터리를 만들고 다운로드하고 컴파일하며 rocon에 대응하는kinetic 버전이 있습니다
mkdir rocon
cd rocon
wstool init -j5 src https://raw.github.com/robotics-in-concert/rocon/release/kinetic/rocon.rosinstall 
source /opt/ros/kinetic/setup.bash 
rosdep install --from-paths src -i -y 
catkin_make
  :   wstool init -j5 src https://raw.github.com/robotics-in-concert/rocon/release/kinetic/rocon.rosinstall   ,       :

[  1%] Generating C++ code from concert_workflow_engine_msgs/Workflow.msg Traceback (most recent call last):   File "/opt/ros/kinetic/share/gencpp/cmake/../../../lib/gencpp/gen_cpp.py", line 41, in     import genmsg.template_tools File "/opt/ros/kinetic/lib/python2.7/dist-packages/genmsg/template tools.py", line 39, in import em ImportError: No module named'em'은 전체적으로 em이라는 모듈이 없습니다.
해결 방법:
python -m pip install empy

(2)koubuki 폴더를 만들고 다운로드하고 컴파일합니다.kobuki는kinetic버전을 사용하여 다운로드에 실패할 수 있습니다. 먼저 인디고버전으로 다운로드한rosinstall 파일을 생성한 다음에 해당 패키지를kinetic버전으로 수정합니다. 명령은 다음과 같습니다.
mkdir kobuki 
cd kobuki 
wget https://raw.github.com/yujinrobot/yujin_tools/master/rosinstalls/indigo/kobuki.rosinstall 
gedit kobuki.rosinstall #        kobuki.rosinstall      
wstool init src -j5 kobuki.rosinstall 
source /opt/ros/kinetic/setup.bash 
rosdep install --from-paths src -i -y 
catkin_make

kobuki.rosinstall 파일의 내용은 다음과 같습니다.
- git: {local-name: yocs_msgs, version: release/0.6-kinetic, uri: 'https://github.com/yujinrobot/yocs_msgs.git'}
- git: {local-name: yujin_ocs, version: kinetic, uri: 'https://github.com/yujinrobot/yujin_ocs.git'}
- git: {local-name: kobuki_msgs, version: kinetic, uri: 'https://github.com/yujinrobot/kobuki_msgs.git'}
- git: {local-name: kobuki_core, version: kinetic, uri: 'https://github.com/yujinrobot/kobuki_core.git'}
- git: {local-name: kobuki, version: kinetic, uri: 'https://github.com/yujinrobot/kobuki.git'}
- git: {local-name: kobuki_desktop, version: kinetic, uri: 'https://github.com/yujinrobot/kobuki_desktop.git'}

참고: wstool init src -j5 kobuki를 다시 실행합니다.rosinstall 명령에서 다음 오류가 발생했습니다.
kobuki 설치 오류: error: RPC failed,curl 18 transfer closed with outstanding read data remaining fatal: The remote end hung up unexpectedly fatal: 너무 빠른 파일 끝(EOF) fatal: index-pack failed
해결 방법:
git config --global http.postBuffer 524288000

위의 명령을 실행한 다음 kobuki 폴더의 src 파일을 삭제하고 마지막으로 실패한 명령 wstool init src - j5 kobuki를 다시 실행합니다.rosinstall
(3) 터틀봇 디렉터리를 만들고 다운로드하고 컴파일합니다.turtlebot에서 kinetic 버전을 사용하면 다운로드에 실패할 수 있습니다. 먼저 인디고 버전으로 다운로드한 rosinstall 파일을 생성한 다음에 해당 패키지를 kinetic 버전으로 수정합니다. kinetic 버전이 없는 것은 인디고 버전으로 유지됩니다. 명령은 다음과 같습니다.
mkdir turtlebot 
cd turtlebot 
wget https://raw.github.com/yujinrobot/yujin_tools/master/rosinstalls/indigo/turtlebot.rosinstall 
gedit turtlebot.rosinstall #        turtlebot.rosinstall      
wstool init src -j5 turtlebot.rosinstall 
source /opt/ros/kinetic/setup.bash 
rosdep install --from-paths src -i -y 
catkin_make

turtlebot.rosinstall 파일 내용:
- git: {local-name: turtlebot_msgs, version: indigo, uri: 'https://github.com/turtlebot/turtlebot_msgs.git'} 
- git: {local-name: turtlebot_create, version: indigo, uri: 'https://github.com/turtlebot/turtlebot_create.git'} 
- git: {local-name: turtlebot, version: kinetic, uri: 'https://github.com/turtlebot/turtlebot.git'} 
- git: {local-name: turtlebot_apps, version: indigo, uri: 'https://github.com/turtlebot/turtlebot_apps.git'} 
- git: {local-name: turtlebot_interactions, version: indigo, uri: 'https://github.com/turtlebot/turtlebot_interactions.git'} 
- git: {local-name: turtlebot_simulator, version: indigo, uri: 'https://github.com/turtlebot/turtlebot_simulator.git'} 
- git: {local-name: turtlebot_create_desktop, version: kinetic, uri: 'https://github.com/turtlebot/turtlebot_create_desktop.git'}

주의: 이 과정에서 또 쿠키와 같은 오류가 발생했고 똑같은 해결 방법으로 해결되었다.마지막 세 개의 파일을 성공적으로 컴파일한 후에 간단한 설정을 진행합니다.
3. 환경 구성 및 관련 드라이버 설치
(1) 환경 변수를 추가하려면:
source ~/turtlebot_ws/devel/setup.bash

(2) kinetic 드라이버를 설치합니다.
sudo apt-get install ros-kinetic-openni-* ros-kinetic-openni2-* ros-kinetic-freenect-*

(3) openni 설치:
sudo apt-get install ros-kinetic-openni-* ros-kinetic-openni2-*
rospack profile

지금까지 만약 보고가 틀리거나 보고가 모두 성공적으로 해결되지 않았다면 설치는 성공한 것이다.다음은 상응하는 테스트와 사용을 진행한다.
4. 테스트 및 사용
터틀봇의 usb 데이터 라인을 컴퓨터에 연결하고 다시 전원을 켜고 다음 명령을 실행합니다.
(1) 터미널을 새로 열고 다음을 입력합니다.
roscore

(2) 감지 장치 액세스:
ls /dev/kobuki

출력 장치 정보/dev/kobuki
정보가 없으면 별칭을 추가합니다.
rosrun kobuki_ftdi create_udev_rules

usb선을 다시 삽입하고 장치 접속 상황을 확인하십시오.
(3) 터틀봇을 시작합니다.
roslaunch turtlebot_bringup minimal.launch 

참고: 오류 보고: ModuleNotFoundError: No module named're'유형의 오류
아마도 당신 시스템에 두 버전의python 충돌이 설치되어 있기 때문일 것입니다. (나는 이전에 annaconda를 설치했는데, 전체의python 3.5와 시스템의 2.7 버전이 충돌했습니다.)
해결 방법:
당분간bashrc 파일에서 annaconda의 내용을 먼저 주석하고 사용할 때 주석을 취소하면 됩니다
sudo gedit ~/.bashrc
//  Ctrl+F  anaconda   ,         ,     。    

source ~/.bashrc

(4) 키보드 제어를 시작합니다.
roslaunch turtlebot_teleop keyboard_teleop.launch

전진, 후퇴 좌회전 우회전은 각각 i k l j 네 개의 키에 대응한다.
(5) 주제 발표 명령을 통해 터틀봇 이동을 제어합니다.
rostopic pub -r 10 /cmd_vel_mux/input/navi  geometry_msgs/Twist  '{linear:  {x: 0.1, y: 0.0, z: 0.0}, angular: {x: 0.0,y: 0.0,z: 0.0}}'

linear:{}선 속도, 일반 수정 x
angular:{}각속도, 수정z
여기까지.turtlebot의 설치 및 간단한 테스트는 여기까지입니다. 후속으로 다른 노드를 작성하여 각속도와 선속도를 계산한 다음turtlebot에 발표하여 목적적인 이동을 할 수 있습니다.
 
참조 자료:
https://blog.csdn.net/weixin_43540678/article/details/84033325
https://blog.csdn.net/wawayu_0/article/details/79460043
https://blog.csdn.net/dzhongjie/article/details/81152983
https://www.ncnynl.com/archives/201609/792.html

좋은 웹페이지 즐겨찾기