이오스 나이츠 관련 유용한 정보

개발팀 정보

개발팀에서 제공하는 FAQ


https://github.com/bada-studio/knights_support/wiki/FAQ_ko#%EB%93%9C%EB%9E%8D%ED%99%95%EB%A5%A0


Milestones& 로드맵


https://github.com/bada-studio/knights_support/wiki/Milestones


공식 텔레그램 채널


https://t.me/joinchat/IAL3EwvtSVMml_qkYPXbrw




사이트 – 이오스 나이츠 각종 정보 조회


https://hongjinhyeon.github.io/


템을 맞추면 몇층까지 올라갈 수 있는지


돈을 얼마를 벌었고 얼마를 썼는지 알려준다.


재료 확률도 계산 해준다.


아이디만 적으면 된다. 블록체인 위에서 다 가져올수있는 데이터로 알람 및 정보를 주는거기때문에 안전하다.







Helper & Notifier for EOS Knights app


아래 앱은 캐릭터들이 다 죽으면 알림을 해준다.


중간중간 체크하지 않아서 좋다.


그 외에 몇층까지 갈 수 있는지, 걸리는 시간 등에 대해 알려준다.


예상 시간도 알려준다.



감사합니다.


This page is synchronized from the post: ‘이오스 나이츠 관련 유용한 정보’

[ROS] custom message 생성

ROS에서 message는 노드가 서로 주고받는 데이터를 말한다.


custom message는 기존 message type으로 표현하기 어려울 때, 직접 만들어 사용할 수 있다.


예를 들어, 로봇의 odometry는 이미 정해진 구조가 있다. 이 구조를 활용하는 편이 훨씬 좋다.


http://docs.ros.org/melodic/api/nav_msgs/html/msg/Odometry.html


나 같은 경우, 물체에 대한 정보를 서로 주고 받고싶다.


마땅히 사용할 message type이 없다면, 이 때 물체에 대한 구조를 새로 정의할 수 있다.


이걸 custom message라고 한다.




만드는 방법


http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv


나는 Object라는 message type을 만들어보려고 한다.


프로젝트 내에 msg라는 폴더를 생성하고, 원하는 메시지를 정의한다.



  • 작성자는 Object.msg라는 이름으로 만들었다.

  • 내부에는 이것저것 많이 들어있다.

  • # 은 주석이다.



Cmakelists.txt 에서 추가할 것을 본다.



  • find_package에 message_generation를 추가한다. (중요)




  • Cmakelists에서 정의한 Object.msg 를 add_message_files에 추가한다.


  • message를 추가하기 위해서는 dependencies를 설정해줘야 한다.

  • 만약에 odometry_msgs를 element로 쓰고 싶다면, 넣으면 된다.





사용 방법


위와 같이 셋팅을 한 후, catkin_make로 빌드한다.


코드 상에서 어떻게 사용하는지 보자.


사실, 다른 메시지랑 똑같이 사용하면 된다. include만 잘 하면 된다.



  • C++에서 메시지를 사용하기 위해서 메시지를 include를 해야한다.

  • #include “프로젝트 명/message 이름.h”

  • 나 같은 경우는 #include “perception/Object.h”가 된다.


다음은 publish를 해보겠다.


publisher를 정의한다.


gFacePublisher = nh.advertise(“face”,1);


그리고 메시지 객체를 정의한다.


정의한 메시지 객체에 데이터를 넣고 publish!





이렇게 publish를 하면 된다.


subscriber도 다른 메시지와 사용방법이 같다.


ros::Subscriber gFaceSubscriber = nh.subscribe(“face”, 1, faceCallback);


void faceCallback(const perception::Object& faceMsg);


cout<<faceMsg.id<<endl;




Python에서도 비슷하게 사용하면 되는데


import할 때 아래처럼 하면 된다.


나머지 사용방법은 다른 메시지와 같다.


from perception.msg import Object





즉, msg 폴더와 Cmakelists.txt에 정의만 잘 해놓으면


다른 메시지들과 똑같이 사용하면 된다.


This page is synchronized from the post: ‘[ROS] custom message 생성’

스팀잇에 작성한 개발 관련 글

안녕하세요. 제이콥입니다.

제가 2017년 12월 12일부터 스팀잇을 하게 됐는데요.

지금까지 스팀잇에 올린 글들이 무엇이 있나 정리를 해봤습니다.

kr-dev에 적은 글은 총 48개!!!!


아래에 리스트를 쭉 적어봤습니다.

정리를 해보니 지난 1년동안 나름 알차게,

하고싶은거 하면서 살았구나 싶었습니다.

이것저것 새로 배우는 것을 좋아해서

공부한 것을 정리하면서 작성을 했었는데.. 많이 적었군요.

저는 글쓰기 실력도 부족하고, 전문가라고도 불리기 부족한 부분이 많습니다.

하지만, 앞으로도 관심있는거 공부하면서 계속 개발 관련 글, 제 취미 생활을 작성할 예정입니다.

파이팅!


가끔은 열심히 적어도 관심이 없을 때가 종종 있었습니다.

그럴 때 마다, 이 글이 정말 읽을만 한가 다시 생각해보고

적어도 내가 나중에 어떤 내용이 헷갈릴 때 다시 볼 수 있는 글을 적어야지 생각합니다.

어떤 의견이든 댓글은 환영입니다!


IoT 관련 글



아래 글은 구글 어시스턴트를 ubuntu에서 활용하는 방법에 대한 글입니다.







Google assistant library on ubuntu #1 사전 조사









아래 글은 아마존 에코 스피커를 활용하여 로봇을 제어하는 것에 대한 글입니다.







Connect amazon alexa vocie and ROS using alexa skill, lambda, pubnub #1

















영상처리 관련 글






이 글을 따라하면 얼굴 검출과 인식을 할 수 있습니다.


따라하면 되는 얼굴 인식 with deep learning, python, opencv












ROS 관련 글


ROS는 로봇 os로, 로봇 연구에 있어서 최고의 동반자라고 생각됩니다.


스마트폰에 안드로이드가 있다면, 로봇에는 ROS라고 생각해요.



Ros_control와 gazebo를 활용한 pan/tilt control


[Research] 지역 경로 계획 소개, teb local planner



워드프레스 관련 글


워드프레스에스 스팀으로 글을 옮겨주는 플러그인을 개발했었습니다. 관련 내용입니다.






Warpsteem 소개 – 워드프레스 글을 스팀잇으로 옮기기













코딩 관련 글










[Coding study (leetcode)] Tree problems. 105, 106








This page is synchronized from the post: ‘스팀잇에 작성한 개발 관련 글’

[일기] 오픽 후기

2주 전에 영어 오픽 시험을 봤다.

결과도 나왔다.

IM2다. 검색 해보니 대학생 절반은 공부하면 받는다고 나무위키에서 봤던것 같다.

사실 영어 시험을 별로 본적은 없다. 토익도 학교에서 보는걸 봤고 대체수업이라던가.. 그랬다. 이번이 처음 본 영어 시험이였다.

느낀 점은 background servey를 철저하게 준비하면 더 잘받을 수 있겠다. 싶었다.

준비하는 과정은 공부하려고 책 한권 사고 몇 개 주제에 대해 내이야기로 영작하고 읽어본 것 같다.

다음 영어 시험은 한 1월쯤 보는걸로 해서

적어도 servay 관련 내용으로는 말이 술술 나올 수 있도록 준비해야겠다.

사실 한국말로도 관심있는 주제가 아니라면 2-3분 못말할거다. 한국말로도 무슨말 할지 생각도 해보고 영작도 해보고 그러자.


내 취미

자전거, 게임, 글쓰기, 블로그 보기

여행

출장

집, 가족, 회사 이야기



IH를 받을 수 있도록 열심히 해야지

영어를 잘해서 외국 출장도 많이가고

외국 회사에서도 일해보고 그러고 싶다.

파이팅!


This page is synchronized from the post: ‘[일기] 오픽 후기’

What is ros-control

I wrote summary about ros control.
What is ros-control?
How to use ros-control?
Thank you.

ros-control

http://wiki.ros.org/ros_control




  • A set of packages that include controller interfaces, controller managers, transmissions and hardware_interfaces.

  • The ros_control packages are a rewrite of the pr2_mechanism packages to make controllers generic to all robots beyond just the PR2.

  • The ros_control packages takes as input the joint state data from your robot’s actuator’s encoders and an input set point. It uses a generic control loop feedback mechanism, typically a PID controller, to control the output, typically effort, sent to your actuators. ros_control gets more complicated for physical mechanisms that do not have one-to-one mappings of joint positions, efforts, etc but these scenarios are accounted for using transmissions.




There are some modules.



  • Controller manager

  • Controller

  • Hardware interface


ros control


http://gazebosim.org/tutorials/?tut=ros_control


Controller don’t care which module (simulation or hardware) provide data.


Controller needs joint state info and joint command info.





Controller



There are many controller on ros-control.


I used joint state_controller and joint_trajectory_controller for head control.


You need to set control parameter (PID gain, velocity_ff, etc.)


In control.yaml, head_controller has two joint (pan_joint and tilt_joint) and make trajectories.


Trajectories are specified as a set of waypoints to be reached at specific time instants, which the controller attempts to execute as well as the mechanism allows. Waypoints consist of positions, and optionally velocities and accelerations.






Controller_manager


controller_manager manages some controllers


controller_manager needs to load controllers.


<!– Load joint controller configurations from YAML file to parameter server –>


<node name=”controller_spawner” pkg=”controller_manager” type=”spawner” respawn=”false”

output=”screen” ns=”/gretchen” args=”joint_state_controller

head_controller”/>




RQT_GRAPH








How to connect real robot


need to costruct hardware_inferface


It is hardware_interface example.



ROBOTICS made hardware_interface of dynamixel motor for ros-control.




Example


1) Head Controller


Head controller control pan and tilt. input of the controller is tf, joint_states, head_controller/state



  • tf

    • tf is relationship between frames


    • tf is a package that lets the user keep track of multiple coordinate frames over time. tf maintains the relationship between coordinate frames in a tree structure buffered in time, and lets the user transform points, vectors, etc between any two coordinate frames at any desired point in time.








  • joint_states

    • it is raw data from motor controller






  • head_controller/state

    • desired, actual, error check for control

    • it is calculated by controller.





output



  • head_controller/command

    • set radian postion at each joint





2) Other robot


You can easily control the robot manipulator using ros-control and moveit.



3) Simple pan title model



1. User click a point


2. make target_line using the point


Target_line consist of those



  • geometry_msgs/PointStamped target

  • geometry_msgs/Vector3 pointing_axis

  • string pointing_frame

  • duration min_duration

  • float64 max_velocity


3. calculate inverse kinematics for getting joint angles


4. publish angle on each joint


5. move




Why it is need?


Once control part constructed using ros-package.


Perception part focus recognition and just publish u,v.


Reference




This page is synchronized from the post: ‘What is ros-control’

Git, SVN 자주 사용하는 명령어 정리

Ubuntu에서는 git-cola, gitg라는 gui git tool을 사용해서 repo를 관리한다.


Window에서는 smartgit을 사용한다.


왠만한 것은 gui에서 해결하지만 가끔 terminal에서 작성해야할 경우가 있다..




git status


git 상태 체크, 어디 브랜치에 있는지, 뭐가 변경되었는지



로컬 git repo 만들어서 push하기


git init


local git repo 만들기


git add .


현재 폴더에 있는거 커밋하기


git-cola, gitg에서 체크해서 커밋하고싶은 것만 커밋해도 된다.


git remote add origin https://project.git


github, bitbucket 등의 server의 repo와 연결한다.


그 후로는 git-cola, gitg를 써서 push 한다.






SVN 관련 명령어


wordpress 플러그인을 업데이트 하기 위해서 svn을 사용해야한다.


git으로 하면 얼마나 좋았을까.. 굳이 svn gui를 또 설치하고 싶지 않아서


terminal에서 다 해결하기로 했다. 하지만, 항상 까먹어서 history를 보기 때문에


기록을 해놓는다.



svn co https://plugins.svn.wordpress.org/warpsteem/ warpsteem_svn/


checkout (svn server에 있는 코드를 가져온다.)


svn stat


변경된 사항을 체크할 수 있다.


svn ci -m “added tag filter”


> 파일 변경된 것을 추가 작업 필요없이 바로 서버로 푸쉬할 수 있다.



This page is synchronized from the post: ‘Git, SVN 자주 사용하는 명령어 정리’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×