ROS2(35)
-
container <-> local ros2 topic 통신(ubuntu 20.04)
도커 컨테이너 생성시 --network host 옵션을 쓰면 로컬과 네트워크 설정이 똑같이 되는 걸로 알고잇는데 왜인지 다른 컴퓨터와 통신할때는 잘 되었는데 내 로컬 컴퓨터와 컨테이너 사이의 통신은 되지않았다. 그래서 방법을 찾던 중 수동 네트워크 설정을 하면 가능하다는 것을 알게 되었다.1. Docker 컨테이너에 브릿지 네트워크 설정기본적으로 Docker는 bridge 네트워크를 사용함. 하지만 기본 브릿지(docker0)는 로컬 머신과 직접 통신이 어렵기 때문에, 별도로 새로운 브릿지 네트워크를 생성해야 함.브릿지 네트워크 생성docker network create \ --driver=bridge \ --subnet=192.168.1.0/24 \ ros2_bridge위 명령어를 실행하면 192..
2025.02.18 -
Gazebo에서 velodyne 3d Lidar 써보기
먼저 기존에 만들어 놓은 로봇의 xacro 파일에 링크와 조인트를 만들고 아래와 같은 gazebo 플러그인을 추가해주면 된다. true 10 440 1 -3.14159265 3.14159265 16 ..
2024.12.23 -
ROS2(humble + 22.04) depth camera
전체 흐름뎁스 이미지 수신: ROS 2에서 뎁스 카메라의 depth topic 데이터를 수신.2D 픽셀 → 3D 좌표 변환: 카메라 매트릭스(내부 파라미터)를 사용하여 픽셀 좌표와 뎁스 값을 3D 좌표로 변환.3D 그래프 시각화: 변환된 3D 좌표를 Matplotlib, Open3D 또는 다른 라이브러리로 시각화.카메라 파라미터카메라 매트릭스를 통해 2D 픽셀 좌표를 3D 공간 좌표로 변환합니다. 이때 중요한 파라미터는:fx, fy: 카메라의 초점 거리 (focal length, x/y 방향).cx, cy: 이미지의 중심 좌표.이 값은 카메라의 intrinsic 파라미터에서 가져올 수 있습니다. (RealSense SDK 및 ROS 토픽에서 제공).코드 구현import rclpyfrom rclpy.nod..
2024.12.17 -
ubuntu 24.04 ssh 설정 + docker 설정
우분투 24.04 컴퓨터를 서버로 설정하고 외부 컴퓨터에서 ssh로 접속하는 방법이다. 먼저 ssh 서버 설치 및 활성화를 해준다.#설치sudo apt updatesudo apt install openssh-server#서버 활성화sudo systemctl enable sshsudo systemctl start ssh#상태확인sudo systemctl status ssh 다음은 사용자 계정을 만들어 준다.sudo adduser 사용자이름#필요시 sudo 권한 부여sudo usermod -aG sudo 사용자이름 ssh 접속 설정#ip 주소 확인(예: inet 항목의 192.168.x.x)ip addr show#방화벽 허용 (필요 시)sudo ufw allow sshsudo ufw enable ssh 접속..
2024.12.06 -
ROS2 moveit2(1)
전에 만들었던 moveit2 환경에서 첫번째 c++ moveit 프로젝트를 만들어 보겠다.cd ~/ws_moveit/srcros2 pkg create \ --build-type ament_cmake \ --dependencies moveit_ros_planning_interface rclcpp \ --node-name hello_moveit hello_moveitpackage.xml과 CMakeLists.txt에 의존성을 추가하였다. 여기서 새로운 소스파일인 ws_moveit/src/hello_moveit/src/hello_moveit.cpp 를 편집기에서 연다.#include #include #include int main(int argc, char * argv[]){ // Initialize ROS..
2024.11.08 -
ROS2 URDF rb10-1300
launch 파일(gt3armsim.launch.py)import osfrom launch_ros.actions import Nodefrom launch import LaunchDescriptionfrom launch.substitutions import Commandfrom launch.actions import ExecuteProcessfrom ament_index_python.packages import get_package_share_directorydef generate_launch_description(): pkg_path = os.path.join(get_package_share_directory("urdf_tutorial")) xacro_file = os.path.join(pk..
2024.11.08