ros源码对应的github 网址为https://github.com/ros
我们知道在ros 安装好后,首先要跑一下roscore命令,如果没有在这个命令的话,可能先调用source xx/ros/xx/setup.bash 初始化环境。
roscore其实是一个python脚本,其实现的路径在ros/ros_comm/blob/melodic-devel/tools/roslaunch/scripts/roscore
其源码如下:
import sys
from optparse import OptionParser
from rosmaster.master_api import NUM_WORKERSNAME = 'roscore'def _get_optparse():parser = OptionParser(usage="usage: %prog [options]",prog=NAME,description="roscore will start up a ROS Master, a ROS Parameter Server and a rosout logging node",epilog="See http://wiki.ros.org/roscore")parser.add_option("-p", "--port",dest="port", default=None,help="master port. Only valid if master is launched", metavar="PORT")parser.add_option("-v", action="store_true",dest="verbose", default=False,help="verbose printing")parser.add_option("-w", "--numworkers",dest="num_workers", default=NUM_WORKERS, type=int,help="override number of worker threads", metavar="NUM_WORKERS")parser.add_option("-t", "--timeout",dest="timeout",help="override the socket connection timeout (in seconds).", metavar="TIMEOUT")parser.add_option("--master-logger-level",dest="master_logger_level", default=False, type=str,help="set rosmaster.master logger level ('debug', 'info', 'warn', 'error', 'fatal')")return parserparser = _get_optparse()
(options, args) = parser.parse_args(sys.argv[1:])
#从这里知道roscore 并不支持参数
if len(args) > 0:parser.error("roscore does not take arguments")#原来roscore就只是调用调用roslanch.main
import roslaunch
roslaunch.main(['roscore', '--core'] + sys.argv[1:])
通过后续可以知道roslaunch.main 其实主要做了几件事,
1,创建保存log的文件夹。
2,启动roslunch server
3,启动roscores master和resout

roscore的执行相关推荐

  1. ROS 中的camera支持

    简介 在ros中有很多的camera包了,提供了非常好的camera支持.针对我的kinetic 可以搜素一下看看. $ apt-cache search camera | grep ros-kine ...

  2. ROS: catkin和rosmake创建和编译功能包、执行节点

    ROS: catkin和rosmake创建和编译功能包 1.编译功能包 在工作空间的根目录下执行编译才行,比如我工作空间根目录是/home/kandi/catkin_ws 2.编译生成目标文件 这里以 ...

  3. roscore尚未安装 问题解决方案

    网上很多人都说,直接在终端下执行如下两条命令即可: echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc sou ...

  4. 使用ROS节点——Node Master——roscore、rosrun、rosnode

    1.Node 在ROS的世界里, 最小的进程单元就是节点( node) . 一个软件包里可以有多个可执行文 件, 可执行文件在运行之后就成了一个进程(process), 这个进程在ROS中就叫做节点. ...

  5. Ubuntu20.04及18.04的ROS安装教程及各种失败解决方法 (sudo rosdep init找不到命令或失败与rosdep update一直timeout,roscore找不到命令)

    项目场景:ros安装 在安装ROS的过程中一般选择有网络非常好的网络进行安装,这样就可以全程顺利执行一次性安装成功,但不顺利也没问题这个教程将会给出解决由网络原因造成安装失败的解决方法 安装步骤:Ct ...

  6. Linux如何让一个.sh文件可双击执行 并设置桌面启动图标

    Linux如何让一个.sh文件可双击执行并设置桌面启动图标 linux下怎么设置一个.sh文件可执行 参考资料: https://blog.csdn.net/ahelloyou/article/det ...

  7. 设置普通用户执行docker命令,执行docker命令无需输入密码或者切换root用户

    每次执行docker命令都要输入密码或者切换root用户,非常不方便,尤其是在shell脚本中就更麻烦了,一起来解决这个问题: 1. 创建名为docker的组,如果之前已经有该组就会提示已存在: su ...

  8. 终止js程序执行的方法

    js终止程序执行的方法共有三种 (一)在function里面(普通js方法) (1)return; (2)return false; (二)非function方法里面(如ajax方法) alert(& ...

  9. python程序如何执行死刑图片_如何判断对象已死

    已死的对象就是不可能被任何途径使用的对象,有以下几种方法判断一个对象是否已经死了: 引用计数 给对象添加一个引用计数器,每当有一个地方引用他,计算器就加 1:当引用失效时,计数器减 1:任何时刻计数器 ...

最新文章

  1. oracle valueerror,Oracle VALUE_ERROR异常(挑战题编号000005)
  2. 实验四 Android程序设计
  3. Objective-C:MRC(引用计数器)获得对象所有权的方式(init、retain、copy等)
  4. 数据结构——队列(C语言实现)
  5. 折纸机器人的步骤图解_折纸图解老虎
  6. 数据中心管理将成为未来十年所需的技能
  7. linux卸载git,并且安装新版本git
  8. 1067: [SCOI2007]降雨量
  9. 如何保护 Apple ID 避免被盜用的风险?
  10. ★★★★★手把手教你如何利用凤凰实现破 解后台权限以及升级固件(刷机)★★★★★
  11. UNIX环境高级编程学习之路
  12. iphone 控制 android手机,新潮来袭:苹果手机控制安卓手机
  13. 使用JMeter进行接口压力测试
  14. 解决IDEA报Unmapped Spring configuration files found.Please configure Spring facet
  15. vant附带样式去除
  16. 总结 | C#实现Excel导出功能
  17. Vue小写金额转大写金额以及watch(监听)的使用
  18. C# 设置线程的默认CultureInfo
  19. Keychain 浅析
  20. android培训机构排名

热门文章

  1. 吴恩达ex3_吴恩达机器学习 EX3 作业 第一部分多分类逻辑回归 手写数字
  2. ubuntu 自动挂起_ubuntu 的挂起与休眠
  3. html动画转换为gif,h5使用canvas输出为gif动画图片
  4. mongodb的NUMA问题
  5. 字节阿里腾讯都开始965了你却还在通宵上线
  6. 服务器到ipv4系统过不去,如何查看服务器ipv4地址
  7. 7-7 六度空间 (25 分)
  8. 开始,就是未来--------迎风飞扬,遇见未知的自己
  9. 长江大学图书馆校外登陆使用学术资源
  10. 用python 自动生成期权到期日的算法