URDF (20) 썸네일형 리스트형 2024-1 자벌레 모방 로봇(Inchworm-Inspired Robot) - #5 (Gazebo 환경 세팅 및 컨트롤러 설계 2, IK, Cubic spline trajectory) 보호되어 있는 글입니다. 2024-1 자벌레 모방 로봇(Inchworm-Inspired Robot) - #4 (Gazebo 환경 세팅 및 컨트롤러 설계 1) 보호되어 있는 글입니다. 2023-1 4족보행 로봇(Quadruped robot) 만들기 #10 (Inverse Kinemtics & 간단한 제어 코드 작성) #9까지 해서 gazebo에서 quadruped를 제어하기 위한 환경 세팅을 마쳤다. 환경을 만들었으니 이제는 '제어 테스트'를 해볼 차례이다. 제어라고 하지 않고 '제어 테스트'라고 한 것은 gazebo에 구현한 로봇은 내가 실제로 만들 로봇과 100% 같지 않을 것이기 때문이다. 질량이 균등하게 10배가 되어서 질량 중심은 이전과 같겠지만 그렇다고 각 link별 질량, 질량 중심, 상대 위치가 실제와는 조금씩 다를 것이기 때문이다. 또 시뮬레이션에서는 이상이 없다고 판단했지만 실물로 제작하니 부품 사이의 유격, 발견하지 못한 부품 간의 간섭, 모터의 백래시(backlash) 등이 있을 수도 있다. 즉 내가 gazebo 시뮬레이션으로 gait을 잘 구현해도 같은 제어 코드가 실물 로봇에는 잘 맞지 않을.. 2023-1 4족보행 로봇(Quadruped robot) 만들기 #9 (urdf 제작 및 rviz, gazebo 3) #8까지 해서 4족보행 로봇 prototype의 설계, 모델링, urdf제작 및 gazebo 설정을 계속 공부하면서 맞춰두었던 상태였다. 하지만 다른 프로젝트를 진행하고 와서 다시 보니 이전에는 보이지 않던 문제도 보였고 더 깔끔하게 '시뮬레이션 환경 세팅 프로세스'를 정립할 수 있겠다는 생각이 들었다. 그래서 설계와 모델링은 그대로 사용하고 urdf와 gazebo 세팅을 처음부터 다시 했다. 우선 새로 발견한 문제는 총 3개였고 전부 해결했다. 아래는 새로 발견한 문제와 더불어 앞서 다뤘던 문제의 해결 방법을 여러 trial-error와 공부를 통해 찾은 내용을 정리했다. ①(New)현재의 4절 링크(loop kinematics)를 생략하고 만든 urdf는 기구학이 아예 달라져 시뮬레이션에서 사용.. 2023-2 델타 로봇(Delta robot) - #5 (URDF 제작 및 Gazebo 2) [#4 URDF 제작 및 Gazebo 1]에서 이어집니다. 이전 #4까지 완료하면 URDF를 만들어서 gazebo에 올린 후 control(ros_control)할 기초적인 준비까지 끝난 것이다. 우선 테스트 제어 전에 controller의 정보를 간략하게 정리해 보면 다음과 같다. type : effort_controllers/JointGroupPositionController topic : /arm_position_controller/command (Float64MultiArray) +)만약 #4에서 controller를 effort_controllers/JointPositionController 그대로 사용했다면 topic은 각 controller(motor)별로 /controller이름/comma.. 2023-2 델타 로봇(Delta robot) - #4 (URDF 제작 및 Gazebo 1) 나는 gazebo를 이용한 시뮬레이션(굳이 gazebo가 아니라도)은 로봇 제작에 있어서 상당히 중요하다고 생각한다. 그 이유는 아래와 같이 꼽아볼 수 있다. ① 설계, 모델링 과정에서 미처 파악하지 못한 링크 간의 간섭을 확인할 수 있다. ② 간단하게라도(비록 엄밀하지 않더라도)모터 스펙이 원하는 동작을 하는데에 충분한지 확인할 수 있다. ③ 실물 제작전에 전체적인 모델을 보고 설계 수정을 할 수 있다. 그런 의미에서 WIM에서 제작하는 델타 로봇도 실물 제작 전에 urdf를 만들었고 그 과정에서 '감속기 사용'이라는 큰 설계 변경을 실물 제작 전에 적용하였다. 이 글은 내가 제작한 델타 로봇의 urdf를 만드는 과정을 정리한 것이다. +)굳이 델타로봇이 아니더라도 URDF를 만드는 것에 관해 도움이 .. 2023-1 4족보행 로봇(Quadruped robot) 만들기 #8 (urdf 제작 및 rviz, gazebo 2) ⓑcalc_inertia_for_urdf.py를 이용해 inertia를 계산: 구글링 하던 도중 'urdf를 input으로 주면 각 링크의 mass와 stl파일을 기반으로 urdf의 inertia tag를 output으로 주는' 파이썬 코드를 찾았다. 정확하게 내가 필요한 것이었고 큰 문제도 없다고 했다. https://github.com/gstavrinos/calc-inertia GitHub - gstavrinos/calc-inertia: Based on a provided URDF (or xacro), it reads all geometries that have a mass inertial tag, an Based on a provided URDF (or xacro), it reads all geom.. 2023-1 4족보행 로봇(Quadruped robot) 만들기 #7 (urdf 제작 및 rviz, gazebo 1) ※ 글#7, #8, #9는 fusion2urdf를 이용해 로봇을 gazebo에서 시뮬레이션하기 위한 세팅을 하는 과정에서 얻은 지식과 겪은 시행착오를 전부 기록하고 있다. 완성한 모델을 urdf로 만들기 전에 각 part에 알맞은 inertial값(mass, (mass) moment of inertia)을 설정해 줄 필요가 있었다.(+글 중간에 과정을 설명할 예정이지만 이번 프로젝트에 한해 이 inertial을 정확하게 넣으려는 과정은 무의미했다...) Rviz는 inertial이 없어도 상관없지만 Gazebo는 urdf의 inertial값이 없거나 이상하면 에러가 발생한다.(+제대로 넣는다고 정상작동하는 것도 아니고 이상하게 넣는다고 무조건 에러가 발생하는 게 아니라는 것을 이번 과정 후반부에.. 2021-2 간단한 ROS연습용 로봇팔 제작 #11 [ROS+Moveit!+아두이노 4]Moveit!으로 실물 로봇을 움직이게 하기 위해 가장 먼저 gazebo를 이용한 시뮬레이션을 실행시키고 노드와 메시지를 확인했다. 몇몇 메시지를 rostopic echo로 보면서 확인한 결과 실시간 각도 정보를 갖고 있는 메시지는1. /arm_controller/state2. /joint_states였다.하지만 /joint_states 메시지는 /move_group에서 나오는 게 아닌 /gazebo에서 나오는 것이기에 이 상황에선 1번 메시지를 쓰는 것이 적합하다고 생각했다. 사용할 메시지를 찾았으니 이제 노드를 만들어야 한다. 내가 사용할 노드는 아래의 특징을 가져야 한다.1. /arm_controller/state 의 desired의 position을 subsc.. 2021-2 간단한 ROS연습용 로봇팔 제작 #8 [ROS+Moveit!+아두이노 1] 이제 rosserial과 아두이노를 이용해서 ros로 로봇을 움직이게 할 차례다. 우선 아두이노 환경을 구성했다. 이전에는 아두이노 IDE를 사용했지만 이제는 VSCODE에 익숙하기도 하고 이미 ROS를 VSCODE로 하고 있기 때문에 아두이노 extension을 설치해서 VSCODE로 코딩을 하기로 했다. https://ttuk-ttak.tistory.com/31 [VS code] VS code에서 아두이노 개발 환경 구성 1. VS code와 아두이노를 각 OS에 맞게 설치한다. VS code : https://code.visualstudio.com/download 아두이노 : https://www.arduino.cc/en/Main/Software 맥을 사용할 때.. 이전 1 2 다음