当前位置:网站首页>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文件没有把参数传递进来------是没加("~")的缘故

边栏推荐
- [toggle 30 days of ML] Diabetes genetic risk detection challenge (2)
- 悲观锁和乐观锁
- Boss online replay: the mistake I made when training Dall · e
- SQLZOO——SELECT from Nobel Tutorial
- Rhcsa note 4
- 华为胖瘦AP切换方法
- As a senior 3D modeler, I give some suggestions to novice learning partners to use
- UAV circumnavigating an unknown target under a GPS-deniedenvironment with range-only measurements翻译
- go中高并发下的通信方式:channel管道的底层原理
- DDD:如何领用领域驱动设计来避免写流水账代码
猜你喜欢

Simply understand why the first EVM equivalent zkevm polygon is fully betting

Time frequency domain analysis of 20220721 integral link

【游戏建模模型制作全流程】用ZBrush制作游戏士兵角色

Is 3D modeling promising? Is employment guaranteed with high salary or is it more profitable to take orders in sideline industry

平安过暑假,安全不放假!这些暑期安全小提示请收好

As a senior 3D modeler, I give some suggestions to novice learning partners to use

Ali Er Mian: what is CAS?

【游戏建模模型制作全流程】3ds Max和ZBrush制作无线电接收器

Interface test overview

次世代行业现状如何?90%转行建模师都在学习这套流程
随机推荐
数字信号处理实验(一)
华为胖瘦AP切换方法
太强了,一个注解搞定接口返回数据脱敏
PCL:多直线拟合(RANSAC)
Rhcsa note 4
Use three JS realize the 'ice cream' earth, and let the earth cool for a summer
搭建PHP开发环境(Apache+PHP+MySQL)「建议收藏」
PCL:多直線擬合(RANSAC)
Time frequency domain analysis of 20220721 integral link
MySQL performance tuning
次世代行业现状如何?90%转行建模师都在学习这套流程
Detailed explanation of CO process principle in go
【游戏建模模型制作全流程】3ds Max和ZBrush制作无线电接收器
从业务开发中学习和理解架构设计
Flutter 运行模式
【游戏建模模型制作全流程】ZBrush武器模型制作:弩
SQLZOO——SELECT from Nobel Tutorial
【Coggle 30 Days of ML】糖尿病遗传风险检测挑战赛(2)
分组加密模式 ECB、CBC、PCBC、CFB、OFB、CTR
Pessimistic lock and optimistic lock