ROS 12

ROS 모터 센서 뷰어 통합

앞서 공부한 odometry, lidar, imu를 활용하야 rviz 상에서 8자로 동작하는 모형을 구현한다. rviz_all │ ├── CMakeLists.txt │ ├── include │ │ └── rviz_all │ ├── launch │ │ └── rviz_all.launch │ ├── package.xml │ ├── rviz │ │ └── rviz_all.rviz │ ├── src │ │ └── odom_imu.cpp │ └── urdf │ └── rviz_all.urdf 이외의 필요한 것은 전에 사용했던 파일을 사용한다. #include "ros/init.h" #include "ros/node_handle.h" #include "ros/publisher.h" #include "ros/subs..

ROS 2023.10.10

ROS 초음파센서

토픽 - 타입 : sensor_msgs/Int32MultiArray - 구성 : std_msgs/MultiArrayLayout layout std_msgs/MultiArrayDimension[] dim string label unit32 size unit32 stride uni32 data_offset int32 data 초음파센서 ROS 패키지 - 센서와 아두이노, 리눅스 ROS PC 아두이노 연결 확인 lsusb // HL-34- USB 확인 ROS에서 시리얼 통신 import serial, time, rospy, re from std_msgs.msg import Int32 ser_front = serial.Serial( port='/dev/ttyUSB0', // 연결 포트 지정 baudrate=96..

ROS 2023.10.10

ROS 라이다

/scan 토픽 - 타입 = sensor_msgs/LaserScan - 구성 std_msgs/Header header unit32 seq time stamp string frmae_id float32 angle_min float32 angle_max float32 angle_increment float32 time_increment float32 scan_time float32 range_min float32 range_max float32[] ranges // 장애물까지의 거리정보 float32[] intensities RVIZ 사용 라이다 데이터 시각화 라이다 장치 없는 경우 rosbag 이용 플러그인 추가 rosbag 사용법 rosbag recodr -O lidar_topic scan rosbag ..

ROS 2023.10.09

ROS IMU 센서

세 방향의 축 ROLL : 오른쪽, 왼쪽 바퀴의 들림 정도 PITCH : 앞, 뒤의 들림 정도 YAW : 좌회전 우회전 정도 /imu 토픽 - 타입 : sensor_msgs/imu - 구성 std_msgs/Header header unit32 seq time stamp string frame_id geometry_msgs/Quaternion orientation float64 x float64 y float64 z float64 w // Quaternion 기울어짐 정도 RVIZ에서 IMU 시각화하기 rviz_imu_plugin 을 catkin_make한 후 rviz 실행 후 add를 눌러 rviz_imu_plugin의 imu 선택 후 추가 imu를 아래와 같이 설정 IMU 데이터로 RVIZ 뷰어의 박스..

ROS 2023.10.08

RVIZ Odometry

Odometry : 오도미터 등의 기기의 측정값으로 움직이는 사물의 위치를 측정하는 방법 Ackermann Steering - 앞 바퀴 2개를 간단한 기계식 구조로 연결 Odometry 토픽 : /odom 타입 : nav_msgs/Odometry rosmsg show nav_msgs/Odometry std_msgs/Header header uint32 seq time stamp string frame_id string child_frame_id geometry_msgs/PoseWithCovariance pose geometry_msgs/Pose pose geometry_msgs/Point position float64 x float64 y float64 z geometry_msgs/Quaternion o..

ROS 2023.10.05

RVIZ

RVIZ는 ROS의 3D 시각화 모듈이다. ros 설치리 full로 설치했다면 rviz는 설치된 상태이다. 실행법 roscore rviz 위와 같이 실행되는 모습을 볼 수 있다. 아래는 urdf로 만들어진 모델을 rviz로 실행한 모습이다. 옆의 joint_state_publisher를 사용하여서 모델을 움직일 수 있다. joint_state_publisher가 없다면 아래의 과정을 통해 설치할 수 있다. sudo apt update sudo apt install ros-melodic-joint-state-publisher-gui joinstate의 토픽은 아래와 같다. std_msgs/Header header unit32 seq time stamp string frame_id string[] name ..

ROS 2023.10.05

ROS 노드 통신 문제

1. 노드간 동기화 문제 publisher와 subscriber의 지연시간 존재 rosrun msg_send receiver_serial.py rosrun msg_send sender_serial.py 2 3 4 5 6 7 8 9 10 11 12 13 14 15 sender가 receiver에게 1부터 1씩 커지는 수를 보내는 경우 위와 같이 1을 못 받는 경우가 발생할 수 있다. 문제 발생 해결 : 1) 노드가 등록이 됐는지 확인 get_num_connections() // 연결된 노드의 수를 확인한다. 2) 파이썬 while(pub.get_num_connections() == 0): // 연결된 노드의 수가 0일 때 루프에 빠짐 만약 1:n 통신일 때에는 아래와 같이 사용하면 된다. while(pub..

ROS 2023.10.03

ROS 원격 노드 통신

ROS 통신 프로토콜 XMLRPC 프로토콜 : 노드가 마스터와 통신할 때 TXRPOS 프로토콜 : 각 노드간 통신할 때 원격통신 설정 IP 설정 1) ./bashrc 수정 - ROS_MASTER_URI = roscore가 구동되는 장치 주소 - http://***.***.***.***:11311 - ROS_HOSTNAME = 내 pc 주소 - ifconfig로 확인 2) sorce.bashrc 로 시스템 반영 원격 통신 환경 구축 1) 공유기 포트 포워드 설정 - 포트 범위 : 1024 ~ 65000 2) /etc/hosts 파일 수정 - 학생 측 /etc/hosts 파일 # remote network: local 실습실 hostname 3) ROS 환경변수 설정 - ./bashrc 파일 student,..

ROS 2023.09.27

ROS 노드 통신 - 메시지 커스텀

http://wiki.ros.org/msg msg - ROS Wiki ROS uses a simplified messages description language for describing the data values (aka messages) that ROS nodes publish. This description makes it easy for ROS tools to automatically generate source code for the message type in several target languages. M wiki.ros.org 공식 페이지 1) 사용할 디렉토리에 msg 디렉토리를 만든다. 2) msg 디렉토리에 .msg 파일을 생성한다. ex) string first_name int3..

ROS 2023.09.26

ROS 노드 통신

통신을 위한 패키지 생성 1) 작업공간에 디렉토리 생성 2) src에서 catkin_create_pkg std_msgs rospy 으로 패키지 생성 3) mkdir launch로 launch 디렉토리 생성 catkin_create_pkg msg_send std_msgs rospy Created file msg_send/CMakeLists.txt Created file msg_send/package.xml Created folder msg_send/src Successfully created files in /home/jagbum/xycar_ws/src/msg_send. Please adjust the values in package.xml. 4) catkin_make 로 빌드 catkin_make Bas..

ROS 2023.09.26