修改turtlesim乌龟显示节点窗体的背景色,已知背景色是通过参数服务器的方式以 rgb 方式设置的。
一:通过终端实现
终端1:
$ roscore
终端二:
$ rosrun turtlesim turtlesim_node
终端三:
1.$ rosparam list
输出:
/rosdistro
/roslaunch/uris/host_liu_lenovo_xiaoxinair_14iil_2020__36079
/rosversion
/run_id
/turtlesim/background_b
/turtlesim/background_g
/turtlesim/background_r
2.
查看默认各值:
$ rosparam get /turtlesim/background_r
输出:
69
$ rosparam get /turtlesim/background_g
输出:
86
$ rosparam get /turtlesim/background_b
输出:
255
设置各值
$ rosparam set /turtlesim/background_r 255
$ rosparam set /turtlesim/background_g 0
$ rosparam set /turtlesim/background_b 0
然后在终端二中ctrl+C(停止运行)
然后,终端二:
$ rosrun turtlesim turtlesim_node
窗口为红色。
二。编程实现
在plumbing_test下创建test04_param.cpp:
#include “ros/ros.h”
int main(int argc, char *argv[])
{
//1.初始化ros节点
ros::init(argc,argv,“change_bgcolor”);
//2.不一定需要创建节点句柄(和后续API有关)
//方式二:创建节点句柄实现
//1.
// ros::NodeHandle nh(“turtlesim”);
// nh.setParam(“background_r”,255);
// nh.setParam(“background_b”,255);
// nh.setParam(“background_g”,255);
//2.turtlesim/
ros::NodeHandle nh;
nh.setParam(“turtlesim/background_r”,255);
nh.setParam(“turtlesim/background_b”,255);
nh.setParam(“turtlesim/background_g”,0);
//3.修改参数
//方式一:
//如果调用ros::param 不需要创建节点句柄
// ros::param::set("/turtlesim/background_r",0);
// ros::param::set("/turtlesim/background_b",0);
// ros::param::set("/turtlesim/background_g",0);
return 0;
}
CMakeLists.txt:
添加:
1.add_dependencies(test04_paramKaTeX parse error: Expected '}', got 'EOF' at end of input: {{PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
2.add_executable(test04_param src/test04_param.cpp)
3.target_link_libraries(test04_param${catkin_LIBRARIES})
终端一:$ roscore
终端二:$ rosrun plumbing_test test04_param
终端三:$ rosrun turtlesim turtlesim_node