天天看點

ros2之turtlesim指令

如何在ros2熟悉和使用各種指令呢,ros1的經典小烏龜是最快捷的途徑之一。

ros2_tutorials(turtlesim): https://github.com/zhangrelay/ros2_tutorials

ros2之turtlesim指令
ros2之turtlesim指令
ros2之turtlesim指令

通過turtlesim,對比一下ros1和ros2吧:

檔案組織:

ros1:

.

├── CHANGELOG.rst

├── CMakeLists.txt

├── images

│   ├── box-turtle.png

│   ├── diamondback.png

│   ├── electric.png

│   ├── fuerte.png

│   ├── groovy.png

│   ├── hydro.png

│   ├── hydro.svg

│   ├── indigo.png

│   ├── indigo.svg

│   ├── jade.png

│   ├── kinetic.png

│   ├── kinetic.svg

│   ├── lunar.png

│   ├── lunar.svg

│   ├── melodic.png

│   ├── palette.png

│   ├── robot-face.png

│   ├── robot-turtle.png

│   ├── sea-turtle.png

│   ├── turtle.png

│   └── turtle.xar

├── include

│   └── turtlesim

│       ├── turtle_frame.h

│       └── turtle.h

├── launch

│   └── multisim.launch

├── msg

│   ├── Color.msg

│   └── Pose.msg

├── package.xml

├── src

│   ├── turtle.cpp

│   ├── turtle_frame.cpp

│   ├── turtlesim

│   │   └── __init__.py

│   └── turtlesim.cpp

├── srv

│   ├── Kill.srv

│   ├── SetPen.srv

│   ├── Spawn.srv

│   ├── TeleportAbsolute.srv

│   └── TeleportRelative.srv

└── tutorials

    ├── draw_square.cpp

    ├── mimic.cpp

    └── teleop_turtle_key.cpp

9 directories, 41 files

ros2:

│   ├── draw_square.launch.py

│   ├── multisim.launch.py

│   └── __pycache__

│       └── draw_square.launch.cpython-36.pyc

10 directories, 42 files

這裡并未在ros2中添加對應2代版本小烏龜的圖檔。

編譯環節:

ros1:catkin build

ros2:colcon build

指令使用:

rosrun, rostopic ……

ros2 run, ros2 topic ……

具體介紹如下:

ros2 is an extensible command-line tool for ROS 2.

optional arguments:

  -h, --help            show this help message and exit

Commands:

  action     Various action related sub-commands

  component  Various component related sub-commands

  daemon     Various daemon related sub-commands

  launch     Run a launch file

  lifecycle  Various lifecycle related sub-commands

  msg        Various msg related sub-commands

  multicast  Various multicast related sub-commands

  node       Various node related sub-commands

  param      Various param related sub-commands

  pkg        Various package related sub-commands

  run        Run a package specific executable

  security   Various security related sub-commands

  service    Various service related sub-commands

  srv        Various srv related sub-commands

  topic      Various topic related sub-commands

  Call `ros2 <command> -h` for more detailed usage.

對于ros1而言,啟動小烏龜并鍵盤遙控,需要如下步驟:

roscore

rosrun turtlesim turtlesim_node

rosrun turtlesim turtle_teleop_key

類比與ros2,我們可以使用如下指令:

roscore注意ros2無需core

ros2 run turtlesim turtlesim_node

ros2 run turtlesim turtle_teleop_key

非常容易了解。

比如畫一個大圓:

ros2之turtlesim指令

ros2 topic pub /turtle1/cmd_vel ometry_msgs/msg/Twist "{linear: {x: 0.8, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.2}}"