正常流程
- 创建一个启动脚本(例如 start_ros.sh)来启动ROS程序。确保在脚本中使用绝对路径来指定ROS程序的位置。注意是绝对路径,不可以使用“~”来解析。例如:
#!/bin/bash
# 启动环境
source /home/jetson/Code/catkin_test/devel/setup.bash
# 其他设置
# 启动ROS程序
roslaunch <package_name> <launch_file>
- 将启动脚本保存在适当的位置,例如
/home/jetson/code/start_ros.sh
。
- 授予脚本执行权限。在终端中运行以下命令,结束后可以用
ls -l
来确认一下权限。
chmod +x /home/jetson/code/start_ros.sh
- 在
/etc/systemd/system/
下创建一个启动服务(service)文件(例如 ros_startup.service
),该文件将告诉系统在开机时运行启动脚本。
[Unit]
Description=ROS Startup
After=network.target
[Service]
ExecStart=/home/jetson/code/start_ros.sh # 替换为自己的路径
User=user # 替换为当前用户名
[Install]
WantedBy=multi-user.target
sudo systemctl enable ros_startup.service
sudo systemctl start ros_startup.service
- 现在,ROS程序应该在Linux开机时自动启动。重新启动系统进行测试
其他注意点
- !注意使用绝对地址,可以使用
pwd
来查看当前的绝对地址。
- 在修改了启动脚本后要重新加载 systemd 守护进程并检查服务状态:
sudo systemctl daemon-reload
sudo systemctl status ros_startup.service
评论区