5.4.1. Configuration des exécutables¶
5.4.1.1. Python¶
Lors de la création d’un package un fichier setup.py est automatiquement créé. Ce fichier permet de paramétrer les executable. Cette étape est importante afin d’exécuter vos scripts.
Vous devez rajouter la ligne suivante dans la liste “console_scripts” à la fin du fichier :
'my_script = my_package.my_script:main'
Ce qui signifie :
nom_de_l_executable = nom_du_package.nom_du_script:main
Attention a bien suivre la structure du nœud présenté ci-dessus.
Vous pouvez en ajouter plusieurs tel que :
from setuptools import setup
package_name = 'my_package'
setup(
name=package_name,
version='0.0.0',
packages=[package_name],
data_files=[
('share/ament_index/resource_index/packages',
['resource/' + package_name]),
('share/' + package_name, ['package.xml']),
],
install_requires=['setuptools'],
zip_safe=True,
maintainer='ubuntu',
maintainer_email='ubuntu@todo.todo',
description='TODO: Package description',
license='TODO: License declaration',
tests_require=['pytest'],
entry_points={
'console_scripts': [
'exec_1 = my_package.script_1:main',
'exec_2 = my_package.script_2:main'
],
},
)
Ici nous avons ajouté les exécutables exec_1 et exec_2 qui appellent les fonctions main de script_1 et script_2.
5.4.1.2. C++¶
na
5.4.2. Configuration des Launch¶
Avant de créer vos fichiers launch vous devez créer un dossier spécifique dans votre package si ce dernier n’existe pas.
mkdir launch
5.4.2.1. Python¶
Voici maintenant un exemple de fichier launch. Ici ce dernier lance 3 executables. Beaucoup de paramètres peuvent être ajoutés.
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
return LaunchDescription([
Node(
package='nom_du_package_de_lexecutable',
executable='nom_de_lexecutable_a_lancer',
name='nom_pour_vous_y_retrouver_vous_pouvez_remettre_le_nom_de_lexecutable'
),
Node(
package='turtlesim',
executable='turtlesim_node',
name='sim'
),
Node(
package='turtlesim',
executable='mimic',
name='mimic',
remappings=[
('/input/pose', '/turtlesim1/turtle1/pose'),
('/output/cmd_vel', '/turtlesim2/turtle1/cmd_vel'),
]
)
])
Un launch file peut lancer des exécutables present dans un autre package que celui où se trouve votre launch file.