Scratch 3.0 개발 환경 구축 (renew)

기존 Scratch 3.0 개발 환경 구축 (https://ahnbk.com/?p=366) 포스팅이 있는데, 이번 macOS 카탈리나에서 새로 개발 환경을 구축하면서 약간 달리지는 부분에 대해 새로 간단히 정리합니다.


  • Node.js 설치

macOS에선 기존과 마찬가지로 homebrew를 먼저 설치하고, 이를 이용하여 설치하는 것이 간편함. 현재 LTS 버전은 12.6.1이지만, scratch의 경우 여전히 10버전까지만 지원함. 따라서 다음과 같이 입력하여 설치.

$ brew install node@10

  • Scratch 소스 받아오기

개발에 사용될 임의의 디렉토리를 하나 만들고, Scratch 각 파트별로 소스 clone.

$ mkdir scratch_dev
$ cd scratch_dev
$ git clone https://github.com/LLK/scratch-gui.git
$ git clone https://github.com/LLK/scratch-vm.git
$ git clone https://github.com/LLK/scratch-l10n.git

사용자가 직접 Interaction 할 수 있는 GUI ( scratch-gui), Scratch의 실행 (Back-end)을 담당 (scratch-vm), 한글 관련 작업 (scratch-l10n).


  • 빌드하기

[scratch-l10n]

$ cd scratch-l10n
$ npm install
$ npm run-script build
$ npm link

[scratch-vm]

$ cd scratch-vm
$ npm install
$ nom link

[scratch-gui]

$ cd scratch-gui
$ npm install
$ npm link scratch-l10n scratch-vm

빌드 완료


  • 실행
$ cd scratch-gui
$ npm start

사파리를 띄우고, http://0.0.0.0:8601로 접속.

끝! 여전히 잘됨..^^

Advertisements

Tips about Zsh on macOS

macOS가 Catalina로 버전업이 되면서, 터미널의 기본 shell이 Zsh가 기본값으로 변경되었습니다. 이에 따른 몇가지 팁들 정리.


  • 환경설정 파일은 .zshrc

기존 bash shell의 경우, .bashrc 파일을 사용했다면, Zsh의 경우 .zshrc 파일을 사용함


  • 터미널에서 색상 지원

기본 설정이 색상지원이 안되도록 되어 있어, 밋밋한 흰색만 나옴. 색상 지원이 가능하게 하려면, .zshrc 파일 내에 다음의 문구 추가하면 됩니다.

autoload -U colors && colors
export CLICOLOR=1

  • 프롬프트 변경

Shell의 프롬프트는 PS1이라는 환경변수를 통해 설정 가능, 기본 값은 색상값 없이 정보만 표시하도록 되어 있어 다음과 같이 보이는데,

이를 색상과 같이 좀 이쁘게 설정하려면, .zshrc 내에 PS1 값을 다음과 같이 설정하면 됩니다.

export PS1="%{%F{green}%}%n@%m%f: %{%F{blue}%}%1~ %f%# "

다시 쉘을 실행해보면,

Zsh의 경우 다양한 플러그인을 통해 다양한 정보를 프롬프트에 표시할 수 있습니다만, 전 복잡한건 딱 질색인 타입이라, 위 상태만으로도 만족합니다..^^


  • root shell 변경

root의 shell은 또 bash가 기본값으로 설정되어 있습니다. macOS에선 root shell을 사용할 일이 거의 없는지라 상관없지만, 변경하고자 한다면,

$ sudo dscl . -change /Users/root UserShell /bin/sh /bin/zsh

와 같이 입력하면 root에서도 zsh를 기본값으로 사용할 수 있습니다.

Using Gazebo11 with ROS1 Melodic

Gazebo 11이 지난 달에 릴리즈 되었습니다. 이 버전이 Gazebo의 마지막 릴리즈 버전이고, 이후론 지원 기간까지 새로운 기능보단, 주로 버그 수정 등만 지원됩니다. 새로운 Ignition Gazebo가 나올 예정인데, 이는 Ignition Robotics라는 곳에서 업데이트 등을 지원할 예정입니다.

현재의 ROS의 최근 LTS 버전은 Melodic으로, 공식적으론 Gazebo 9만 지원합니다. 따라서 Gazebo 11을 사용하기 위해선 ROS와 연동하기 위한 패키지들을 새로 빌드해줘야 합니다.


ROS1 Melodic이 설치된 상태에서, Gazebo 11을 설치하려면 패키지의 의존성 등을 고려하여 다음과 같이 입력합니다.

$ sudo apt install gazebo11 libgazebo11 gazebo11-common libgazebo11-dev 

이러면, Gazebo 9은 자동으로 제거가 되고, Gazebo 11이 설치됩니다.

이제 ROS와 연동하기 위한 gazebo_ros_pkgs를 새로 받아 빌드합니다.

catkin workspace 내에서 작업해야 하므로,

$ cd ~/catkin_ws/src
$ git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git
$ cd gazebo_ros_pkgs
$ git checkout melodic-devel
$ catkin build 

빌드가 완료되면, 예전과 같이 정상적으로 ROS1과 연동하여 사용이 가능합니다. 플러그인도 사용 가능.

$ roslaunch gazebo_ros empty_world.launch

위와 같이 설치를 하게 되면, ros-melodic-desktop-full의 의존성이 깨지므로, apt를 사용할때 autoremove로 ROS 패키지들을 자동으로 지우게끔 유도하게 되는데 이를 해결하려면,

$ sudo apt install ros-melodic-perception ros-melodic-desktop ros-melodic-ros-control ros-melodic-ros-controllers

와 같이 각각의 패키지들을 설치하면 해결되고, 그 외의 패키지는 필요없는 것들이니 지워도 무방합니다.

끝.

Blockly 2019 Q4 Release

Blockly도 그동안 계속 버전 패치를 해왔는데, 이번 2019 Q4 릴리즈에선 약간 더 큰 변화를 가지고 릴리즈 되었습니다.

https://groups.google.com/forum/#!searchin/blockly/npm%7Csort:date/blockly/cOxLdS7vX-c/bq-KIyBXAAAJ

Zelos라는 렌더링 엔진을 사용하는 것인데, 기존 렌더링 엔진인 Geras를 보완하여 개발하였습니다. 블럭들의 모습이 Scratch의 그것들과 상당히 유사해졌고, 실시간으로 블럭을 그려서 사용하다보니 좀더 예쁜? 모습을 보여줍니다.

각 렌더링 엔진에 대한 설명은 다음의 슬라이드에서 참고.

https://docs.google.com/presentation/d/1nNk0DYT_aeMxKS7BVfAZxpQSOmwBu9XuG96oezrp_Ss/edit#slide=id.g40d1aecc4e_0_470

여하튼 기존 개발 환경 구축과 마찬가지로 소스를 가지고와 옵션을 살짝 건드려주면? 다음과 같은 모습을 보여줍니다.

렌더링 엔진을 선택하는 부분은 Blockly를 인젝션하는 부분에 옵션을 다음과 같이 추가해주면 됩니다.

    var workspacePlayground = Blockly.inject('blocklyDiv', {

      toolbox: BLOCKLY_TOOLBOX_XML['standard'],
      media: '/blockly/media/',
      trashcan: true,
      zoom: {
        controls: true,
        wheel: true,
        startScale: 0.7,
        maxScale: 3,
        minScale: 0.3,
        scaleSpeed: 1.2
      },
      renderer : "zelos"
    });

끝.