본문 바로가기

Gazebo4

action client not connected: arm_controller/follow_joint_trajectory 1. 문제 Moveit과 Gazebo를 연동하는 도중에 demo_gazebo.launch를 실행하니 다음과 같은 오류가 발생했다. 2. 해결 인터넷을 찾아보니 보통은 config/ros_controller.yaml 파일을 잘못 작성한 경우에 발생하는 오류였다. 하지만 나의 경우에는 xacro파일에 문제가 있었다. 내가 직접 작성한 게 아니고 다른 곳에서 가져오다보니 확인을 제대로 하지 못해서 이런 오류가 발생했다. xacro 파일 안에 가제보와 연동하기 위해 필요한 ros control plugin 부분에서 /utra6_850 gazebo_ros_control/DefaultRobotHWSim true robotNamespace를 없애주어야 한다. 0.001 gazebo_ros_control/Default.. 2023. 6. 30.
ROS에서 뎁스카메라 사용을 위한 올바른 URDF 작성법 팔만 덩그러니 있던 친구에게 몸통을 달아줬습니다. 첫번째 문제 발생 로봇이 자기 자신을 인식하는 문제가 발생했습니다. urdf에서 visual에는 로봇의 stl 파일을 넣어줬지만 collision에는 로봇이 다른 장애물과 부딪히지 않게 하기 위해 아주 작은 네모 박스를 임의로 넣어주었는데 collision에 작성한 부분이 실제 로봇이라 인식을 안 하고, 나머지는 다 장애물로 인식해서 발생한 문제입니다. --> collision에도 stl파일을 넣어서 해결해줍니다. 또는 로봇보다 살짝 크게 직사각형이나 원통을 만들어주면 됩니다. 두번째 문제 발생 로봇 팔 사이에 있는 장애물 인식이 안 됩니다. 로봇 전체에 해당하는 stl파일을 collision에 넣으니 stl 형상대로 collision이 생겼다기보다는 로.. 2022. 10. 5.
MoveIt!을 이용한 2-axis Prismatic joint Gazebo에서 구현하기 이번에는 다음 사진처럼 2방향으로 로봇이 linear하게 움직이도록 만들어보겠다. world부터 로봇의 시작 링크 link0 사이의 urdf 내용은 다음과 같다. prismatic joint에서 lower과 upper는 움직이는 최소 최대 범위를 설정해주는 것이다. 한 축으로만 움직이게 할 때에는 world와 link0사이에 prismatic joint를 넣어주기만 하면 되는데 축이 두 개이상됐을 때에는 그 사이에 link를 world처럼 가상의 link를 넣으면 안 되고 가제보 물리 모델에 적용 가능하도록 inertia 정보를 넣은 link를 추가해줘야 한다. (visual, collision은 안 넣어도 된다. 필수 X. visual을 안 넣어주면 보이지 않아서 없는 것처럼 보이는 효과를 얻을 수 있.. 2022. 8. 4.
[ROS] Gazebo상에서 joint_position rosservice값으로 로봇 PID제어하기 이전 게시물에서는 rosservice로 로봇 조인트의 position값을 받는 부분까지 알아보았다. 이번에는 subscribe한 값을 이용해서 링크가 넘어지지 않고 계속 서있을 수 있도록 로봇을 제어(PID)하는 방법을 다뤄보도록 하겠다. teleop_twist_keyboard.cpp 파일을 다음과 같이 수정한다. #include #include #include #include #include #include #include #include // Init variables float Kp(50), Ki(1.2), Kd(1.5); float P_control(0), I_control(0), D_control(0), PID_control(0); float goal_position(0); float error.. 2022. 3. 5.