본문 바로가기

16. 프로젝트 설명 – ROS RC카 🏎️ 16. 프로젝트 설명 – ROS RC카 지금부터 실제 하드웨어를 다루는 프로젝트를 진행해 볼 것입니다. 그 전에 이 프로젝트에 대한 개요, 설명을 드리고자 하는데요, 구매 목록 (BOM)을 보면서 설명드리도록 하겠습니다. Jetson DonkeyCar - BOM Google Sheets - create and edit spreadsheets online, for free. Create a new spreadsheet and edit with others at the same time -- from your computer, phone or tablet. Get stuff done with or without an internet connection. Use Sheets to edit Excel fi..
15. 새로운 ROS 패키지를 사용하는 법 - Intel realsense 🆕 15. 새로운 ROS 패키지를 사용하는 법 - Intel realsense  로봇에 새로운 센서(depth camera)를 달고 싶은 상황, 그런데 ROS를 사용하고 있어 호환성을 염두해야 한다면?? 다음 페이지를 통해 원하는 센서 중 ROS를 지원하는 것이 있는지 살펴봅니다. 성능을 비교하여 최종 모델을 선택하고, 현재 사용중인 개발환경에서 사용 가능한지 (ros version, 기존 사용중인 패키지와의 호환성 등등) github wiki, readme 구글링을 통해 검색해보고 구매합니다. (구매 시에 가격 비교도 물론 해야겠지요 😄) 센서가 도착했습니다!! 찾아두었던 튜토리얼대로 준비해보고, 실행 시켜봅니다. Intel realsense Depth Camera Stereo Depth - Inte..
14. 유용한 ROS 툴 소개 🌎 14. 유용한 ROS 툴 소개 이번 시간에는 rviz, rqt와 같이 ROS에서 제공하는 여러 툴들을 소개하고자 합니다. 다시 돌아온 Gazebo $ roslaunch gcamp_gazebo gazebo_world.launch 이번에는 gazebo가 아닌, rviz를 집중적으로 살펴봅시다!! 🙈 view 전환 rviz는 gazebo와는 다르게 마우스 휠 클릭으로 평행이동, 왼쪽 클릭으로 회전이동이 가능합니다. 더불어, 우측 상단의 view를 통해 시점을 바꿀 수도 있습니다. Orbit이 기본이며, 제 경험에서는 TopDownOrtho 정도가 쓰이는 것을 보았습니다. Create, Add Visualization 좌측 Displays 패널을 보시면 여러 항목들이 보이지요? 체크박스들을 토글하면서 어떤 ..
13. [Option] C++ 코드, template - 2 🧐 13. [Option] C++ 코드, template - 2 지난 시간에 이어서 roscpp코드들을 계속 살펴보겠습니다. spawn_model_client.cpp robot_turning_client.cpp robot_turning_srv.cpp fibonacci_action_server.cpp fibonacci_action_client.cpp Reference spawn_model_client.cpp /* * gazebo model spawn by rosservice * * referenced from answers.ros.org * url : https://pastebin.com/UTWJSScZ * * basic template of roscpp service client * * reference..
12. [Option] C++ 코드, template 🧐 12. [Option] C++ 코드, template 이번 강의, 그리고 다음 강의에 걸쳐서 앞서 구현했던 다양한 ROS 프로그램들을 C++로 다시 작성해보는 시간을 갖겠습니다. 강좌를 따라옴에 있어 문법적인 측면에선, C++ Class를 사용하는 방법 정도만 알고 계시면 따라오실 수 있습니다. 이와 더불어 ROS는 기본적으로 빌드 툴로 CMake를 사용하기에 CMakeLists.txt에 대한 이해가 있다면 더 좋습니다. 그럼, 시작해보겠습니다!! basic_node.cpp #include int main(int argc, char** argv){ ros::init(argc, argv, "basic_node"); ros::NodeHandle nh; ros::Rate r(5); # Hz while ( ..
11. [Option] Action Server & Client 작성해보기 – python 🖋️ 11. [Option] Action Server & Client 작성해보기 – python Import Constructor 분석 Odom의 등장 Action Callback 분석 Image Converter Maze Action Client Github Repo 이번 시간에는, 지난 강의에서 살펴보았던 미로찾기 예제의 코드를 분석해보고자 하며, 분석 과정에서, 제가 마주쳤던 문제들과, 디버깅 포인트들도 함께 공유하고자 합니다. $ roslaunch gcamp_gazebo maze_world.launch # 새 터미널 $ rosrun action_tutorial maze_action_server.py ==== MazeActionClass Constructed ==== ==== Waiting for ..
10. action, action server, action client 설명 🎬 10. action, action server, action client 설명 이번 시간에는 드디어 ROS의 통신 메커니즘 마지막으로 action에 대해 배워보겠습니다. 예제를 살펴보시죠!! 미로 탈출 $ roslaunch gcamp_gazebo maze_world.launch 본 예제는 설명이 살짝 필요합니다. 로봇을 초록 박스가 있는 탈출구까지 이동시켜야 합니다. 로봇이 회전하는 방향은 사진과 같습니다. 로봇은 회전한 뒤, 지난 topic 예제처럼 벽과 일정한 거리를 두고 멈추도록 되어 있습니다. 2, 1, 0, ... 처럼 로봇에게 이동해야 할 방향을 줘 보세요. 그럼 action server & client를 실행시켜 보도록 하겠습니다. maze_action_server # 새 터미널 $ ro..
9. Service Server & Client 작성해보기 – python 🛎️ 9. Service Server & Client 작성해보기 – python 지난 시간에 이야기한 바와 같이 service server를 생성하는 방법부터 시작해보겠습니다. 이번 시간의 예제를 실행시켜 보겠습니다. Turning tinybot $ roslaunch gcamp_gazebo gazebo_world.launch # gazebo 시뮬레이션이 완전히 켜질때까지 기다려 주세요!! # 새 터미널을 엽니다. $ rosrun service_tutorial robot_turning_srv.py # 또 다른 터미널을 엽니다. $ rosrun service_tutorial robot_turning_client.py [INFO] [1610111418.391926, 0.000000]: ==== Robot Tu..