본문 바로가기

전체 글294

11 week HW (2) Parameter programming review https://needs-searcher.tistory.com/181 6 week HW Parameter control using turtlesim node Experiment of ROS2 parameter, RQt, and ROS2 package installation 1. parameter 2. ROS2 tools - Command Line Tools https://github.com/ubuntu-robotics/ros2_cheats_sheet/blob/master/cli/cli_cheats_shee.. needs-searcher.tistory.com command list see a list of parma $ ros2 param list get value of a param $ ro.. 2021. 11. 16.
11 week HW (1) action programming : action client node 1. write "fibonacci_action_client.py" code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 import rclpy # import ActionClient class to make actionclient from rclpy.action import ActionClient from rclpy.node import Node # import Fibonacci interface type from my_interface_example.action i.. 2021. 11. 14.
Operating OpenManipulator-X using Myo-armband in ROS1(melodic) 최종정리 로봇 학습에 쓰일 데이터 생성, 그리고 실질적인 로봇의 구동을 위해서 ROS기반 로봇제어를 수행하였다. 지금까지 일기형식으로 개발상황을 쭉 써내려왔는데 이를 가독성있게 정리해보려고 한다. Objective 1. 팔의 움직임으로 로봇팔 실시간 원격조종 2. 팔의 현재 위치를 기준으로 로봇 위치 초기화(Calibration) 3. 원격조종으로 수행한 task의 경로를 저장하여 로봇으로 반복 수행 PC Enviroment ( Labtop ) OS : Ubuntu 18.04 ROS : melodic CPU : i5 Graphic Card : 내장그래픽카드 Hardware OpenManipulator-X(ROBOTIS) OpenCR Interface 개발에 활용한 Original Packages(이들을 수정하여 .. 2021. 11. 13.
vector error : out of range robot의 trajectory값이 저장된 txt파일에서 각 열의 데이터를 vector로 저장하고 해당 벡터를 main()에서 while구문으로 불러와 controller에 해당 joint값을 넘겨주는 코드를 만들고 있다. 해당 에러는 vector에서의 값을 순서대로 joint로 할당할 때, 해당 vector의 마지막 원소를 넘었거나, txt파일이 비어있어 joint로 넘겨줄 데이터가 없을 때 발생하였다. 본 에러가 발생하는 이유는 벡터에서 특정 값을 호출할 때, 호출된 벡터가 끝났거나 비어 있어 호출할 수 있는 값이 없기 때문이다. (참고글) if 구문과 vector.size()함수를 활용해 벡터의 size보다 더 큰 수로 벡터를 호출하면 함수를 return시키는 방법으로 해결할 수 있었다. 2021. 11. 13.
[MC BlackJack] 오류 수정 및 결과도출 pi_table. action 초기화가 모두 0인지 확인하고 랜덤으로 바꾸기 왜 pi_table에 playersum이 11이 나오는지 확인하기 그런데 교재를 확인하니 Optimal policy 부분에 playerCardSum이 11부터 시작한다?! policy improvement에서 코드오류발견 - 제대로 improve되지 않는 것 수정 playerSum이 12보다 작을 때도 그대로 state로 전달하는 오류 발견. 12보다 작으면 카드를 한 장 더 뽑았을 때 무조건 21보다 작으므로 hit을 자동으로 하여 12이상의 상황에서 시작해야함. 이를 반영하여 코드 수정. not natural 상황, stack을 했을 때 비기는 상황을 만들어 놓지 않은 것 발견 - 수정 episode 5000000회 진행. .. 2021. 11. 13.
강화학습관점 좋은 습관 만드는 법 고찰 우선 한번도 해보지 않은 액션이라면, 시도해봐야 한다. 그리고 최선을 다해 그 보상이 커지도록 한다. 습관은 policy이다. 어떤 상태에서 경험적으로 어떤 행동을 했을 때 만족감이 컸는지 자연스럽게 기억되고 오래 지속되면 그 것이 policy로 습관으로 남는다. 습관을 바꾸려면 다른 액션으로 더 큰 보상을 받아야 한다. 현실에서 눈앞의 쾌락이 크면 장기적으로는 마이너스인 액션들이 많다. 멀리 내다보고 억지로 다른 긍정적인 액션들을 경험하고 그리고 더 힘들겠지만 지속함으로써 보상을 맛봐야 한다. 어렵지만 해내면 멋진 많은 것들은 시간과 성과가 지수함수 관계에 있다. 어느 시점을 지난 이후부터 성장이 느껴지고 그 이후로는 급격한 성장이 이루어진다. 그러므로 힘든 노력을 지속하고 끝내 보상을 맛보았을 때, .. 2021. 11. 11.
RL 개념 흐름 정리 DP, MC, TD, Sarsa, Q-learning, n-step TD, TD(lamda), Forward, Backward, Eligibility 흐름으로 왜 해당개념이 나왔는지 생각하며 정리. 2021. 11. 11.
[MC BlackJack 결과 시각화] 학습결과 그래프로 나타내기 1. 3D plot 아래 사진과 같이 모든 state(playerCardSum, DealerShowing, usableAce)에 대한 Optimal Value를 나타내려고 하였다. 아직 오류가 있어 playerCardSum이 11인 값도 나타나고 있다. 원래 12 미만의 값은 없어야 한다. 현재 이를 해결하고 있다. 아무튼 아래와 같은 3D plot자체를 만들기 위해서 꽤나 어려움을 겪었다. 아래의 소스코드 맨아래를 참고하였다. 조르디교수님코드 코드를 보면 먼저 x와 y의 범위를 지정한다. 그리고 이를 통해 meshgrid를 만든다. 똑같은 x 배열을 y길이방향으로 쭉 복사한다. 마찬가지로 y배열을 x길이방향으로 쭉 복사한다. 이렇게 만든 각각의 장판을 겹쳐서 보면 2차원상에 (x,y)쌍이 만들어진다. .. 2021. 11. 10.
10 week HW (3) action programming : action server node 1. make package 2. make python file 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 import rclpy # import ActionServer class to make actionserver from rclpy.action import ActionServer from rclpy.node import Node # import Fibonacci interface type from my_interface_example.action import Fibonacci class FibonacciAction.. 2021. 11. 9.
10 week HM (2) : create action interface [make action file] goal --- result --- feedback [revise CmakeList.txt] [check the interface] 2021. 11. 9.
10 week HM (1) service programming Message, Service interface programming - Test the created msg interface [pub_node] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 import rclpy # Node class import. In Node class, there are create_publisher(), create_timer().. 2021. 11. 9.
상상 : 일상 환경에서 로봇이 강화학습을 시작한다면 강화학습 알고리즘을 가진 로봇은 시간이 지날 수록 지능이 견고해진다. 알파고가 시간이 지날 수록 더 많은 대국을 통해 엄청난 경험을 가진 실력자가 되는 것 처럼. 많은 사람들에게서 사용되는 강화학습 로봇이 있고 그 로봇들이 서로 지능을 하나의 클라우드로 공유하며 마치 스마트폰 SW업데이트처럼 주기적으로 업데이트된다면, 상상하기 어렵지만 언젠가는 인간의 삶 속에서 뛰어난 운동지능과 사회적 규칙을 준수하며 생활할 수 있을 것이다. 로봇의 몸체인 HW는 계속해서 발전될 것이고 SW 역시 끝없이 발전되고 업데이트 될 것이다. 시작은 걸음마도 떼기 힘든 수준의 운동지능이라도 단 몇 세대만 거쳐도 어마어마할 것이다. 아직 가정에, 우리 주변에서 로봇이 없고 때문에 이러한 환경에서 학습을 하고 있지 못하지만 수많은 .. 2021. 11. 6.