ROS - 8BitsCoding/RobotMentor GitHub Wiki

๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์„ฑ

๋นŒ๋“œ ๋ฐ ์ฝ”๋”ฉ ๊ด€๋ จ

ROS 2.0

  • ROS 2.0 Install

  • Run Demo

  • ROS2_01 : ROS2๋ž€?

    • ROS2.0 node ์‹คํ–‰๋ฐฉ๋ฒ• : $ ros2 run <package_name> <executable_file>
    • ROS2.0 launch file ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ROS2.0 ํŒจํ‚ค์ง€ ๊ตฌ์„ฑ๋ฐฉ๋ฒ• : $ ros2 pkg create my_package --build-type ament_cmake --dependencies rclcpp
    • ํŒจํ‚ค์ง€ํ™•์ธ๋ฐฉ๋ฒ• : $ ros2 pkg list | grep <package_name>
    • ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ• : $ colcon build --symlink-install --packages-select <package_name>
    • ๋…ธ๋“œ ๊ตฌ์„ฑ๋ฐฉ๋ฒ• (cpp)
    • CMake ์ˆ˜์ • ์‚ฌํ•ญ
    • ์ƒ์„ฑ๋œ ๋…ธ๋“œ ํ™•์ธ : $ ros2 node list Or $ ros2 node info /<node>
    • ROS ํ™˜๊ฒฝ๋ณ€์ˆ˜ ํ™•์ธ : $ export | grep ROS
  • ROS2_02 : ROS1 Bridge

  • ROS2_03 : publish topic ์ƒ์„ฑ

    • publish์šฉ cpp ํŒŒ์ผ ๊ตฌ์„ฑ๋ฐฉ๋ฒ•
    • ์ƒ์„ฑ๋œ topic ํ™•์ธ ๋ฐฉ๋ฒ• : $ ros2 topic list | grep '/counter'
    • ์ƒ์„ฑ๋œ ๋ฉ”์‹œ์ง€ ํ™•์ธ ๋ฐฉ๋ฒ• : $ ros2 msg show <message>
  • ROS2_04 : subscribe topic ์ƒ์„ฑ

  • ROS2_05 : service ์ƒ์„ฑ1 <- ์ž‘์„ฑ ์ค‘

  • ROS2_06 : service ์ƒ์„ฑ2 <- ์ž‘์„ฑ ์ค‘

  • ROS2_07 : ROS2๋ฅผ ์ด์šฉํ•œ Debugging

    • command line debugging
    • rviz debugging

URDF - ๋กœ๋ด‡๋ชจ๋ธ ์ œ์ž‘ํ•˜๊ธฐ

TF - ๋ชจ๋ธ์˜ ์ƒ๋Œ€์  ์œ„์น˜ ํ†ต๋ณดํ•˜๊ธฐ

ROBOTIS - Dynamixel SDK

ROBOTIS - OpenManipulator

๋ณธ ์˜ˆ์ œ๋Š” ROBOTIS์˜ OpenManipulator๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ์ฐธ์กฐํ•œ ์‚ฌ์ดํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์‹คํ–‰์€ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

# gazebo launch
$ roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch 

# Controller load
$ roslaunch open_manipulator_controller open_manipulator_controller.launch use_platform:=false

# rviz launch
$ roslaunch open_manipulator_description open_manipulator_rviz.launch

# GUI control
$ roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch

# Keyboard control
$ roslaunch open_manipulator_teleop open_manipulator_teleop_keyboard.launch

# MoveIt control
$ roslaunch open_manipulator_controller open_manipulator_controller.launch use_moveit:=true use_platform:=false

๊ฐ launch file ๋ฐ ์„ค๋ช…

ROBOTIS - Turtlebot3

๋ณธ ์˜ˆ์ œ๋Š” ROBOTIS์˜ Turtlebot3๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.
๊ธฐ๋ณธ์ ์œผ๋กœ ์ฐธ์กฐํ•œ ์‚ฌ์ดํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

OpenCR HW

# Remote PC ์—์„œ ์‚ฌ์šฉ
$ roscore
$ ssh -p <port> <user>@<ip> # Turtlebot3๋กœ ์ ‘์†
TB3$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
$ export TURTLEBOT3_MODEL=burger
$ roslaunch turtlebot3_bringup turtlebot3_remote.launch

์•„๋‘์ด๋…ธ Sub Data : cmd_vel, sound, motor_power, reset

์ด์ œ Rviz๋ฅผ ์‹คํ–‰ํ•ด๋ณด์ž.

rosrun rviz rviz -d `rospack find turtlebot3_description`/rviz/model.rviz

SLAM Node ์‹คํ–‰

# Remote PC ์—์„œ ์‚ฌ์šฉ
$ roscore
$ ssh -p <port> <user>@<ip> # Turtlebot3๋กœ ์ ‘์†
TB3$ roslaunch turtlebot3_bringup turtlebot3_robot.launch
$ export TURTLEBOT3_MODEL=burger
$ roslaunch turtlebot3_slam turtlebot3_slam.launch slam_methods:=gmapping
โš ๏ธ **GitHub.com Fallback** โš ๏ธ