Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Midterm Study Guide #39

Open
cmurray3 opened this issue Mar 14, 2024 · 1 comment
Open

Midterm Study Guide #39

cmurray3 opened this issue Mar 14, 2024 · 1 comment

Comments

@cmurray3
Copy link
Contributor

We will talk about the midterm exam in class on March 14.

In the meantime, here is an outline of what you can expect on the exam:


ROS Overview

  • What is ROS?
  • Which version of ROS are we running?
  • Which version of Ubuntu?
  • How to start ROS?
    • roscore vs roslaunch
  • Environment Variables
    • What are they?
    • Which ones do you need?
    • Where do we save them?
  • What is the "Parameter Server"?

Packages

  • Understand the elements of a ROS package. For example:
    • Nodes, msg, srv, CMakeLists.txt, Package.xml, launch, worlds
  • How to create a new package
    cd ~/catkin_ws/src
    catkin_create_pkg
    
  • How to compile a package
    cd ~/catkin_ws
    catkin_make
    
  • When do you need to compile a package?
  • Which files need to be made "executable"? How do we do that?

Nodes

  • Nodes are C++ or Python scripts
  • Where do you save these in a package?
  • What line needs to go at the top of your .py files? Why?
  • How to change permissions on .py scripts?
  • Different nodes communicate via topics, services, and actions.
  • How to run a single node?
  • How to run nodes via a launch file?
  • How can you tell what nodes are active right now?

Topics

  • .msg structure
  • What are the available data types?
  • How to publish in Python script?
  • How to publish from the command line?
  • How to subscribe?
  • How to create custom topics?
    • What role does CMakeLists.txt play?
    • When do we need to recompile the package?
  • How can you tell what topics are being published right now?

Services

  • .srv structure
  • Difference between Topic and Service?
  • What are the available data types?
  • How to define server?
  • How to call server?
  • How server issues response
  • How to create custom services.
    • What role does CMakeLists.txt play?
    • When do we need to recompile the package?
  • Call a service from the command line (see Gazebo examples)
  • How can you tell what services are available right now?

Actions

  • What are "actions"?
  • How do these differ from topics/services?
  • When would these be useful?

Gazebo

  • What is Gazebo? Are ROS and Gazebo the same?
  • Which version of Gazebo are we running?
  • How to launch Gazebo via roslaunch?
  • What is a .world file
  • What is a .urdf? .sdf? .xacro?
  • How to define parameters?
  • Where to save .launch files? .world files? Model files?
  • What existing 3D models are available?
  • Namespaces (multi-robot simulation)

RViz

  • What is RViz?
  • How to call via launch file?

Other Libraries/Utilities

  • tf
  • rqt
  • rosgraph

Some nice resources to further your understanding

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant