Ros_control와 gazebo를 활용한 pan/tilt control

로봇팔이나 머리 등 엑츄에이터를 원하는 곳으로 제어하는 것은 어려운 일이다.


예를 들어, 로봇 팔로 사과를 잡는다고 한다.


사과를 잡기 위해, 로봇 팔의 손가락 (End effector)이 목표하는 위치로 가기 위해서는 팔의 관절 (Joint)들이 각도를 적절히 설정되야한다.


음.. 사람은 자연스럽게 되지만 로봇이 사과를 잡기 위해 관절들의 각도를 계산해야한다. 이것을 역기구학이라고 한다.


하지만 역기구학을 공부를 했다고 하더라도 코드로 작성하는 것은 어려우며, 자유도가 높아질 수록 더 어렵다.


코드를 잘 짠다고 하더라도 수식도 어렵다. 이럴 때는.. 기초적인 것을 이해하고 잘 만들어 논 것을 활용하면 된다.


바로 ros_control..



위의 사진은 공부를 하면서 만든 로봇 머리이다.


이미지에서 좌표를 선택하면, 로봇은 그 좌표를 중심이 되도록 로봇 머리를 움직인다.



공부한 것


1.모터 포지션 컨트롤


모터를 원하는 각도 (위치)로 제어하는 것을 의미한다.


그리고 실제 움직이는 로봇과 시각화 툴에서 그대로 보일수 있도록 한다.


아래 동영상은 joint angle을 수동으로 조작해보는 영상이다.





다음으로는 position control을 해야하는데..


여러 joint의 각도를 설정하여, 모터를 조작하는..


업데이트 예정





2.실제 모터컨트롤러 (micro controller)를 ros_control 모듈과 연동시켜, 상위레벨에서 제어하고자 한다.


Pal robotics


스페인 회사이다.


내가 하고자 하는 것을 제대로 구현을 해놨다.


코드를 보면서 많은 공부가 됐다.



동영상 위치 http://wiki.ros.org/Robots/TIAGo/Tutorials/motions/head_action



  • roslaunch tiago_gazebo tiago_gazebo.launch robot:=titanium public_sim:=true world:=look_to_point

  • rosrun look_to_point look_to_point


이미지에서 좌표 찍은 곳을 바라본다.




카메라 z축이 초록색 직선 A와 일치하게 만든다.


Controller에서는 좌표를 받고, 직선을 만든 후, 직선과 카메라 z축이 일치하게 한다.


Controller는 카메라 z축과 직선 A를 일치시키기 위해, 역기구학 문제를 풀고 pan 과 tilt의 각도를 계산한다.


그리고 joint trajectory를 생성하여 모터를 제어한다.


최종적으로 아래와 같은 결과가 된다.





Perception에서는 좌표를 넘기는 역할을 한다.


예를 들어 음료수에서 감자칩을 볼 수 있도록 x,y 좌표를 넘겨준다.


컨트롤러에서는 좌표를 카메라 축이 보게될 방향으로 변환, 그리고 제어를 한다.




하드웨어


실제 모터 컨트롤러는 아래와 같은 출력과 입력이 필요하다.


출력 : curr_vel, curr_effort, curr_pos


현재 속도, 파워, 위치를 업데이트한다.


입력 : cmd_pos


목표하는 위치(각도)를 입력 받는다.




ROS Control에 연결


추후 정리 예정




참고링크


https://pinkwink.kr/1007


https://pinkwink.kr/1013


Ros control



Head action



실험을 하면서 계속 업데이트할 예정이다.


This page is synchronized from the post: ‘Ros_control와 gazebo를 활용한 pan/tilt control’

[후기] 이오스 나이츠 100층 입주

이오스 나이츠를 한지 10일


드디어 100층에 왔다.


100층부터 유니크 재료가 나오며, 좀 더 강력한 장비를 맞출 수 있다.


지금까지 하면서 느낀점에 대해 간단히 적어본다.



느낀점


게임을 할수록 신경을 덜쓰게된다.


템만 맞춰놓으면 알아서 사냥하기 때문이다.


체감상 장비가 좋아질수록 한판당 시간이 오래 걸리는것 같다.


내가 할 것은 아이템을 팔고 템을 맞추는것




꿀팁


현질은 캐릭터 만들 때, 장비칸, 재료칸 하나씩 늘리는데만 썼다. 1EOS 정도?


그 후로는 재료를 모아 사람들에게 팔았고


판 돈으로 장비를 맞췄다.


꿀팁을 하나 알려주자면


초반 레벨 7까지는 적당히 최저가 템을 사도 괜찮다.


재료를 사서 만드는 것보다 훨씬 싸다.




레벨이 7이 되고 나서는 남는 재료들로


장비를 만들어 사람들에게 팔았다.


이 게임에서 괜찮은게 자기가 잘 사용하던 장비를 그대로 다시 팔 수 있다.


이 무기는 97프로 무기로 얼마에 팔릴지 아주 기대된다. 레벨 11정도 되면 팔 예정이다.



아직까지는 이겜으로 돈을 모은다기 보다는


재미로 하고있다. 템맞추는게 나름 재밌다.


유니크 템을 만드는 것을 기대하고있다.


시간이 나면.. 매크로를 만들어보고 싶긴하다.


근데 매크로 만드는 시간보다 가끔 눌러주는게 낫을거 같다.




100층을 가는 방법


나는 100층을 올라가기 위해 템을 강화했다.


나 같은 경우는 각 캐릭터들의 레벨이 8이다.


그리고 장비 레벨은 7짜리를 끼고 있고 2-3강정도 하고 있다.


이전에 쓰던 장비을 팔고 좋은 장비로 차근차근 바꾸면서 한층한층 올라갔다.


즉, 현질을 하지않는다면 차근차근 재료를 팔아서 아이템을 바꾸거나 강화하면 된다.




두번째 방법은 같이 하는 형이 하고 있는 방법이다. 펫을 강화하면 된다고 한다.


장비는 레벨이 높아질때마다 바꿔야하지만


펫은 좋은거 한번뽑아놓으면 계속쓴다고 펫에 투자했다고 한다.


끝!




궁금한게 있으면 댓글 달아주세요!


친절히 알려드릴게요.


추천인 passionbulll 해주시면 감사합니다.


감사합니다!!


This page is synchronized from the post: ‘[후기] 이오스 나이츠 100층 입주’

[일기] 좋은 글 쓰기

스팀잇을 하고 나서


자주 글을 쓰게 된것 같다.


스팀잇을 하기 전에도 가끔 일기도 쓰긴 했고


워드프레스 블로그에 내가 했던 것을 정리하긴 했다.


하지만 사람들이 보는 글이 아니였고


내가 알아볼 수 있을 정도로만 간단히 적는 경우가 많았다.


물론, 나중에 내가 봐도 다시 못알아보는 경우도 많다.


또.. 연구실에 다닐 때는 논문을 써야했는데


그게 그렇게 힘들수가 없었다.


나는 내가 생각한 것을 구현하는 것에는 어느정도 자신이 있었지만


내가 아는 것, 생각하는 것을 말로 표현하는 것, 글로 쓰는 것은 어려웠다.


이게 각 문장들이 틀리지는 않는데, 서로 연결이 되지 않는다고. 맥락이 없다고..





스팀잇에 자주 글을 쓰게 되면서


글을 잘 쓰고 싶다는 마음이 생겼다.


다른 사람들이 쓴 글들도 많이 보고 기회가 되면 글쓰기 책도 보고


좋은 글을 써야지!

감사합니다.


This page is synchronized from the post: ‘[일기] 좋은 글 쓰기’

[영화] 보헤미안 랩소디 - 내가 누군지는 내가 결정해



방금 영화를 보고왔다.


영화관을 잘못찾아 앞부분을 조금 못봤다.


앞부분을 못봐서 났던 짜증이 영화를 보면서, 노래를 들으면서 사라졌다.


퀸이라는 가수를 전혀 몰랐지만, 보면서 알게되었다.


노래들이 다 너무 좋다. 한동안은 퀸 노래만 들을 것 같다.

10점 만점에 10점!

맘에 안드는 것은 다 눈감아줄 수 있을것 같다.


퀸의 천재성

이 영화는 노래가 반, 그리고 스토리가 반이다.


스토리에서는 퀸 밴드 사람들의 천재성


싸우다가도 괜찮은 연주를 하면 싸움을 멈추고 연주를 하며


아이디어를 서로 주고받으며 계속 색다른 도전을 하고자 하는 열정


영화로 보면서 되게 멋진사람들이다 생각했다.




그들의 우정


영화만 봐서 실제가 어떤지는 잘 모르겠다.


영화 속에서 싸울 때도 있지만 서로 이해해주고 상처를 감싸주던 따뜻함이 기억난다.




어디서 들어본 노래들


어디서 들어본 노래들이 다 퀸노래였다니..


나는 신나는 노래를 좋아하는데


그런 노래들을 오늘 찾았다.




사랑 이야기


사랑하는 여자가 있었지만


월드 투어를 다녀야 했다.


사랑하는 여자가 있지만


다른 남자도 눈에 들어왔다.


언제나 내곁에 있어줄거라 생각했는데


그렇지 않았다.


슬프지만 놓아주는


그 사람의 행복을 바라는..


그런 주인공의 마음이 느껴지는 것 같았다.




주절주절


노래와 함께 닭살이 돋았다 ㅋㅋ


주인공들의 연주, 창의적인 아이디어, 퍼포먼스


사랑과 우정


밴드를 아우르는 리더의 카리스마


그럼 하늘을 뚫으면 되지!





이 영화는 ..


영화관에서 할 때 한번 더 보겠다.


This page is synchronized from the post: ‘[영화] 보헤미안 랩소디 - 내가 누군지는 내가 결정해’

Google assistant library on ubuntu #1 사전 조사

저는 취미활동으로 저만의 로봇을 만들고 있습니다. 중간중간 쉬고 있긴 하지만 꾸준히 하는중이긴 합니다.


최근에 계속 로봇에 어떻게하면 쉽게 음성인식 기능을 적용할 수 있을까? 에 대해 고민중입니다.


이 포스팅은 구글 어시스턴트를 어떻게 로봇에 적용할까? 에 관련된 포스팅입니다.


구글 어시스턴트 서비스, 라이브러리를 활용해서 제가 할 것은 아래와 같습니다.



  • 음성인식 결과 (사용자가 말한 것) 가져오기

  • Google assistant의 응답 가져오기

  • 특정 명령에 대해서는 내가 설정한 대답, 혹은 동작을 할 수 있도록 한다. (내방 불꺼줘, Jacob이 누구지? – 제이콥은 저를 만든 사람입니다.)

    • 즉, 구글 어시스턴트의 대답과 내가 설정한 것을 선택할 수 있어야함.



  • 시리야, Ok google 과 같은 Custom Invocation (hot word, wake word)이 필요


이 4가지를 로봇에 적용하려고 합니다.


어느정도 진행을 했는데 아직 정리를 못했습니다.


하나하나 정리를 해보려고 합니다.


감사합니다.


이번 글은 먼저 튜토리얼을 따라서 해보고, 여러가지 검색했던 결과들에 대한 나열입니다.



google assistant에 대한 이미지 검색결과


<출처 : https://assistant.google.com/#?modal_active=none>




Google assistant library 튜토리얼


google에서 제공하는 내용이다.


https://developers.google.com/assistant/sdk/guides/library/python/


이대로 따라해보도록 한다.



마이크 체크



  • arecord l

    • 마이크 목록 확인

    • 0 카드, 0 장치 (card 0, device 0)







  • arecord –format=S16_LE –duration=5 –rate=16000 –file-type=raw out.raw

    • 옵션

      • -D hw: card,device

      • -D hw:1,0 (CameraB409241의 마이크 선택)







마이크 추천


https://community.home-assistant.io/t/best-microphone-for-diy-voice-control-components/51265


스피커 체크



  • speaker-test -t wav


프로젝트 관리


프로젝트 관리


https://console.actions.google.com/u/1/project/


보안 관련, key


https://console.developers.google.com/apis/



Google assistant 튜토리얼 결과물


튜토리얼대로 하면 샘플코드를 실행할 수 있다.


hotword ‘OK google’을 하고, 말을 하면 된다.



  • googlesamples-assistant-hotword –project-id proejctID –device-model-id modelID

    • projectID와 modelID는 아래 순서로 들어가서 가져온다.

    • projectID – 구글 액션 콘솔 -> 톱니 -> Project setting -> project ID

    • modelID – 구글 액션 콘솔 ->Device registration -> model ID





기타


Google assistatnt docker 활용 검토


Custom Device Actions


https://developers.google.com/assistant/sdk/device-actions-overview



파이썬 코드 샘플


https://github.com/googlesamples/assistant-sdk-python/tree/master/google-assistant-sdk/googlesamples/assistant/library


무조건 응답이 있는 것 같다.


특정 조건에서 내가 원하는 것을 할 수 있을까?


잘 모르겠다.


GRPC로 해봐야겠다.


Custom Wake


https://github.com/shivasiddharth/GassistPi


https://snowboy.kitt.ai/



참고 프로젝트




https://wiki.odroid.com/odroid-xu4/application_note/software/ai_speaker


This page is synchronized from the post: ‘Google assistant library on ubuntu #1 사전 조사’

[영어, 오픽] Business trip #1

ê´ë ¨ ì´ë¯¸ì§

<photo at https://startupprize.eu/the-prize-winners-make-a-stop-in-berlin/capture-decran-2018-08-28-a-15-03-41/&gt;

Q. When was your last overseas business trip? Where did you go? What was the purpose of the trip?
[공부하고 있는 책 - 오픽 펀치]

My last business trip was in September of this year.

I went to Berlin to attend exhibition and show our product.

This exhibition is one of biggest IT exhibition.

I am software developer in the company.

My role is checking our products work well and prepare how to show our booth.

Also, I should explain our products to visitors.

Actually, it is first time to going business trip, so I was nervous.

I did my best and many people came our booth. Yeah it was finished successfully.

For successful exhibition, our team prepare all situations.

But, some problems suddenly occurs. So, our team worked over midnight.

While preparing and showing exhibition, I learned a lots.

It is a hard experience, but it is also a good experience.


Q. Have you ever faced an embarrassing moment during a business trip? Tell me everything that happened.

While we were showing our product on a exhibition, somebody stole power generator.

The exhibition don’t provide power, but we need power and rent power generator.

But somebody stole power generator.

After that, our products stopped performances.

We were embarrassing and walk around exhibition and we called police.

But, we can’t find someone stole our generator.

It was embarrassing moment.


키워드 적기

Purpose


전시회에 참여했다.

I attend exhibition to promote our purducts.

My role


나는 개발자다.

I am developer on the company. I developed a robot.

The robot I developed is …

difficulty


It is diffcult to explain our product on english. I am not native. So, I should memorize some script.

영어로 말하는게 어려웠다. 그래서 말할 것을 잘 외워서 준비했다.

너무 많은 물품을 전시하는데, 사람이 적었다. 그래서 힘들었다.

예기치 못한 상황들이 많았다.

Benefits


맛있는 음식을 먹을 수 있었다.

그 나라를 구경할 수 있었다.

전시를 하면서 보완할 점을 많이 알게되다.

Memorable trip, why?


다른 곳은 다 예술품을 전시하는데 우리만 로봇을 전시했다.

그래서 사람들이 많이 왔다.

What do you prepare?


한국에 있는 사람들로부터 각 상품의 설명, 동작방법 등을 배웠다.

짐을 쌌다.

전시회를 위해 추가적으로 개발을 했다.


주절주절


출장을 다녀오고 느낀점을 잘 적어봤어야했는데..

Opic에 출장 관련 주제가 있어 준비도 할겸 내 출장에 대해 정리해보자.

최근에 미국과 독일로 비지니스 트립을 갔다.

목적은 전시회 참여였다.

나는 개발자로서 우리 회사 제품들이 잘 동작하는지 체크해야했다. 또한, 우리 부스로 오는 사람들에게 설명도 해야했다.

이것은 나의 첫 비지니스 트립이였다.

이 비지니스 트립을 무사히 끝내기 위해서

한국에서 미리 잘 동작하는지 확인하고 각 팀으로부터 프로젝트에 대한 설명을 들었다.

미국에서도 다시 한번 잘 동작하는지, 그리고 내가 설명해야할 것을 외워서 자연스럽게 설명 할 서 있도록 하였다.

특히, 미국에 있는 동안은 새벽 2시-3시까지 한국사람들하고 이야기해야하는 경우가 많았다.

힘든 경험이지만 좋은 경험이기도 하다.

외국인들에게 내가 개발한 것을 설명하는 일

그리고 사람들과 이야기, 전시를 하면서 더 보완해야할 것을 알 수 있었다.

그리고 실제 전시회에서는 준비한게 안될 수 있으니 차선책을 생각해야하는 것, 모든 것에 대해 꼼꼼히 준비해야하는 것에 대해 배웠다.


Posted from my blog with SteemPress : https://passionbull.net/2018/11/diary/business-trip-diary/


This page is synchronized from the post: ‘[영어, 오픽] Business trip #1’

Your browser is out-of-date!

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

×