Parameters
In order to configure the lidar as we want, there is a yaml parameter file lidar_localization/config/urg_node.yaml
that is loaded by the urg_node package.
All the available parameters are listed below in the format required for ROS2 parameter files (note the urg_node heading and ros__parameters subheading):
urg_node:
ros__parameters:
ip_address: "192.168.0.10"
ip_port: 10940
#serial_port: "" # commented because you can't set a param with an empty string
serial_baud: 115200
laser_frame_id: laser
angle_max: 3.14
angle_min: -3.14
publish_intensity: false
publish_multiecho: false
calibrate_time: false
default_user_latency: 0
diagnostics_tolerance: 0.05
diagnostics_window_time: 5.0
error_limit: 4
get_detailed_status: false
cluster: 0
skip: 1
You can reconfigure parameters while the node is launched. For now, you can only reconfigure the following parameters:
laser_frame_id
error_limit
default_user_latency
angle_max # upper angle bound of lidar
angle_min # lower angle bound of lidar
cluster # cluster specified amount of data points together
skip # for every data point, skip the specified amount of data points
For example, to reconfigure the cluster parameter:
ros2 param set /urg_node cluster 1
Localization Parameters
There are also parameters stored in lidar_localization/config/lidar_localization_circle.yaml
for running the lidar localization node:
debug (boolean): Set to True if you want a lot of print statements to debug the program (see what the program is thinking). To make it run faster set it to False.
board_radius (double): The true radius to the circle portion of the board.
circle_length (double): The true secant length of the circle portion of the board.
line_length (double): The true length of the line portion of the board.
percent_error_length (double): The maximum percent error that we allow in the fit for the lengths of the circle, line, and interaction of the two. The smaller the value, the more selective (Note: 10% is 0.1).
percent_error_radius (double): The maximum percent error that we allow in the fit for the radius of the circle portion of the board. The smaller the value, the more selective (Note: 10% is 0.1).
circle_error_cutoff (double): The maximum error we allow in the circle fit for our board (in meters).
line_error_cutoff (double): The maximum error we allow in the line fit for our board (in meters).
no_averaged_points (integer): The number of points we perform the moving average on to smooth out the localization (but it lags behind the true position with higher numbers)