Windows10 开机自启动 WSL1 中的ROS脚本
Posted yaked19
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows10 开机自启动 WSL1 中的ROS脚本相关的知识,希望对你有一定的参考价值。
因为WSL1没有Linux内核,在其中的启动脚本不是Linux的常规操作,同时对USB设备的支持不是很好。建议有机会直接WSL 2,最近变为发行版了,更稳定。但是由于自己装的WSL 1不想重装系统了,希望WSL 中的ROS脚本随着win10启动而自动启动,这里自己做个笔记,也给需要的朋友一个参考。
win10程序的自启动,利用vbs脚本实现。
cmd dos窗口的分屏利用Windows Terminal实现。Release Windows Terminal v1.12.1098 · microsoft/terminal (github.com)
WSL1 ROS脚本放在bat批处理文件中,避免弹出黑窗口,看到脚本内容。
关键地方,如何打开Windows Terminal并分别执行命令。
一开始可以试试
wt bash -i -l -c "roscore"
wt -p "Ubuntu-18.04" -d /home/dt/catkin_ws/doc/shell bash -i -l -c "./01lidar_driver_0531.sh"; split-pane -V -- bash -i -l -c "02lidar_driver_0701.sh"; split-pane -H -- bash -i -l -c "03cloud_merge.sh"; move-focus left; split-pane -H -- bash -i -l -c "04pcl_filter.sh"; new-tab -- bash -i -l -c "10laser_driver.sh"; split-pane -V -- bash -i -l -c "11laser_person.sh"; split-pane -H -- bash -i -l -c "12websocket.sh"; move-focus left; split-pane -H -- bash -i -l -c "13dotnet.sh"
最终
wt -p "Ubuntu-18.04" -- bash -i -l -c "roslaunch livox_ros_driver livox_lidar_msg0531.launch"; split-pane -V -- bash -i -l -c "sleep 3 && roslaunch livox_ros_driver livox_lidar_msg0701.launch"; split-pane -H -- bash -i -l -c "sleep 5 && roslaunch lidar_obstacle 1cloud_integration.launch"; move-focus left; split-pane -H -- bash -i -l -c "sleep 1 &&roslaunch lidar_obstacle 2pcl_filter.launch"; new-tab -- bash -i -l -c "sleep 1 && roslaunch lakibeam1 lakibeam1_scan_dual_lidar.launch"; split-pane -V -- bash -i -l -c "sleep 1 &&roslaunch laser_person dual_laser_person.launch"; split-pane -H -- bash -i -l -c "sleep 5 && roslaunch rosbridge_server rosbridge_websocket.launch"; move-focus left; split-pane -H -d \\\\wsl$\\Ubuntu-18.04\\home\\dt\\crane -- bash -i -l -c "sleep 20 && dotnet CraneSafetyServer.dll"
wt是Windows Terminal程序的缩写;Windows Terminal command line arguments | Microsoft Learn
-p 是profile的缩写表示配置文件名称,这里是加载“Ubuntu-18.04”子系统(wsl -l 查看);
-d是设置工作目录,便于直接找到想要的脚本或者ros程序
-V 竖直分屏,后面接 “ -- bash -i -l -c”这里很关键。
-- 和 -e的区别,前者是传送指令给shell,后者是不传直接运行。这里是传送给shellWSL,使用"wsl --exec <cmd>“或"wsl -- <cmd>”运行linux命令 - 问答 - 腾讯云开发者社区-腾讯云 (tencent.com)
-i -l 是交互式login窗口,interactive login shell,可以加在默认的bash变量,避免输sudo 密码等
快捷键
Ctrl+shift+P 命令面板(类似Visual sudio code)
以上是关于Windows10 开机自启动 WSL1 中的ROS脚本的主要内容,如果未能解决你的问题,请参考以下文章