본문 바로가기

ROBOTICS27

Turtlebot Simulation : Navigation 아까 SLAM으로 만든 map을 이용해 Navigation을 시행해본다. 다 끄고 다시 켜준다. export TURTLEBOT3_MODEL=burger # 이거는 어차피 계속 쓸거면 bashrc파일에 저장하는게 편하다 roslaunch turtlebot3_gazebo turtlebot3_world.launch 여기부터는 아까 만들어둔 map.yaml파일이 필요하다. 다른 터미널에서 navigation node를 켜준다. sample map.yaml roslaunch turtlebot3_navigation turtlebot3_navigation.launch map_file:=$HOME/map.yaml 이런 화면이 뜰거다. 이 또한 RVIZ에서 돌아간다. 제대로 navigation을 하려면 Initial P.. 2022. 8. 23.
Turtlebot Simulation : SLAM 이어서 다시 gazebo에 turtlebot burger 모델을 구동하고 시작한다. 환경은 world로 한다. export TURTLEBOT3_MODEL=burger roslaunch turtlebot3_gazebo turtlebot3_world.launch 조금 전과 같은 육각형의 맵이 나올 것이다. 여기서 다른 터미널에서 SLAM 노드를 킨다. export TURTLEBOT3_MODEL=burger roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping 이러면 오른쪽과 같은 mapping 이 rviz를 통해 나타난다. 현재 12시 근방에 위치한 터틀봇이 당장 라이다로 읽을 수 있는 map을 나타낸 것이며 여기서 다른 터미널을 켜.. 2022. 8. 22.
Turtlebot Simulation : Setup 이번에는 SLAM을 적용하기 위한 turtlebot simulation을 진행한다. 당장 터틀봇이 없기 때문에 시뮬레이션으로 시도 이후 동방에서 가져올 예정이다. ROBOTIS e-Manual 위 공식 매뉴얼을 참고하였다. 여기서 하드웨어와 관련된 부분 제외하고 정리한다. 가장 먼저 기본적으로 필요한 패키지를 다운로드받고 catkin_make로 환경을 구축한다. 하나라도 빼먹으면 이런 오류가 뜨니까 전부 다 하도록 한다. sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy \ ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc \ ros-noetic-rgbd-launch ros-noetic-ros.. 2022. 8. 22.
ROS Noetic : Server & Client 앞서서 ROS service를 활용해보았다. 이는 서버-클라이언트 구조와 흡사함을 알 수 있다. 이번에는 실제로 서버-클라이언트의 구조를 만들어본다. 일단은 앞서 만들었던 closed_loop의 turtle_controller를 이용하며 화면의 좌측에 있으면 붉은 색, 우측에 있으면 녹색의 자취를 나타내는 형태를 만들 것이다. 이전 코드를 가져와서 bold 처리된 줄들을 추가해준다. #!/usr/bin/env python3 import rospy from turtlesim.msg import Pose # output of turtlesim from geometry_msgs.msg import Twist # input for turtlesim class TurtleControl: def __init__(s.. 2022. 8. 11.
ROS Noetic : ROS service 이번에는 ROS service에 대해 알아본다. service는 node에서 사용할 수 있는 기능 정도로 보인다. rospy_tutorials 패키지에서 제공하는 예시를 보자. 위를 보면 add_two_ints_server 라는 실행파일을 작동시켰다. add_two_ints라는 service가 실행중이고 이 서버가 돌다가 rosservice call로 호출을 하여 a, b값을 주면 위의 서버에서 계산을 해서 출력해주는 것을 볼 수 있다. 이는 publish subscribe의 형태가 아니다! 노드도 저거 하나만 켜져있다. 위에서 도는 server가 말 그대로 서버의 역할을 하고 아래 터미널 창에서 rosservice call하는 부분이 클라이언트의 역할을 한다고 볼 수 있다. rossrv는 service.. 2022. 8. 10.
ROS Noetic : Closed Loop system with Turtlesim 이번에는 한 node 안에 publisher와 subscriber가 모두 있는 closed loop system을 만들어본다. 역시나 tutlesim 이용할거다. 일단 한 방향으로 직진하는 모양으로 만들었다. 이전과 같이 scripts폴더 안에 turtle_controller.py를 생성한다. 점점 복잡해질 수 있다 판단하여 class 안에 집어넣어 버렸다. 따로 만들어줘도 상관은 없을 듯 하다. #!/usr/bin/env python3 import rospy from turtlesim.msg import Pose # output of turtlesim from geometry_msgs.msg import Twist # input for turtlesim class TurtleControl: def __.. 2022. 8. 9.
반응형