请按照规范操作,应该不会有问题

我们采用的ROS多机通信的方案,自己的笔记本电脑上面运行的是一些耗费算力的应用,小车上面主要运行一些比较简单的节点,比如驱动车辆运行的还有激光雷达的驱动节点

第一次编译这个工作空间建议将build和devel都删掉然后再进行编译,就在这个readme文档的文件夹下面,打开命令行使用catkin_make进行编译,或者最好自己新建一个工作空间,将src和scripts文件夹放进去然后再进行编译
编译不通过的话查看一下命令行里面的报错,是不是有什么功能包没有装,自己安装一下,CSDN上面应该有一个博客是教大家怎么通过一句命令自动安装工作空间中缺少的功能包,可以自己找一下,然后装好所有缺少的功能包之后再进行编译,由于有一个编译的先后问题,所以即使所有的功能包都装好了也不一定能一次编译通过,多编译几次就好了,但如果进度一直卡在一个地方,那就应该是你的功能包少装了
然后这个工作空间中我们的定位功能是通过cartographer实现的,这就需要大家自己在自己的电脑上面把cartographer装好,保证能正常运行,而且cartographer本身的源码也有一些地方需要改动。参考这个博客链接,绝对能装好,而且速度非常快:极速安装cartographer链接
运行的话直接运行在scripts文件夹下面的all_start.py文件,里面使用代码启动了主机所有的节点,实现了和另一台笔记本电脑的socket通信

#!/usr/bin/python3
import rospy
from std_msgs.msg import String
import os, commandstwice = 0
os.system("gnome-terminal -e roscore")
os.system("gnome-terminal -e 'python /home/lijinzhe/ros_ws/scripts/my_socker.py'")def callback(msg):global twicestring_load = msg.dataif string_load == 'load':if twice >= 1:print(string_load)# kill cartographer noderesult = commands.getoutput("ps a | grep my_backpack_2d.launch")result_list = result.split(" ")cartographer_ros_ID = result_list[0]print("cartographer_ros_ID", cartographer_ros_ID)os.system("gnome-terminal -e 'kill -9 {}'".format(cartographer_ros_ID))print("cartographer_ros_ID killed")# kill car_nav node# result = commands.getoutput("ps a | grep car_nav.launch")# result_list = result.split(" ")# car_nav_ID = result_list[0]# print("car_nav_ID", car_nav_ID)# os.system("gnome-terminal -e 'kill -9 {}'".format(car_nav_ID))# print("car_nav_ID killed")# os.system("gnome-terminal -e 'roslaunch mbot_navigation car_nav.launch'")os.system("gnome-terminal -e 'roslaunch cartographer_ros my_backpack_2d.launch'")twice = twice + 1elif string_load == 'start':print(string_load)os.system("gnome-terminal -e 'roslaunch mbot_navigation rviz_display.launch'")os.system("gnome-terminal -e 'roslaunch mbot_navigation car_nav.launch'")os.system("gnome-terminal -e 'roslaunch cartographer_ros my_backpack_2d.launch'")os.system("gnome-terminal -e 'python /home/lijinzhe/ros_ws/scripts/notime_nav.py'")os.system("gnome-terminal -e 'rostopic echo /pose_data'")elif string_load == "restart":print(string_load)# kill notime_nav python noderesult = commands.getoutput("ps a | grep notime")result_list = result.split(" ")notime_ID = result_list[0]print("notime_ID", notime_ID)os.system("kill -9 {}".format(notime_ID))print("notime_ID killed")# kill cartographer noderesult = commands.getoutput("ps a | grep my_backpack_2d.launch")result_list = result.split(" ")cartographer_ros_ID = result_list[0]print("cartographer_ros_ID", cartographer_ros_ID)os.system("gnome-terminal -e 'kill -9 {}'".format(cartographer_ros_ID))print("cartographer_ros_ID killed")# kill car_nav noderesult = commands.getoutput("ps a | grep car_nav.launch")result_list = result.split(" ")car_nav_ID = result_list[0]print("car_nav_ID", car_nav_ID)os.system("gnome-terminal -e 'kill -9 {}'".format(car_nav_ID))print("car_nav_ID killed")os.system("gnome-terminal -e 'roslaunch cartographer_ros my_backpack_2d.launch'")os.system("gnome-terminal -e 'roslaunch mbot_navigation car_nav.launch'")os.system("gnome-terminal -e 'python /home/lijinzhe/ros_ws/scripts/notime_nav.py'")def listener():# In ROS, nodes are uniquely named. If two nodes with the same# name are launched, the previous one is kicked off. The# anonymous=True flag means that rospy will choose a unique# name for our 'listener' node so that multiple listeners can# run simultaneously.rospy.init_node('carto_start_listener', anonymous=True)rospy.Subscriber("/finial_goal", String, callback)# spin() simply keeps python from exiting until this node is stoppedrospy.spin()if __name__ == '__main__':listener()

【航天物流组参赛ReadMe.md】相关推荐

  1. README.MD · 008期

    2019.07.12 README.MD 将为你奉上近两天最新的好文章,希望你在这有所期,亦有所获. 关键字:Flutter 1.7.Switch Lite.React Hooks 原文链接 看点 F ...

  2. TVM示例展示 README.md,Makefile,CMakeLists.txt

    TVM示例展示 README.md,Makefile,CMakeLists.txt TVM/README.md Open Deep Learning Compiler Stack Documentat ...

  3. github README.md教程

    github README.md教程 总结 github中README.md通过特殊字符标记和缩进来达到格式控制,也可以用HTML标签来实现格式控制. 教程一: Markdown 的目标是实现「易读易 ...

  4. GitHub上README.md教程

    http://blog.csdn.net/kaitiren/article/details/38513715 最近对它的README.md文件颇为感兴趣.便写下这贴,帮助更多的还不会编写README文 ...

  5. Python语言学习之打印输出那些事:python输出图表和各种吊炸天的字符串或图画、版权声明(如README.md)等之详细攻略

    Python语言学习之打印输出那些事:python输出图表和各种吊炸天的字符串或图画.版权声明(如README.md)等之详细攻略 目录 打印输出标准文档 1.输出表格 2.打印输出各种吊炸天的字符串 ...

  6. GitHub上README.md教程(copy)

    [说明:转载于http://blog.csdn.net/kaitiren/article/details/38513715] 最近对它的README.md文件颇为感兴趣.便写下这贴,帮助更多的还不会编 ...

  7. springboot 建readme_经验分享:给项目创建和编写README.md文件的步骤

    在项目开发过程中,不仅要注意代码的编写质量,也要为合作开发打好基础,尤其是合作开发的时候,同事直接的代码需要熟悉,这就需要在开发的时候进行注释操作,方便别人维护和熟悉代码.除了上述两个重要的点之外,还 ...

  8. 【转】GitHub上README.md教程

    本文是转载文章,文章的来源:csdn博客 博主:果冻虾仁 文章: GitHub上README写法暨GFM语法解读 博文地址:https://blog.csdn.net/guodongxiaren/ar ...

  9. 【Github】怎么在README.md中添加图片?

    原理是将图片作为文档上传,在README.md中引用即可. 参考博客:[GitHub]给GitHub上的ReadMe.md文件中添加图片怎么做 . gitHub创建文件夹

最新文章

  1. qt 找不到 -lpulse-mainloop-glib,找不到 -lpulse问题
  2. Java项目:小蜜蜂扩音器网上商城系统(java+JSP+Servlet+JDBC+Ajax+mysql)
  3. “编程能力差!90%输在这点上!”谷歌AI专家:其实都是瞎努力!
  4. Spring 国际化例子
  5. 在计算机桌面怎么找打印机,win10系统电脑打印机图标找回来的教程
  6. Python学习系列day2-python基础
  7. 计算机组成原理实验箱使能开关,计算机组成原理微程序计数器实验报告
  8. [js] 写一个方法判断数组内元素是否全部相同
  9. Win10 JAVA安装及环境搭建(windows jdk,windows java环境配置)
  10. Cocoon概念性介绍
  11. python tcl smb_Python——操作smb文件服务器(上传和下载)
  12. libgdx的菜单配置,以及json文件的结构
  13. mysql explain命令解析_详解MySQL中EXPLAIN解释命令
  14. halcon深度学习
  15. 华为eSight网管平台折腾
  16. windows oracle部署碰到的问题:ORA-12541: TNS: 无监听程序/未找到wfmlrsvcapp.ear/导入命令
  17. .netMVC企业微信网页授权+注册全局过滤器
  18. 单位dB(分贝)的含义和好处,dBm(dBmW 分贝毫瓦)的含义
  19. mockjs的安装使用
  20. 联想领像L100D黑白激光打印机 评测

热门文章

  1. 流量回放框架jvm-sandbox-repeater的实践
  2. linux自带查看端口流量命令,iftop命令查看linux系统网卡流量的命令
  3. 用pandas的isin,~+isin筛选数据
  4. 提高生活、学习、工作效率的方法——时间管理Vs个人管理
  5. 经典DSR路由协议分析:路由发现
  6. zotero如何用markdown记笔记
  7. B站UP主恰饭新思路:产品糅合进有意思的内容里
  8. 威斯康星麦迪逊计算机专业排名,威斯康星大学麦迪逊分校计算机排名2020年
  9. 基因家族分析②:linux下blast的安装和使用
  10. 【循序渐进学Python】Python中的循环(二)——while循环与嵌套