
작성자 : 한양대학원 인공지능융합학과 유승환 박사과정 (CAI LAB) 안녕하세요!! 정말 오랜만의 블로그 포스팅입니다 ㅎㅎ 요새는 Offline Reinforcement Learning 분야를 연구하고 있습니다! 그런데 요녀석이 학습이 생각보다 잘 안돼더라고요 ㅜㅜ 저와 비슷한 고민을 하는 분들을 위해 오프라인 강화학습을 위한 팁! 논문을 가져왔습니다 ㅎㅎ 재밌게 읽어봐주세요~! 논문 링크 : https://openreview.net/forum?id=POvMvLi91f DR3: Value-Based Deep Reinforcement Learning Requires Explicit... Despite overparameterization, deep networks trained via supervised..
지금은 매니퓰레이터 자체를 연구 개발하고 있지만 개인적으로 dextrous, non-prehensile 매니퓰레이션을 연구하고 싶은 생각이 있다. 협동 로봇팔이라는 플랫폼에 국한되기 보다는, 매니퓰레이션이 가능한 플랫폼 안에서 작업을 하는 형태의 연구를 하는 것이 미래에는 도움이 될 것 같다는 생각이 든다. 그러려면 물론 Whole body control부터 Deep Leanring 까지 해야겠지만 어쨌든. 그래서 요즘 휴머노이드를 개발하고 있는 테슬라는 과연 어떤 Robotics 엔지니어를 뽑고 있으며, 그들이 요구하는 능력은 무엇인지 확인해보려 한다. 가장 핫한 회사가 원하는 인재상은 무엇인지 한번 훔쳐보고, 이 인재상을 다 만족시킬 수 있도록 노력해보자는 취지. 테슬라 입사의 자격 요건 반복..

rosdep, 무엇일까? 여느 때처럼 Docker 위에 ROS Melodic을 설치하고 있었습니다. ROS 공식문서(바로가기)에 있는 설치 과정을 따라가다가, 문득 rosdep 명령어에 대한 궁금증이 있었는데도 불구하고 매번 그냥 지나친게 찜찜해졌습니다. 그래서 rosdep에 대해 정리 해 보았습니다. 처음으로 1.6 Dependencies for building packages 부분을 자세히 읽어 보았습니다. 요약하자면 이렇습니다. 우리는 ROS 안에서 하나의 패키지만을 사용하지 않습니다. 여러 개의 패키지들은 각각 독립적일 수도 있지만, prerequisite 패키지가 target 패키지에 영향을 주는 등 서로 "의존성"을 가질 수도 있습니다. 그리고, 필요한 prerequiste 패키지는 경우에 따..

오늘은 학술적인 내용보다는 조금은 테크니컬한 내용을 가져왔습니다. ROS2와 함께 Moveit2도 같이 Release가 되어 여러 로봇 연구에 사용되고 있는데요. 그 중 최근 제가 관심 있게 보고 있는 기능은 Hybrid Planning입니다. 모바일 로봇에 조금 익숙하신 분들은 Global Planner와 Local Planner에 대한 개념을 알고 계실 겁니다. Motion planning은 크게 봤을 경우 “Sense-Plan-Act” 방식을 사용하는데요. 이런 방식은 환경이 변하지 않는 상태에서 진행하는 Global motion planning에서는 잘 작동합니다. 다만 주변 환경이 다이나믹하게 변하는 경우에는 Global planner로만으로는 Task를 부드럽게 수행하기 어렵습니다. 이런 이유..
Motion Planning Python API(링크) ▶ Moveit planning Scene Configuration 무브잇은 기본적으로 다수의 플래너를 제공한다. 이런 플래너마다 세팅과 파라미터를 설정해줘야하는데, ROS2에서는 configuration yaml 파일을 작성하면 된다. moveit_py 노드와 맞는 cofiguration 파일을 보자. planning_scene_monitor_options: name: "planning_scene_monitor" robot_description: "robot_description" joint_state_topic: "/joint_states" attached_collision_object_topic: "/moveit_cpp/planning_sce..

패키지를 생성해준다. ros2 pkg create \ --build-type ament_cmake \ --dependencies moveit_task_constructor_core rclcpp \ --node-name mtc_node mtc_tutorial ros2로 넘어가면서 노드 이름을 추가해서 cpp 파일을 바로 만들 수 있다. 만들어진 mtc_node.cpp 파일을 확인해보자. #include #include #include #include #include #include #if __has_include() #include #else #include #endif #if __has_include() #include #else #include #endif 헤더에는 로스2에 필요한 rclcpp와 플..

Moveit Task Constructor (이하 MTC)는 복잡한 모션 플래닝 문제는 간단한 하위 문제들로 구성하도록 해주는 프레임워크이다. 가장 상위 레벨의 문제는 Task라하고, 하위 문제들은 Stages라고 한다. Stage들을 구성하는 순서는 상관없고 각 Stage들의 타입에 제한될 뿐이다.결과 흐름에는 3가지 유형이 있다. Generator, Propagator, Connector 단계이다. Generators는 독립적으로 계산되면서 양방향으로 전부 결과를 전달한다 (IK sampler는 도달하고 빠지는 모션 전부와 관련 있는 것 처럼) Propagators는 이웃 stage에서 결과를 받고, 하위 문제를 풀고 반대편의 이웃에게 결과를 전달한다. 구현에 따라서 앞으로, 뒤로, 양방향으로..

Towards a Natural Motion Generator : a Pipeline to Control a Humanoid based on Motion Data https://ieeexplore.ieee.org/document/8967941 Towards a Natural Motion Generator: a Pipeline to Control a Humanoid based on Motion Data Imitation of the upper body motions of human demonstrators or animation characters to human-shaped robots is studied in this paper. We present a pipeline for motion retarge..