Package Summary

This package provides tools for interfacing with a hacked K'nex set to create a differential-drive robot.


See for an overview of the hacked K'nex robot.

This pacakge depends on the differential_drive package.



range_filter takes in range data from an infrared range finder and converts the signal into a range in meters. It also computes a rolling average of the last rolling_pts points.

Published Topics

range_filtered - (std_msgs/Float32)

  • The converted and filtered range data in meters. The valid data points are averaged over rolling_pts points. The IR reading to range is converted by the formula  coefficient * range ** exponent .

range_std - (std_msgs/Float32)

  • The standard deviation of the last rolling_pts points.

Subscribed Topics

range - (std_msgs/Int16)

  • The output of an IR range filter. In the example K'nex hacked robot, this is read and returned by an Arduino. Any points outside the min_valid <= range <= max_valid are discarded.


~exponent - (float, default:-1.31)

  • Exponent in the scaling equation  coefficient * range ** exponent 

~coefficient - (float, default:266.0)

  • Coefficient in the scaling equation  coefficient * range ** exponent

~min_valid - (int, default:1)

  • The minimum valid input range value. Any range points < min_valid will be discarded. If the exponent is negative, min_valid cannot be zero. If the exponent is not a whole number, the min_valid cannot be negative.


  • The maximum valid input range value. Any range points > max_valid will be discarded. max_valid must be greater than min_valid.

Published Topics

Subscribed Topics



~enabled (bool, default: False)
  • Access point running status. Set to True to start access point and to False to stop it. Note that this is also an output parameter (the current running status of the AP will be reflected here).
~ssid (str, default: test)
  • Access point essid (network name)
~wmm (bool, default: False)
  • Wireless multimedia extensions support
~mode (str, default: b)
  • IEEE 802.11 mode. Possible values are: a: 802.11a mode, b: 802.11b mode, g: 802.11g mode
~freq (double, default: 2412000000.0)
  • Access point frequency in Hz. This needs to be both a legal IEEE 802.11 channel frequency and the channel must belog to the current mode (e.g. if setting a 5GHz frequency, the current mode has to be a)
~ieee80211n (bool, default: False)
  • IEEE 802.11n support.
~encryption_mode (string, default: open)
  • Security mode. Possible values are: open: no security, wep: WEP security, wpa: WPA security, wpa2: WPA2 security, wpa_wpa2: WPA or WPA2 security.
~encryption_pass (string)
  • Encryption key (i.e. 10 or 26 hexadecimal digits) for WEP or passphrase for WPA.
~txpower_auto (bool, default: True)
  • Automatic TX power control
~txpower (int, default: 0)
  • TX power (dBm). Must first set txpower_auto to False.
~bitrate (int, default: 0)
  • TX bitrate (bps). This should be a legal bitrate for the current 802.11 mode (e.g. 1000000 for b mode or 24000000 for g or a modes)
~status (string, default: OK)
  • Status of last parameter update. Possible values are: OK: operation successfully completed or FAIL: last operation failed (see errmsg for the reason). This parameter is read-only.
~errmsg (string, default: )
  • Error message if last update was not successful. This parameter is read-only.

Wiki: knex_ros (last edited 2012-10-10 22:19:53 by JonStephan)