# 5.6 使用rosrun

rosrun允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)。 用法:

```
$ rosrun [package_name] [node_name]
```

现在我们可以运行turtlesim包中的 turtlesim\_node。 然后, 在一个 新的终端:

```
$ rosrun turtlesim turtlesim_node
```

你会看到 turtlesim 窗口:

注意: 这里的 turtle 可能和你的 turtlesim 窗口不同。 别担心，这里有许多版本的turtle ，而你的是一个惊喜!

在一个 新的终端:

```
$ rosnode list

You will see something similar to:
/rosout
/turtlesim
```

ROS的一个强大特性就是你可以通过命令行重新配置名称。

关闭 turtlesim 窗口停止运行节点 (或者回到rosrun turtlesim终端并使用ctrl -C)。

现在让我们重新运行它，但是这一次使用Remapping Argument改变节点名称:

```
$ rosrun turtlesim turtlesim_node __name:=my_turtle
```

现在，我们退回使用rosnodelist:

```
$ rosnode list

You will see something similar to:
/rosout
/my_turtle
```

注意: 如果你仍看到 /turtlesim在列表中，这可能意味着你在终端中使用ctrl-C停止节点而不是关闭窗口 或者你没有$ROS\_HOSTNAME环境变量，这在 Network Setup - Single Machine Configuration中有定义。 你可以尝试清除rosnode 列表，通过: `$ rosnode cleanup`

我们可以看到新的/my\_turtle节点。 使用另外一个rosnode指令`rosnode ping`来测试:

```
$ rosnode ping my_turtle

    rosnode: node is [/my_turtle]
    pinging /my_turtle with a timeout of 3.0s
    xmlrpc reply from http://aqy:42235/     time=1.152992ms
    xmlrpc reply from http://aqy:42235/     time=1.120090ms
    xmlrpc reply from http://aqy:42235/     time=1.700878ms
    xmlrpc reply from http://aqy:42235/     time=1.127958ms
```
