콘텐츠로 바로가기

now0930 일지

이런저런 생각

  • 홈
  • 비공개
  • 강좌
  • 잔여 작업 조회
  • 위치

ros를 nvidia docker로 돌리기

최신 ros docker 이미지로 gazebo를 그냥 돌리면 초당 4 frame으로 업데이트 된다. 참고 사용 사용하려다 느려 도저히 사용할 수 없어 방법을 찾아 봤다. nvidia-docker로 runtime을 nvidia로 입력해 주면 초 당 60 프레임으로 업데이트 된다. 금방 할 수 있어 찾은 보람이 있다.

http://wiki.ros.org/docker/Tutorials/Hardware%20Acceleration

위 사이트를 참조하여 아래 Dockerfile로 새롭게 이미지를 만들었다.

FROM osrf/ros:noetic-desktop-full

# nvidia-container-runtime
ENV NVIDIA_VISIBLE_DEVICES \
    ${NVIDIA_VISIBLE_DEVICES:-all}
ENV NVIDIA_DRIVER_CAPABILITIES \
    ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics

USER root
RUN apt -y update
RUN apt -y install vim
COPY ./.bashrc /root/

매번 입력하기 귀찮으니 ros 강의 자료에 있는 alias를 참조하여 .bashrc를 루트 홈에 넣었다. 처음 컨테이너를 실행할 때 entrypoint로 bashrc를 자동으로 실행하는데, 두번째 부터는 같은 컨테이너에 붙여도 bashrc를 실행하지 않는다. docker exec 옵션에 없는 듯 하다.

now0930@amd2004:~/dockerBuild/ros$ docker exec -it noetic_ros /bin/bash
root@amd2004:/# sds

매번 컨테이너에 들어간 후 sds를 실행해야 하여 귀찮다.

now0930@amd2004:~/dockerBuild/ros$ cat .bashrc 
alias eb='vi ~/.bashrc'
alias sb='source ~/.bashrc'
alias cma='catkin_make -DCATKIN_WHITELIST_PACKAGES=""'
alias cop='catkin_make --only-pkg-with-deps'
alias sds='source /opt/ros/noetic/setup.bash'
alias axclient='rosrun actionlib axclient.py'
set -o vi

xhost로 local을 추가하여 docker 출력을 돌린다. docer run을 다음과 같이 한다.

now0930@amd2004:~/dockerBuild/ros$ sudo xhost +local:docker
[sudo] now0930 암호: 
non-network local connections being added to access control list
now0930@amd2004:~/dockerBuild/ros$ xhost 
access control enabled, only authorized clients can connect
LOCAL:
INET:localhost
SI:localuser:now0930
now0930@amd2004:~/dockerBuild/ros$ 
#!/bin/bash
nvidia-docker run -it -v /run/user/1000:/run/user/1000 -v /dev:/dev -v /tmp/.X11-unix:/tmp/.X11-unix:ro \
	-v /home/now0930/ros_test:/home/ros_test --name noetic_ros \
	--privileged --ipc=host --shm-size=512m --net=host -e DISPLAY=$DISPLAY \
	-e XDG_RUNTIME_DIR=/run/user/1000 --runtime=nvidia \
	osrf/ros_custom:noetic-desktop-full 

이 글 공유하기:

  • Tweet
발행일 2022-06-19글쓴이 이대원
카테고리 ROS 태그 docker, gcamp, nvidia-runtime

댓글 남기기응답 취소

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.

글 내비게이션

이전 글

예제로 배우는 도커

다음 글

urdf 작성하여 rviz로 표시하기

2025 5월
일 월 화 수 목 금 토
 123
45678910
11121314151617
18192021222324
25262728293031
4월    

최신 글

  • common mode, differential mode 2025-05-11
  • signal conditioner, 신호 처리기 2025-05-10
  • strain gage 2025-05-09
  • 칼만 필터 2025-05-01
  • positioner(I/P) 2025-04-26

카테고리

  • 산업계측제어기술사
  • 삶 자국
    • 책과 영화
    • 투자
  • 생활코딩
    • LEGO
    • ROS
    • tensorflow
  • 전기기사
  • 피아노 악보

메타

  • 로그인
  • 엔트리 피드
  • 댓글 피드
  • WordPress.org

페이지

  • 소개
  • 잔여 작업 조회
    • 작업 추가
    • 작업의 사진 조회
    • 작업 수정 페이지
  • 사진
    • GPS 입력된 사진
    • 사진 조회
  • 위치
    • 하기 휴가 방문지
    • 해외 출장

태그

android bash c docker driver FSM gps java kernel LEGO linux mysql network program opcua open62541 plc programmers python raspberry reinforcementLearning ros state space system program tensorflow transfer function 경제 미국 민수 삼국지 세계사 실기 에너지 역사 유전자 일본 임베디드 리눅스 전기기사 조선 중국 채윤 코딩 테스트 통계 한국사 한국어

팔로우하세요

  • Facebook
now0930 일지
WordPress로 제작.