ROS 로봇 프로그래밍 연습 (3.2) - 사용자 정의 메시지 유형 유통 및 리셉션

머리말

"로스 로봇 프로그래밍 연습,"세 번째 장 루틴이 가상의 정의 데이터 형식.

구현 과정

참조 이전 장 블로그를 작업 공간을 만들기 :
ROS 로봇 프로그래밍 연습 (3.1) - 주제의 보도 자료를

파일 구조 기본 패키지 봐 :

cd ~/catkin_ws/src/basic
ls
tree

그림 삽입 설명 여기
확인하자가 작동 시작
1, 우리는 메시지 유형을 작성, 파일이 Complex.msg 작성

cd ~/catkin_ws/src/basic
mkdir msg
cd msg
vi Complex.msg

정력과 편집, 내가 누르면 키보드 입력 모드에서 입력은 그대로 다음 :
그림 삽입 설명 여기
저장하고 종료 "WQ"(참고 : 따옴표에있는 모든 내용이 "") Esc 키를 눌러 편집 모드, 입력을 종료 할 수 있습니다.
2, 파일을 편집 package.xml

cd ..
vi package.xml

2.1 상기 <build_depend> rospy </ build_depend> <build_depend> std_msgs </ build_depend>
첨가 이러한 build_depend 근방 :

  <build_depend>message_generation</build_depend>
  <exec_depend>message_runtime</exec_depend>

참고 : ROS의 인디고 버전 인 경우, exec_depend 필요가 run_depend를 교체합니다.
2.2
위의 ESC 출구 편집 모드, 입력 "WQ는"저장하고 종료합니다.
그림 삽입 설명 여기
3, 파일을 편집 CMakeLists.txt

vi CMakeLists.txt

3.1 변형 find_package () 플러스 message_generation :
그림 삽입 설명 여기
3.2 검토 catkin_package () 플러스 message_runtime :
그림 삽입 설명 여기
3.3 검토 add_message_files () 플러스 Complex.msg :
그림 삽입 설명 여기
: 함께 발생 시스템 3.4 검토 generate_message ()는 제거 주이며
그림 삽입 설명 여기
, 4 SRC에 기본 패키지에있는 파일을 message_publisher.py을 추가하고 message_subscriber.py :

cd src
vi message_publisher.py
vi message_subscriber.py

코드에 각각 붙여 넣기 :

message_publisher.py

#!/usr/bin/env python
import roslib; roslib.load_manifest('basic')
import rospy
from basic.msg import Complex

from random import random

rospy.init_node('message_publisher')

pub=rospy.Publisher('complex',Complex)

rate=rospy.Rate(2)

while not rospy.is_shutdown():
	msg=Complex()
	msg.real=random()
	msg.imaginary=random()
	pub.publish(msg)
	rate.sleep()

message_subscriber.py

#!/usr/bin/env python
import roslib; roslib.load_manifest('basic')
import rospy
from basic.msg import Complex

def callback(msg):
	print 'Real:',msg.real
	print 'Imaginary',msg.imaginary
	print

rospy.init_node('message_subscriber')
sub = rospy.Subscriber('complex', Complex,callback)
rospy.spin()

5, 터미널 실행 roscore를 엽니 다

roscore

6, 수익률은 루트 디렉토리, catkin_make 컴파일 및 실행되는 스크립트 술집 catkin_ws

cd ~/catkin_ws
catkin_make
source devel/setup.bash
rosrun basic message_publisher.py

7, 다른 터미널을 실행 subscriber.py을 엽니 다

rosrun basic message_subscriber.py

8, 운영 결과 :
그림 삽입 설명 여기

게시 53 개 원래 기사 · 원 찬양 5 · 조회수 2208

추천

출처blog.csdn.net/qq_37668436/article/details/104181758