nh.param<std::string>("fcu_url", fcu_url, "serial:///dev/ttyACM0"); nh.param<std::string>("gcs_url", gcs_url, "udp://@"); nh.param<bool>("gcs_quiet_mode", gcs_quiet_mode, false); nh.param("conn/timeout", conn_timeout_d, 30.0); nh.param<std::string>("fcu_protocol", fcu_protocol, "v2.0"); nh.param("system_id", system_id, 1); nh.param<int>("component_id", component_id, mavconn::MAV_COMP_ID_UDP_BRIDGE); nh.param("target_system_id", tgt_system_id, 1); nh.param("target_component_id", tgt_component_id, 1); nh.param("startup_px4_usb_quirk", px4_usb_quirk, false); nh.getParam("plugin_blacklist", plugin_blacklist); nh.getParam("plugin_whitelist", plugin_whitelist);
时间: 2023-06-14 14:07:02 浏览: 204
C++ 11 std::function和std::bind使用详解
这段代码是使用ROS参数服务器获取一些参数的值。其中:
- `nh` 是一个 `ros::NodeHandle` 对象,用于与ROS节点通信。
- `nh.param<std::string>("fcu_url", fcu_url, "serial:///dev/ttyACM0")` 表示从参数服务器中读取名为 `fcu_url` 的参数值,如果不存在则使用默认值 `"serial:///dev/ttyACM0"`。读取到的参数值以 `std::string` 类型存储在变量 `fcu_url` 中。
- 同理,`gcs_url`、`gcs_quiet_mode`、`conn_timeout_d`、`fcu_protocol`、`system_id`、`component_id`、`tgt_system_id`、`tgt_component_id`、`px4_usb_quirk`、`plugin_blacklist` 和 `plugin_whitelist` 都是从参数服务器中读取相应的参数值。
- `nh.getParam("plugin_blacklist", plugin_blacklist)` 和 `nh.getParam("plugin_whitelist", plugin_whitelist)` 相当于 `nh.param()`,但是不设置默认值,如果参数不存在则 `plugin_blacklist` 和 `plugin_whitelist` 不会被赋值。
阅读全文