hongdroid.ai 's blog

ROS 란?

현재 다니고 있는 회사에서 아주 우연한 기회로 3개월 짜리 ROS강의를 지원받게되었다. 대학원생 당시 지능형 로봇을 연구할 때에도 ROS를 잠시 접해보고 개인적인 궁금증으로 ROS를 공부해보려 했으나 이렇게 현직에서 실제로 ROS를 다루는 분의 커리큘럼에 맞춰 배울 수 있는 기회가 흔치 않은 것 같다. 수업을 듣는 동안 수업 진도에 맞춰 복습을 하는 느낌으로 블로그에 수업 내용과 관련된 글을 포스팅 할 계획이다.

What is the ROS?

  • ROS는 Robot Operating System의 약자로 로봇을 구동시키는 운영체제라고 알 수 있지만 사실상 운영체제는 아니고 meta operating system이라고 ROS는 설명하고 있다.
  • 내가 생각하는 ROS의 가장 큰 기능은 node 간 메시징 서비스이다. ROS는 node라는 패키지 단위로 이루어져 있으며 각 node 들은 topic 기반 메시지 발행/구독을 통해 서로 메시지를 주고 받을 수 있다. (이 부분은 인공지능에서 얘기하는 black board 개념과 굉장히 유사하다고 생각했다.)
  • 여태까지 많은 로봇 구동을 위한 프레임워크 / 플랫폼 / 소프트웨어에 대한 연구, 개발이 있었지만 현재 가장 많이 활용되고 있는 로봇 구동 프레임워크가 ROS 인 이유는
    1. 첫 번째로 Gazebo, Stage, Rviz 등의 다양한 시뮬레이션 툴을 지원한다는 점과
    2. 두 번째로 Package라는 단위의 배포형태를 통해 로봇 모듈의 재사용성을 극대화 시켰다는 점이라고 생각한다. 로봇의 각 파트별 개발자(로봇 팔, 로봇 다리, 영상처리 등)들은 필요한 모듈을 다른 개발자가 배포한 Package를 통해 쉽게 활용하여 본인의 연구/개발 분야에만 집중할 수 있다. 또한 이렇게 개발 된 Package를 다른 개발자가 활용할 수 있어 로봇 모듈의 개발 생태계가 잘 구축되었다고 생각할 수 있다.

ROS URDF

ROS URDF?

Learn and use ML

고수준의 Keras API는 deep learning model들을 생성하고 훈련하기 위한 블록 제작을 제공합니다. 처음 시작하는 분을 위한 예제를 시작하고, TensorFlow Keras guide를 읽으세요.

  1. Basic classification
  2. Text classification
  3. Regression
  4. Overfitting and underfitting
  5. Save and load
import tensorflow  as tf
mnist = tf.keras.datasets.mnist

#Download MNIST data, require internet
(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train, x_test = x_train / 255.0, x_test / 255.0

#Configuration Model
model = tf.keras.models.Sequential([
    tf.keras.layers.Flatten(),
    tf.keras.layers.Dense(512, activation=tf.nn.relu),
    tf.keras.layers.Dropout(0.2),
    tf.keras.layers.Dense(10, activation=tf.nn.softmax)])

#Compile Configuration Model
model.compile(optimizer = Adam,
              loss = sparse_categorical_crossentropy,
              metrics= [accuracy])

#Run training
model.fit(x_train, y_train, epochs = 5)
#Run test data
model.evaluate(x_test, y_test)

posting test

BlaBlaBlaBlaBlaBlaBlaBlaBlaBla

Introducing Lanyon

Lanyon is an unassuming Jekyll theme that places content first by tucking away navigation in a hidden drawer. It’s based on Poole, the Jekyll butler.

Built on Poole

Poole is the Jekyll Butler, serving as an upstanding and effective foundation for Jekyll themes by @mdo. Poole, and every theme built on it (like Lanyon here) includes the following:

  • Complete Jekyll setup included (layouts, config, 404, RSS feed, posts, and example page)
  • Mobile friendly design and development
  • Easily scalable text and component sizing with rem units in the CSS
  • Support for a wide gamut of HTML elements
  • Related posts (time-based, because Jekyll) below each post
  • Syntax highlighting, courtesy Pygments (the Python-based code snippet highlighter)

Lanyon features

In addition to the features of Poole, Lanyon adds the following:

  • Toggleable sliding sidebar (built with only CSS) via link in top corner
  • Sidebar includes support for textual modules and a dynamically generated navigation with active link support
  • Two orientations for content and sidebar, default (left sidebar) and reverse (right sidebar), available via <body> classes
  • Eight optional color schemes, available via <body> classes

Head to the readme to learn more.

Browser support

Lanyon is by preference a forward-thinking project. In addition to the latest versions of Chrome, Safari (mobile and desktop), and Firefox, it is only compatible with Internet Explorer 9 and above.

Download

Lanyon is developed on and hosted with GitHub. Head to the GitHub repository for downloads, bug reports, and features requests.

Thanks!