Check out my first novel, midnight's simulacra!

ROS: Difference between revisions

From dankwiki
No edit summary
Line 11: Line 11:
* [http://wiki.ros.org/Master Master]: implemented by the [http://wiki.ros.org/rosmaster rosmaster] package, usually started via <code>roscore</code>
* [http://wiki.ros.org/Master Master]: implemented by the [http://wiki.ros.org/rosmaster rosmaster] package, usually started via <code>roscore</code>
* [http://wiki.ros.org/Topics Topic]: a named bus on which messages of a single type are published
* [http://wiki.ros.org/Topics Topic]: a named bus on which messages of a single type are published
** <code>rostopic list</code> will list active topics on a running rosmaster
* [http://wiki.ros.org/Services Service]: a named procedure, implemented by some Node
* [http://wiki.ros.org/Services Service]: a named procedure, implemented by some Node
** Connections can be persistent according to the client's choice
** Connections can be persistent according to the client's choice
Line 36: Line 35:
** <code>rosnode list</code> lists running nodes
** <code>rosnode list</code> lists running nodes
** <code>rosndoe info</code> displays information about a running node
** <code>rosndoe info</code> displays information about a running node
* [http://wiki.ros.org/rostopic rostopic]: interact with topics using YAML
** <code>rostopic list</code> will list active topics on a running rosmaster
** <code>rostopic echo</code> echoes messages from the topicros

Revision as of 08:23, 20 February 2019

ROS is a software platform for robotics.

Concepts

  • Package: defined by a directory containing a file package.xml (REP-0127)
    • msg/MyMessageType.msg defines messages for the package, published to topics
    • srv/MyServiceType.srv defines services for the package, supporting request/reply semantics
  • Node: a named process that performs computation
    • A running node has a type and a graph resource name
    • A node is typically launched standalone using rosrun
    • If a node is started with the name of an existing node, the existing node is stopped
  • Master: implemented by the rosmaster package, usually started via roscore
  • Topic: a named bus on which messages of a single type are published
  • Service: a named procedure, implemented by some Node
    • Connections can be persistent according to the client's choice
  • Parameter: a key in the global configuration dictionary
    • XMLRPC data types

Names

Names aka graph resource names are unique for each topic, parameter, node, and service in the ros graph. It is a shared namespace; a topic cannot share a name with a node. The ROS_NAMESPACE environment variable can be used to scope the ros graph namespace. Names can be:

  • relative,
  • /global, and
  • ~private (the node's name replaces the tilde)

Names can furthermore be remapped when a node is started by e.g. rosrun.

  • Special case: launch node into namespace with __ns
  • Special case: change node name with variable __name
    • To launch barnode with the name barnode3: `roslaunch foopkg barnode __name:=barnode3`

Executables

  • rosrun: launch an executable from a package
  • roslaunch: starts collections of nodes specified in a launch XML file
    • roscore: roslaunch to start core ros functionality
  • rosnode: manage running nodes
    • rosnode list lists running nodes
    • rosndoe info displays information about a running node
  • rostopic: interact with topics using YAML
    • rostopic list will list active topics on a running rosmaster
    • rostopic echo echoes messages from the topicros