In this assignment, you will modify your code from Homework 3 and connect it to the subscriber from Homework 2. This is intended to show you 1) how to work with third-party packages you may want to use in the future and 2) how to use parameters to make your code more flexible. You may choose to modify the same unit conversion code file as you created in Homework 3 or make a new one. Do not modify your subscriber from Homework 2! Here are the detailed specifications:

  • Your new/revised conversion node should be able to convert to a third unit: smoots (1.7018 meters or 5.5833 feet, ref: https://www.larsondesigngroup.com/understanding-smoot/)
  • Each time your node receives a measurement to convert, it should check a parameter (name of your choice) to determine which unit it should convert to:
    • Meters (no conversion, output the same message as the input)
    • Feet
    • Smoots
  • You should make a new launch file that starts the following nodes:
    • mystery_node
    • Your Homework 2 publisher
    • Your Homework 2 subscriber
    • Your new/revised conversion node
  • Without changing any code in your Homework 2 subscriber, remap the topic it subscribes to in the launch file so that it listens to the output of your new/revised conversion node.
  • Also set the parameter used by your new/revised node to produce an output in Smoots.

At the end of this, your Homework 2 subscriber node should log statements to the console in whatever units your conversion code publishes. See slides for an example graph of the end product.

Test your code thoroughly by changing the parameter on the command line and watching the output from your conversion node and the console. It should start as Smoots and then change as you change the parameter on the command line.

Submission Instructions

Submit a PDF to blackboard with:

  1. Your name, repo URL, and the tag for this assignment
  2. The command that starts your nodes for this assignment, ie:
    roslaunch <package> <launch_file>
  3. The name of the node you created
  4. The parameter you created and the valid values you can use.
  5. Any difficulties you had with this assignment


3 points – Added new unit smoots
5 points – Parameter to switch units
5 points – Successful remap
3 points – All nodes started in launch file
2 points – Tag applied in git
2 points – Answers given in PDF