roslaunch에서 param 설정해서 노드 제어하기

2019. 10. 25. 10:09드론

roslaunch는 하나 이상의 정해진 노드를 실행시킬 때 사용한다. 그 밖의 기능으로 노드를 실행할 때 패키지의 파라미터나 노드 이름 변경, 노드 네임스페이스 설정, ROS_ROOT 및 ROS_PACKAGE_PATH 설정, 환경변수 변경 등의 옵션을 붙일 수 있다

 

<launch>
	<node pkg="ros_tutorial_topic" type="topic_publisher" name="topic_publisher1">
	<node pkg="ros_tutorial_topic" type="topic_publisher" name="topic_publisher2">
	<node pkg="ros_tutorial_topic" type="topic_subscriber" name="topic_subscriber1">
	<node pkg="ros_tutorial_topic" type="topic_subscriber" name="topic_subscriber2">
</launch>

 

launch 파일에 파라미터 서버 노드를 하나 만들어, 파라미터 값을 받아서 노드들을 제어하는 코드를 작성해보려고 한다. "calculation_method"라는 연산자 파라미터를 만드려고 한다

 

#include "ros/ros.h"

int main(int argc, char **argv) {
	ros::init(argc, argv, "service_param_server");
	ros::NodeHandle nh;

	nh.setParam("calculation_method", 3);
	ros::spin();
	
	return 0;
}

 

<launch>
	<node pkg="ros_tutorials_parameter" type="service_param_server" name="service_param_server"/>
	<node pkg="ros_tutorials_parameter" type="service_server_with_parameter" name="service_server"/>
	<node pkg="ros_tutorials_parameter" type="service_client_with_parameter" name="service_client" args="3 4"/>
</launch>

 

'드론' 카테고리의 다른 글

roslaunch에서의 param tag 의미  (0) 2019.10.26
CUDA 8.0 + openCV 3.4.0으로 darknet YOLO 실행  (0) 2019.10.26
roslaunch command line args  (0) 2019.10.24
ROS C++ 서비스 서버와 클라이언트  (0) 2019.10.24
ROS C++ topic 구현  (0) 2019.10.23