ROS & Robotics
Robot Operating System 1,2 에 관한 내용을 공유합니다.

-
mujoco 는 물리엔진을 지원하는 시뮬레이터로, MJCF 파일 (확장자 : xml) 을 통해서 모델을 환경으로 불러옵니다. 그런데 여기서 문제는 대부분의 로봇 description file 은 URDF 혹은 xacro (xml) 로 되어 있다는 것입니다. 게다가 직접 fusion360 등으로 로봇을 설계할 경우에, 이를 fusion2urdf 패키지 등으로 export 한 경우에 또 URDF 파일을 손에 쥐게 되는 경우가 있죠... 그래서 이 URDF 파일을 MJCF 파일로 바꿔 줘야 하는데, 간단한 방법을 몰라서 삽질을 했습니다. 그 방법은 다음과 같습니다. 우선 터미널에서 mujoco.viewer 를 실행시켜 줍니다. python3 -m mujoco.viewer 그리고 URDF 를 떨어뜨리면 다음과 ..
URDF to MJCF : mujoco-pymujoco 는 물리엔진을 지원하는 시뮬레이터로, MJCF 파일 (확장자 : xml) 을 통해서 모델을 환경으로 불러옵니다. 그런데 여기서 문제는 대부분의 로봇 description file 은 URDF 혹은 xacro (xml) 로 되어 있다는 것입니다. 게다가 직접 fusion360 등으로 로봇을 설계할 경우에, 이를 fusion2urdf 패키지 등으로 export 한 경우에 또 URDF 파일을 손에 쥐게 되는 경우가 있죠... 그래서 이 URDF 파일을 MJCF 파일로 바꿔 줘야 하는데, 간단한 방법을 몰라서 삽질을 했습니다. 그 방법은 다음과 같습니다. 우선 터미널에서 mujoco.viewer 를 실행시켜 줍니다. python3 -m mujoco.viewer 그리고 URDF 를 떨어뜨리면 다음과 ..
2024.01.11 -
요새 계속 MuJoCo 관련 프로젝트를 진행하고 있는데, mujoco 의 python wrapper 인 mujoco-py 는 한국어 자료도 거의 없고, 참고할 만한 자료가 거의 공식 도큐먼트 밖에 없는 것 같았습니다. 프로젝트를 진행하면서 mujoco-py 를 사용하는 방법에 대해서 포스팅을 해 보려고 합니다. mujoco 에서는 xfrc_applied 라는 외력을 사용할 수 있는데, 이를 이용하면 body 에 힘과 토크를 적용할 수 있습니다. https://www.youtube.com/watch?v=N2E-qnsyn1I 다음과 같이 body 에 외력을 줄 수 있습니다. 0. 개발 환경 Ubuntu 20.04 Mujoco-py 1. xfrc_applied xfrc_applied 의 [0:3] 요소는 힘을..
MuJoCo-python 환경에서 body 에 외력 주기 (xfrc_applied)요새 계속 MuJoCo 관련 프로젝트를 진행하고 있는데, mujoco 의 python wrapper 인 mujoco-py 는 한국어 자료도 거의 없고, 참고할 만한 자료가 거의 공식 도큐먼트 밖에 없는 것 같았습니다. 프로젝트를 진행하면서 mujoco-py 를 사용하는 방법에 대해서 포스팅을 해 보려고 합니다. mujoco 에서는 xfrc_applied 라는 외력을 사용할 수 있는데, 이를 이용하면 body 에 힘과 토크를 적용할 수 있습니다. https://www.youtube.com/watch?v=N2E-qnsyn1I 다음과 같이 body 에 외력을 줄 수 있습니다. 0. 개발 환경 Ubuntu 20.04 Mujoco-py 1. xfrc_applied xfrc_applied 의 [0:3] 요소는 힘을..
2024.01.10 -
지난 번에 사용했던 Warthog 로봇과는 달리, Husky 로봇 시뮬레이터에는 IMU가 탑재되어 있어서 따로 urdf 를 수정해 줄 필요가 없습니다. (야호) 다음과 같이 Husky robot 을 Gazebo 에 불러와주고 조종할 수 있게 $ rosrun teleop_twist_keyboard teleop_twist_keyboard.py rostopic list 로 토픽을 확인해 보면 다음과 같이 토픽이 있는 것을 확인할 수 있습니다. /clock /cmd_vel /diagnostics /e_stop /gazebo/link_states /gazebo/model_states /gazebo/parameter_descriptions /gazebo/parameter_updates /gazebo/performa..
Gazebo 에서 IMU 데이터 받아와서 csv 파일로 저장하고 데이터 시각화하기지난 번에 사용했던 Warthog 로봇과는 달리, Husky 로봇 시뮬레이터에는 IMU가 탑재되어 있어서 따로 urdf 를 수정해 줄 필요가 없습니다. (야호) 다음과 같이 Husky robot 을 Gazebo 에 불러와주고 조종할 수 있게 $ rosrun teleop_twist_keyboard teleop_twist_keyboard.py rostopic list 로 토픽을 확인해 보면 다음과 같이 토픽이 있는 것을 확인할 수 있습니다. /clock /cmd_vel /diagnostics /e_stop /gazebo/link_states /gazebo/model_states /gazebo/parameter_descriptions /gazebo/parameter_updates /gazebo/performa..
2023.09.17 -
프로젝트에서 사용하고 있는 RELLIS-3D 데이터셋은 Warthog 로봇으로 획득한 것입니다. 따라서 실험 시뮬레이션도 Warthog 로봇을 사용했는데, 기본 세팅으로 센서가 정의되어 있기는 하지만 rostopic list 를 했을 때 아무 데이터도 볼 수 없었습니다. 따라서 Gazebo 에서 이 센서를 사용할 수 있도록 따로 설정해주어야 합니다. (사담 : 처음에는 Turtlebot3 를 사용했는데, 종잇장처럼 얕은 경사도 오르지 못 했기 때문에 사용할 수 없었습니다.) Gazebo 시뮬레이션 설정 ㄴ src ㄴ warthog_simulator ㄴ warthog_description ㄴ urdf ㄴ warthog.urdf.xacro 이 위치에 들어 있는 warthog.urdf.xacro 파일에 다음 ..
[RELLIS-3D] Gazebo Warthog 로봇에 IMU 탑재하기프로젝트에서 사용하고 있는 RELLIS-3D 데이터셋은 Warthog 로봇으로 획득한 것입니다. 따라서 실험 시뮬레이션도 Warthog 로봇을 사용했는데, 기본 세팅으로 센서가 정의되어 있기는 하지만 rostopic list 를 했을 때 아무 데이터도 볼 수 없었습니다. 따라서 Gazebo 에서 이 센서를 사용할 수 있도록 따로 설정해주어야 합니다. (사담 : 처음에는 Turtlebot3 를 사용했는데, 종잇장처럼 얕은 경사도 오르지 못 했기 때문에 사용할 수 없었습니다.) Gazebo 시뮬레이션 설정 ㄴ src ㄴ warthog_simulator ㄴ warthog_description ㄴ urdf ㄴ warthog.urdf.xacro 이 위치에 들어 있는 warthog.urdf.xacro 파일에 다음 ..
2023.07.05 -
Heightmap 은 지형의 높이 정보를 저장하는 이미지입니다. 이 이미지는 픽셀의 흑백 값으로 표현됩니다. 밝을 수록 지형이 높아지고, 어두울 수록 낮은 지형을 뜻합니다. Gazebo 시뮬레이터에서 정현파 (sine) 형태의 지면 생성하기 Gazebo world 의 sdf 파일에서는 Heightmap 을 이용해서 지형을 모델링할 수 있습니다. 1) Heightmap 사용을 위한 이미지 생성 import os import numpy as np from PIL import Image # 이미지 크기와 sin 함수의 주기, 진폭, 위상 등을 설정 width = 129 height = 129 period = 10 amplitude = 0.1 phase = 0 y, x = np.indices((height, w..
Height map 을 이용하여 Gazebo world 구성하기Heightmap 은 지형의 높이 정보를 저장하는 이미지입니다. 이 이미지는 픽셀의 흑백 값으로 표현됩니다. 밝을 수록 지형이 높아지고, 어두울 수록 낮은 지형을 뜻합니다. Gazebo 시뮬레이터에서 정현파 (sine) 형태의 지면 생성하기 Gazebo world 의 sdf 파일에서는 Heightmap 을 이용해서 지형을 모델링할 수 있습니다. 1) Heightmap 사용을 위한 이미지 생성 import os import numpy as np from PIL import Image # 이미지 크기와 sin 함수의 주기, 진폭, 위상 등을 설정 width = 129 height = 129 period = 10 amplitude = 0.1 phase = 0 y, x = np.indices((height, w..
2023.07.03