找回密码
 立即注册
搜索
查看: 7721|回复: 7

ssh登录和运行roslaunch命令合成一个命令的问题

[复制链接]

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
发表于 2021-11-2 23:15:19 | 显示全部楼层 |阅读模式
您好,我想把ssh登录和运行roslaunch命令合成一个命令以便一键执行,在网上查了写法大概是这样的:ssh -tt -Y wheeltec@192.168.0.100 "source /opt/ros/melodic/setup.bash; source /home/wheeltec/wheeltec_robot/devel/setup.bash; roslaunch turn_on_wheeltec_robot navigation.launch",命令能正常运行也不报错,但是rviz里面tf数据,map和robot_model数据都报错收不到,请问是哪里有问题吗?我在控制台先ssh登录再敲roslaunch命令就正常。

虚拟机和小车的~/.bashrc里面的地址都是填的下面的字样。
export ROS_MASTER_URI=http://192.168.0.100:11311
export ROS_HOSTNAME=192.168.0.136


运行rosrun rqt_tf_tree rqt_tf_tree查看TF树,显示no Reviced data。
我在控制台先ssh登录,再敲roslaunch命令就正常。我上面这条命令不也是在ssh登陆之后执行launch命令吗,有啥区别呢?
回复

使用道具 举报

55

主题

266

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
发表于 2021-11-3 08:50:17 | 显示全部楼层
命令行运行的话分号换成&,这个是保证第一条指令成功运行再执行第二条指令
Snipaste_2021-11-03_08-47-43.png
回复

使用道具 举报

55

主题

266

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
发表于 2021-11-3 08:51:11 | 显示全部楼层
您也可以尝试在两条指令之间加个延时,或者换成脚本试一下
回复

使用道具 举报

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2021-11-3 21:49:14 | 显示全部楼层
分号换成&之后直接提示:“bash: roslaunch: command not found”
加了sleep n秒的延时也是一样的。
换成脚本也是一样的,我之前的写法完全不报错,所有的命令行输出都是正常的,咋整啊
回复

使用道具 举报

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2021-11-3 22:16:05 | 显示全部楼层
我现在在虚拟机远程登录,只执行一条脚本:ssh -Y -tt wheeltec@192.168.0.100 "bash ~/shell/navigation.sh"
这个脚本是放在小车上,内容除了bash脚本文件基本的source之外只有一条指令,如下:
#! /bin/bash
#刷新ros环境
source /opt/ros/melodic/setup. bash
source /home/wheeltec/wheeltec_robot/devel/setup. bash
source ~/.bashrc
sleep 1
roslaunch turn_on_wheeltec_robot navigation.launch &
wait
exit 0
现象是一样的,正常执行,控制台字符输出正常,就是rviz收不到数据,手工在控制台登录再敲roslaunch就一点问题没有。
回复

使用道具 举报

55

主题

266

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
发表于 2021-11-4 09:39:01 | 显示全部楼层
要不您尝试一下脚本内容换成打开命令行终端再执行命令,或者这样按这样修改脚本,把划线的部分换成你想执行的指令
D8509BF9-65C8-4e70-9640-8EB674E00D1E.png
回复

使用道具 举报

1

主题

4

帖子

11

积分

新手上路

Rank: 1

积分
11
 楼主| 发表于 2021-11-4 21:46:37 | 显示全部楼层
我按照你们的方法,写好bash文件放在小车桌面上,通过远程vnc的方式,进入小车桌面,执行bash文件,一切正常,上位虚拟机rviz也正常。但问题是这样就相当于我登录小车开了个命令行。
我想在上位机用一条命令就启动,把ssh和敲命令合并,像这样就不行了:ssh -tt -Y wheeltec@192.168.0.100 'bash ~/Desktop/nav.sh',和之前的问题一样,能启动但rivz收不到信息。
回复

使用道具 举报

55

主题

266

帖子

476

积分

中级会员

Rank: 3Rank: 3

积分
476
发表于 2021-11-5 08:54:23 | 显示全部楼层
mayuanjia 发表于 2021-11-4 21:46
我按照你们的方法,写好bash文件放在小车桌面上,通过远程vnc的方式,进入小车桌面,执行bash文件,一切正 ...

这个我们也没有尝试过,用户DIY的功能还需自己多多尝试呢,我们这边也是只能提供一下思路而已
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

粤ICP备20017043号|小黑屋|手机版|Archiver|轮趣科技(东莞)有限公司  

GMT+8, 2024-11-24 06:27 , Processed in 0.061253 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表