ROS】 ubuntu16.04下vs code实现ros下参数的使用与编程

  • 一、终端下parameter的相关命令介绍
  • 二、工作空间的创建及准备工作
  • 三、参数编程及运行效果

一、终端下parameter的相关命令介绍

(1)列出当前多有参数

rosparam list

(2)显示某个参数值

rosparam get param_key

(3)设置某个参数值

rosparam set param_key param_value

(4)保存参数到文件

rosparam dump file_name

(5)从文件读取参数

rosparam load file_name

(6)删除参数

rosparam delete param_key

以上命令需要在节点运行的情况下使用

二、工作空间的创建及准备工作
本章节主要内容是以参数的使用和编程方法为主,使用的IDE是vs code,关于ubuntu系统下vs code的安装可以参考我的另一篇博客,链接如下

https://blog.csdn.net/weixin_45417246/article/details/115444048.

新建文件夹catkin_parameter,并在文件夹下新建src文件夹,这里可以不进行工作空间的初始化,并用vs code打开catkin_parameter文件,按住Ctrl+Tab+~键,在vs code打开终端,在/fjy/catkin_parameter路径下进行编译,并添加环境变量

cd ~/fjy/catkin_parameter //转到catkin_turtle路径下
catkin_make //编译
source devel/setup.bash //设置环境变量

在这里插入图片描述

按住Fn+F1,在搜索栏中输入C/C++编辑配置,点击C/C++编辑配置,会在左边目录产生一个.vscode文件夹,单击该文件夹下的c_cpp_properties.json文件,并添加路径,按Ctrl+s保存,路径如下

“/opt/ros/kinetic/include” //使头文件包含合理

在这里插入图片描述

在这里插入图片描述

三、参数编程及运行效果

在/catkin_parameter/src路径下创建功能包parameter,博主这边通过终端命令行进行创建

catkin_create_pkg parameter roscpp std_srvs

然后在/catkin_parameter/src/parameter/src路径下创建parameter_config.cpp文件

touch parameter_config.cpp

并单击打开该c++文件进行程序的编写,程序如下

//相关头文件引用
#include <string>
#include <ros/ros.h>
#include <std_srvs/Empty.h>
//实现读取改变小海龟背景颜色的功能
int main(int argc, char **argv)
{
	int red, green, blue;
    // 创建一个节点,ROS节点初始化
    ros::init(argc, argv, "parameter_config");
    // 创建节点句柄,用于节点信息的管理
    ros::NodeHandle node;
    // 读取背景颜色参数
	ros::param::get("/background_r", red);
	ros::param::get("/background_g", green);
	ros::param::get("/background_b", blue);
    //将读取到的rgb值打印出来
	ROS_INFO("Get Backgroud Color[%d, %d, %d]", red, green, blue);
	// 设置背景颜色参数
	ros::param::set("/background_r", 255);
	ros::param::set("/background_g", 255);
	ros::param::set("/background_b", 255);
    //将设置好的rgb值打印出来
	ROS_INFO("Set Backgroud Color[255, 255, 255]");
    // 再次读取背景颜色参数
	ros::param::get("/background_r", red);
	ros::param::get("/background_g", green);
	ros::param::get("/background_b", blue);
    //将读取到的rgb值打印出来
	ROS_INFO("Re-get Backgroud Color[%d, %d, %d]", red, green, blue);
	// 调用服务,刷新背景颜色
	ros::service::waitForService("/clear"); //阻塞型函数,等待有命令出现
	ros::ServiceClient clear_background = node.serviceClient<std_srvs::Empty>("/clear");
	std_srvs::Empty srv;
	clear_background.call(srv);
	sleep(1);
    return 0;
}

然后编辑功能包parameter下的CMakeLsits.txt文件和package.xml文件,package.xml文件一般在创建功能包时默认设置好了,不需要修改,只需要在CMakeLists.txt文件下添加以下两行代码即可

add_executable(parameter_config src/parameter_config.cpp) //生成可执行文件
target_link_libraries(parameter_config ${catkin_LIBRARIES}) //连接库

完成这些后,回到/catkin_parameter路径下,进行编译

在这里插入图片描述

编译完成后就可以运行节点试验一下,打开一个终端启动roscore,再重新打开一个终端,运行命令rosrun turtlesim turtlesim_node,来打开海龟仿真器,然后在vs vode终端下输入命令rosrun parameter parameter_config,即可查看运行效果,可以看到小海龟背景的颜色从最初的默认蓝色变成了白色,和程序中描述的内容的一致
在这里插入图片描述

这样,我们就完成了vs code下参数的使用和编程了