当前位置:网站首页>ros(27):rosparam简单使用与一种通过launch传递参数不成功与解决
ros(27):rosparam简单使用与一种通过launch传递参数不成功与解决
2022-07-23 16:19:00 【biter0088】
1. rosparam简单使用:
1.1 工作空间
使用ubuntu系统,文件组织如下:(ros包名等自拟参数可以更改)
ros_ws
├── ros_test.launch
└── src
└── using_markers
├── CMakeLists.txt
├── package.xml
├── src
└── ros_para.cpp
ros_para.cpp
//解决ros参数传递不进去的问题
# include <iostream>
# include <ros/ros.h>
double parameter1=0;//初始化为0
int main(int argc, char **argv){
ros::init(argc, argv, "para");
// ros::NodeHandle nh;-----我这个示例中参数传递不成功的地方
ros::NodeHandle nh("~");
//通过rosparam初始化为0.05,与第五行对比看rosparam有没有起作用
//double也可以选为其他数据类型,如bool、int、string等
nh.param<double>("parameter1", parameter1, 0.05);
std::cout<<"parameter1: "<<parameter1<<std::endl;
return 0;
}CMakeLists.txt
cmake_minimum_required(VERSION 3.0.2)
project(using_markers)
find_package(catkin REQUIRED COMPONENTS
roscpp
visualization_msgs
)
catkin_package(
)
include_directories(
${catkin_INCLUDE_DIRS}
)
add_executable(ros_para src/ros_para.cpp)
target_link_libraries(ros_para ${catkin_LIBRARIES})package.xml
<?xml version="1.0"?>
<package format="2">
<name>using_markers</name>
<version>0.0.0</version>
<description>The using_markers package</description>
<maintainer email="[email protected]">meng</maintainer>
<license>TODO</license>
<buildtool_depend>catkin</buildtool_depend>
<build_depend>roscpp</build_depend>
<build_depend>visualization_msgs</build_depend>
<build_export_depend>roscpp</build_export_depend>
<build_export_depend>visualization_msgs</build_export_depend>
<exec_depend>roscpp</exec_depend>
<exec_depend>visualization_msgs</exec_depend>
<export>
</export>
</package>
ros_test.launch
<launch>
<node pkg="using_markers" type="ros_para" name="ros_para" output="screen" >
<param name="parameter1" value="1" />
</node>
</launch>
1.2 编译运行
cd xxx/ros_ws
catkin_make
source devel/setup.bash
roslaunch ros_test.launch打印输出parameter1为1,不是0或0.05,说明通过ros的param工具修改了参数

2 rosparam参数传递不成功示例
上述其他文件不变,只修改ros_para.cpp文件,如下所示:
ros::NodeHandle nh;-----我这个示例中参数传递不成功的地方
//ros::NodeHandle nh("~");重新编译运行,发现打印输出值为0.05,是在cpp程序中通过rosparam初始化的值,这说明launch文件没有把参数传递进来------是没加("~")的缘故

边栏推荐
猜你喜欢

学次世代建模是场景好还是角色好?选对职业薪资多一半

【游戏建模模型制作全流程】ZBrush武器模型制作:弩

go中高并发下的锁是如何工作的(结合源码)

面试官:你觉得你最大的缺点是什么?

前置放大器和功率放大器有什么区别?

@Entity 里面的 JPA 注解

SQLZOO——BBC QUIZ

UAV circulating an unknown target under a GPS deniedenvironment with range only measurements translation

SQLZOO——SELECT from Nobel Tutorial

如何成为建模师?工业建模和游戏建模哪一个更加吃香?
随机推荐
PCL:多直线拟合(RANSAC)
防控调整后暑期市场井喷,途家、木鸟、美团暑期活动测评
aspose的仓库地址
如何评估券商分析师预测股票涨跌的准确性?
数字信号处理实验(一)
Ubuntu 22.04 installing mysql8
接口测试概述
到底适不适合学习3D建模?这5点少1个都不行
常用的curl命令及参数详解
MySQL事务,从redo log、bin log、undo log说起...
我的创作纪念日
[jzof] 13 motion range of robot
The great heat of the twenty-four solar terms
Digital signal processing experiment (I)
MySQL经典练习题及答案,常用SQL语句练习50题
DDD:如何领用领域驱动设计来避免写流水账代码
rhcsa笔记四
Data crawling and display of e-commerce platform based on scratch
有人是靠自学建模找到工作的吗?千万别让这些思维害了你
ubuntu22.04安装mysql8