패키지 설정 파일
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>topic_service_action_rclpy_example</name>
<version>0.2.0</version>
<description>ROS 2 rclpy example package for the topic, service, action</description>
<maintainer email="passionvirus@gmail.com">Pyo</maintainer>
<license>Apache License 2.0</license>
<author email="passionvirus@gmail.com">Pyo</author>
<author email="routiful@gmail.com">Darby Lim</author>
<depend>rclpy</depend>
<depend>std_msgs</depend>
**<depend>msg_srv_action_interface_example</depend>
<test_depend>ament_copyright</test_depend>
<test_depend>ament_flake8</test_depend>
<test_depend>ament_pep257</test_depend>
<test_depend>python3-pytest</test_depend>
<export>
<build_type>ament_python</build_type>
</export>
</package>
파이썬 패키지 설정 파일
import glob
import os
from setuptools import find_packages
from setuptools import setup
package_name = 'topic_service_action_rclpy_example'
share_dir = 'share/' + package_name
setup(
name=package_name,
version='0.2.0',
packages=find_packages(exclude=['test']),
data_files=[
('share/ament_index/resource_index/packages', ['resource/' + package_name]),
(share_dir, ['package.xml']),
(share_dir + '/launch', glob.glob(os.path.join('launch', '*.launch.py'))),
(share_dir + '/param', glob.glob(os.path.join('param', '*.yaml'))),
],
install_requires=['setuptools'],
zip_safe=True,
author='Pyo, Darby Lim',
author_email='passionvirus@gmail.com, routiful@gmail.com',
maintainer='Pyo',
maintainer_email='passionvirus@gmail.com',
keywords=['ROS'],
classifiers=[
'Intended Audience :: Developers',
'License :: OSI Approved :: Apache Software License',
'Programming Language :: Python',
'Topic :: Software Development',
],
description='ROS 2 rclpy example package for the topic, service, action',
license='Apache License, Version 2.0',
tests_require=['pytest'],
entry_points={
'console_scripts': [
'argument = topic_service_action_rclpy_example.arithmetic.argument:main',
'operator = topic_service_action_rclpy_example.arithmetic.operator:main',
'calculator = topic_service_action_rclpy_example.calculator.main:main',
'checker = topic_service_action_rclpy_example.checker.main:main',
],
},
)
소스코드 다운로드 및 빌드
$ cd ~/ros2_dashing/src
$ git clone https://github.com/robotpilot/ros2-seminar-examples.git
$ cd ~/ros2_dashing && colcon build --symlink-install