Ask Your Question

Why is my_turtle alive even after I finished it?

asked 2017-03-22 11:00:47 -0600

I am lerning ROS from scratch following this:

first I did:

$ rosnode list

and the output was:


then I started the Turtle:

$ rosrun turtlesim turtlesim_node

$ rosnode list

and the output was:



then I killed the Turtle doing control+C

and started a new turtle with my custom name:

$ rosrun turtlesim turtlesim_node __name:=my_turtle

bust afer calling rosnode list I see 3 turtles running, but the oldone is not there since I can not do a ping on it... what am doing wrong?


edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2017-03-23 08:24:36 -0600

updated 2017-03-25 00:49:27 -0600

Well I've found the reason why:

the correct way (or the cleanest way) to finish the execution of a node is actually invoking the command:

$rosnode kill <node_name>

this will gently invoke the dispose in the node which among others release resources, dispose itself and "Disconnect from the Master"-- Ha! that is very important!

Since I can terminate the application (the node is an application too) by doing Control+ C, I've faced the issue that this method doesn't give a chance to the node to dispose itself properly, this is the reason why the zombie node is still visible when I do:

$rosnode list

anyways, the hole graph can be updated / cleaned and the "zombie node" can be removed after calling a

$rosnode cleanup

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2017-03-22 11:00:47 -0600

Seen: 86 times

Last updated: Mar 25 '17