ROS1과 ROS2의 환경 변수 관리

6440 단어 ROS2ROS

ROS 환경 설정



Ubuntu에서 ROS1과 ROS2를 모두 사용하여 개발하는 경우가 많아 환경을 터미널에서 오가는 경우가 많아 각 터미널에서이 환경이로드되는지 알기 쉽게했을 때 설정 메모.

결국 이런 일을 할 수 있게 됩니다.


환경



본 기사에서는 이하에서 검증하고 있습니다.
  • Ubuntu 20.04
  • ROS noetic
  • ROS2 foxy

  • Ubuntu18.04, melodic, eloquent 환경에서도 가능해야합니다.

    환경을 로드하기 위한 alias 설정


  • bash의 경우
  • ~/.bashrc 또는 ~/.bash_aliases 등에 다음을 기재
  • 각각 환경 설정 파일을 읽고, workspace에의 path, ROS 통신에 관련하는 변수를 설정하고 있다
  • 각각의 마지막 행에 있는 PS1 를 하는 것으로 터미널상에서 어느 환경이 읽혀지고 있는지 알 수 있게 되어 있다.
  • 작업 공간에 대한 경로는 적절한 환경에 맞게 조정하십시오

  • ## ROS ##
    LOCAL_IP=`hostname -I | cut -d' ' -f1`
    alias noetic='
        source /opt/ros/noetic/setup.bash;
        export ROS_WORKSPACE=${HOME}/catkin_ws;
        export ROS_PACKAGE_PATH=${ROS_WORKSPACE}/:$ROS_PACKAGE_PATH;
        export ROS_IP=${LOCAL_IP};
        export ROS_MASTER_URI=http://localhost:11311;
        source ${ROS_WORKSPACE}/devel/setup.bash;
        export PS1="\e[1;32m\]\u@\h\e[1;31m\]<noetic>\e[m\]:\e[1;34m\]\w\e[m\]$ "
        '
    alias foxy='
        source /opt/ros/foxy/setup.bash;
        export ROS_WORKSPACE=${HOME}/ros2_ws;
        source ${ROS_WORKSPACE}/install/local_setup.bash;
        export ROS_LOCALHOST_ONLY=1;
        export PS1="\e[1;32m\]\u@\h\e[1;33m\]<foxy>\e[m\]:\e[1;34m\]\w\e[m\]$ "
        '
    
  • zsh의 경우
  • bash의 경우와 거의 같습니다. ~/.zshrc 등에 기재하십시오.
  • 설정 파일의 읽기 파일의 확장자를 변경하면됩니다.

  • ## ROS ##
    LOCAL_IP=`hostname -I | cut -d' ' -f1`
    alias melodic='
        source /opt/ros/noetic/setup.zsh;
        export ROS_WORKSPACE=${HOME}/catkin_ws;
        export ROS_PACKAGE_PATH=${ROS_WORKSPACE}/:$ROS_PACKAGE_PATH;
        export ROS_IP=${LOCAL_IP};
        export ROS_MASTER_URI=http://localhost:11311;
        source ${ROS_WORKSPACE}/devel/setup.zsh;
        export PS1="%F{red}<melodic> %f"$_LIBERTY" "
        '
    
    alias foxy='
        source /opt/ros/foxy/setup.zsh;
        export ROS_WORKSPACE=${HOME}/ros2_ws;
        source ${ROS_WORKSPACE}/install/local_setup.zsh;
        export ROS_LOCALHOST_ONLY=1;
        export PS1="%F{blue}<eloquent> %f"$_LIBERTY" "
        '
    
  • 위에서 설명한 후 source ~/.bashrc 또는 source ~/.zshrc 변경하여 로드합니다. (다른 터미널 시작도 좋습니다.)
  • ROS1을 사용하려면 noetic를, ROS2를 사용하려면 foxy를 실행하여 환경을 읽습니다.

  • 각 workspace make


  • ros_make 다음을 추가하면 현재로드 된 환경의 작업 공간을 빌드합니다
  • 빌드 옵션은 적절하게 변경하십시오.
  • function ros_make() {
        dir=$PWD;
        cd $ROS_WORKSPACE;
        if [[ $ROS_DISTRO == "noetic" ]]; then
            catkin_make --cmake-args -DCMAKE_BUILD_TYPE=Release;
            . devel/setup.zsh;
        elif [[ $ROS_DISTRO == "foxy" ]]; then
            if [ $# -gt 0 ]; then
                colcon build --packages-select $1 --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release;
            else
                colcon build --symlink-install --cmake-args -DCMAKE_BUILD_TYPE=Release;
            fi;
            . install/local_setup.zsh;
        else
            echo "set ros distribution";
        fi
        cd $dir;
    }
    

    참고·관련 사이트 등


  • htps : // speake r에서 ck. 코 m / 같은 lk / 로 s - 2 카이 - 푸 - 슈 - 짱 - 짱 - 짱 - 짱 - 짱
  • htps : // 기주 b. 이 m / 같은 lk / ch st
  • htps : // 밥 s-로보. 하테나 bぉg. 코m/엔트리/2020/03/10/121017
  • 좋은 웹페이지 즐겨찾기