THIS IS JUST AN OUTLINE FOR A WORK IN PROGRESS

Overview

  • What is ROS
    • Design (peer-to-peer distributed, favors greater computation power over multiple computers)
    • Comparisons to other frameworks
    • Important of BSD + Open Source
    • Compatibility with other frameworks
    • Not Realtime
  • Client libraries
    • roscpp
    • rospy
    • Experimental client libraries
      • roslisp
      • rosoct
      • rosjava
  • Three levels of ROS: filesystem, computation graph, community
  • Filesystem Level
    • Packages
      • Packages have dependencies Types of dependencies: dependencies on Packages, dependencies on thirdparty (rosdep).
      • Manifests
      • Tools
        • rospack
        • roscreate-pkg
        • roscd
    • Stacks
    • Message definitions
      • versioning
    • Service definitions
      • versioning
    • Build System
      • Based on CMake
        • CMake macros
        • Exporting cmake macros
      • Tools
        • make vs. rosmake
  • Computation Graph Level
    • Nodes
      • Tools
        • rosnode
      • client libraries
        • rospy.init_node()
        • roscpp node handle
    • Services
      • Tools
        • rosservice
      • client libraries
    • Topics
      • Transports
        • TCPROS
        • UDPROS
      • Tools
        • rostopic
        • rxplot
      • client libraries
        • pub/sub examples in both
        • UDP Example with roscpp
        • No UDP example with rospy
    • Bags
      • Tools
        • rosrecord
        • rosplay
      • Client libraries
        • rosrecord.py
    • The Graph
      • The ROS Core
        • Master
        • Parameter Server
          • rosparam
        • rosout
          • rxconsole
          • log files
      • roslaunch
      • run_id
  • Community Level
    • Repository
      • Repos
        • ROS
        • ros-pkg
        • wg-ros-pkg
      • Tools
        • roslocate
    • Mailing lists
    • ROS Wiki
    • Bug tracker
    • Blog

Using ROS

  • Getting comfortable with the command line
    • roscreate-pkg foo
    • create MyMsg.msg

    • edit CMakeLists.txt file
    • run rosmake, as well as make
    • run roscore
    • run rxgraph &

    • run rostopic list
    • run rostopic pub my_topic foo/MyMsg 1 -r 10
    • run rostopic list
    • run rostopic hz foo/MyMsg
    • run rostopic echo foo/MyMsg
    • run rostopic pub my_topic2 foo/MyMsg 10 -r 10
    • run rostopic list
    • run rxplot my_topic my_topic2
    • run rosrecord my_topic
    • run rostopic echo -b bag
    • run rosplay bag
    • roswtf?
  • Writing Nodes
    • Simple talker/listener
      • roscpp example
      • rospy example
        • Advanced initialization of message args (just args, keywords args, etc...)
      • rosnode ping
      • rosnode info
    • Passing in extra data to your listener (listener with user data tutorial)
    • Wrap up your nodes in roslaunch
      • Create talker/listener launch file
        • rosnode list
      • Pass in parameter
        • rosparam list
      • Pass in lots of parameters
        • rosparam list
        • rosparam dump?
    • Services
      • Edit talker to provide a service
      • Edit listener to call a service

Intermediate topics

  • Listener callbacks
  • Throttling
  • Muxing
  • rosmake a launch file
  • rebagging

Advanced Topics

  • Connection headers
  • Message synchronization?
  • Persistent service connections
    • Better performance, but less robust to changes in computation graph
  • Migrating messages
  • Dynamic subscription in rospy

Wiki: ROS_Users_Manual (last edited 2009-08-14 20:53:51 by localhost)