默认情况
PC端可以通过修改.bashrc中的ROS_MASTER_URI对小车远程进行控制,此时**节点管理器master是在小车上运行的**,这是tianbot官方文档给出的配置信息。
PC端可以运行节点通过**小车端的话题**实现PC端和小车的信息交互。
修改情况
现在我想要实现两辆小车通过一个PC端通信,就得实现将PC端作为节点管理器master的载体。于是我将PC端通过ssh登录到小车的系统并更改ROS_MASTER_URI成了PC端的ip地址。我希望小车间**通过PC端的话题实现信息交互**。
但是在控制小车的终端上敲打如下命令之后出现了错误(而在修改ROS_MASTER_URI之前并没出现以下错误)
1.export ROS_MASTER_URI=http://PC端的ip地址:11311
2.roslaunch keyboard_demo.launch
<launch>
<!-- 底盘驱动 -->
<include file="$(find turtlebot_bringup)/launch/minimal.launch"/>
<!-- 键盘控制 -->
<include file="$(find turtlebot_teleop)/launch/keyboard_teleop.launch"/>
</launch>
[FATAL] [1590927029.220032454]: ASSERTION FAILED
file = /opt/ros/kinetic/include/ros/publisher.h
line = 69
cond = false
message =
[FATAL] [1590927029.220171803]: Call to publish() on an invalid Publisher
[FATAL] [1590927029.220295400]:
[FATAL] [1590927029.224751693]: Failed to load nodelet '/cmd_vel_mux '
of type ' yocs_cmd_vel_mux/CmdVelMuxNodelet' to manager 'mobile_base_nodelet_manager'
[mobile_base_nodelet_manager-3] process has died
[pid 20765, exit code -5, cmd /opt/ros/kinetic/lib/nodelet/nodelet manager __name:=mobile_base_nodelet_manager __log:=/home/tianbot/.ros/log/cc530678-a336-11ea-91ef-e4029b4c4eb0/mobile_base_nodelet_manager-3.log].
log file: /home/tianbot/.ros/log/cc530678-a336-11ea-91ef-e4029b4c4eb0/mobile_base_nodelet_manager-3*.log
[cmd_vel_mux-6] process has died
[pid 20768, exit code 255, cmd /opt/ros/kinetic/lib/nodelet/nodelet load yocs_cmd_vel_mux/CmdVelMuxNodelet mobile_base_nodelet_manager cmd_vel_mux/output:=mobile_base/commands/velocity __name:=cmd_vel_mux __log:=/home/tianbot/.ros/log/cc530678-a336-11ea-91ef-e4029b4c4eb0/cmd_vel_mux-6.log].
log file: /home/tianbot/.ros/log/cc530678-a336-11ea-91ef-e4029b4c4eb0/cmd_vel_mux-6*.log
不知道具体问题是什么,也不确定如何解决。如果有接触这样问题的大佬是否能解答一下,万分感谢。