机器人采用三维激光雷达SLAM建图,之前录制Bag文件,都是远程机器人里面的导航计算机(ubuntu18.04)手动输rosbag命令录制包。作为一款成熟的产品,当然不希望用户远程操作了。于是研究了一下远程录包的方法。
首先我们有一个客户端程序,和导航程序用TCP/IP通信。客户端可以给导航程序发送控制指令。同时客户端还可以通过FTP查询和下载导航计算机里面的文件。
那么重点来了,导航计算机收到客户端的录包指令后,如何实现录包操作呢?就用下面的这条指令:
bash -c "rosbag record -o /home/bag/map.bag /odom /IMU_data /lslidar_point_cloud __name:=my_record_node;exec bash"
这样就开始录制了。
结束的话就调用 rosnode kill my_record_node就可以了。