![시작 시 ros2 시작 파일을 실행하는 방법은 무엇입니까?](https://linux55.com/image/228157/%EC%8B%9C%EC%9E%91%20%EC%8B%9C%20ros2%20%EC%8B%9C%EC%9E%91%20%ED%8C%8C%EC%9D%BC%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
ros2 시작 파일을 실행하는 Python 파일이 있습니다.
process = subprocess.Popen(["/opt/ros/humble/bin/ros2", "launch", "blaunch_pkg", "on_startup.launch.py"])
process = subprocess.Popen(command1, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = process.communicate()
print("STDOUT OF ROS:", stdout.decode())
print("STDERR OF ROS:", stderr.decode())
process.wait()
exit()
이것은 내 서비스입니다.
[Unit]
Description=My Python Script
After=network.target
[Service]
Environment=PYTHONPATH=(my python path)
Enviroment=AMENT_PREFIX_PATH=(my ament prefix path)
Enviroment=CMAKE_PREFIX_PATH=(my ament cmake prefix path)
ExecStart=/bin/python3.10 (my path to service_startup.py)
WorkingDirectory= (my working directory)
StandardOutput=append:/var/log/my_script.log
StandardError=inherit
Restart=always
User=tubo
[Install]
WantedBy=multi-user.target
내 오류 로깅이 일관성이 없습니다. 변경할 때마다 다른 오류 로깅이 표시됩니다(예: 사용 중인 Python 경로를 변경하는 경우). 현재 구성에서는 서비스가 활성화되어 있지만 때로는 오류 없이 실행되지만 시작 파일이 실제로 실행되지 않고 때로는 다음 오류가 나타납니다.
OSError: Environment variable 'AMENT_PREFIX_PATH' is not set or empty
STDOUT OF ROS:
STDERR OF ROS:
STDOUT OF ROS:
STDERR OF ROS: