zoukankan      html  css  js  c++  java
  • ros 阅读记录 1

    2020-03-31 11:29:00 

    想看cartographer 的源码,但是发现如果我想做一些改变然后重复测试,没有rosbag是不行的。

    carto和ros耦合在一起了。

    (过了几天之后我发现了下面的东西:

    https://github.com/cartographer-project/cartographer/issues/1229  

    可以脱离ros运行 carto,  rosbag 依赖了 roslz4 依赖了 lz4 ,然后这家伙就把这部分

    单独拿出来了,牛皮  )

    于是想看ros源码,从头看起,发现最好先看看 catkin,想看到 catkin_pkg 之类的宏的定义,搞清构建过程等。

    读源码是一项巨大的工作,只能挑着读一些有趣的部分了。

    Catkin is a collection of cmake macros and associated python code used to build some parts of ROS 

     

    https://www.cnblogs.com/shepherd2015/p/11257356.html    自己写的 ros源码安装 

    http://wiki.ros.org/catkin/conceptual_overview  

    http://wiki.ros.org/catkin 

    https://github.com/ros/catkin 

    doc:

    http://docs.ros.org/kinetic/api/catkin/html/

    可以自己进上级目录查看相关文档

    代码里引用了 

    https://github.com/ros-infrastructure/catkin_pkg    

    http://docs.ros.org/independent/api/catkin_pkg/catkin_pkg.html#

    2020-04-01 10:37:12

    一定要建一个 python 的虚拟环境,不然的话 会和系统自带的 python环境、以及已经装好的 catkin 弄混

    2020-04-01 14:04:39

    下面开始分析 ros 中的依赖顺序

    只关心 c++ 接口的功能, 只关心 跟 opencv、pcl、imu 相关的部分

    不关心 rviz、rqt 等, roslaunch我也不想要,直接命令行启动 

    只关心和slam相关的最小需要的组件

    会包含ros最基本的设施,不然的话怎么搞slam

    2020-04-06 13:57

    自己编译了一个魔改版的ros,已经可以成功跑起来 roscore

    然后简单的 topic_demo 也能跑

    roslaunch还是不能省的,因为roscore在roslaunch包里面

    底层是 xmlrpcpp、paramiko 之类的东西

    下面是大致要编译的包:

     1 -- ~~  traversing 30 packages in topological order:
     2 -- ~~  - genmsg
     3 -- ~~  - gencpp
     4 -- ~~  - genpy
     5 -- ~~  - beginner_tutorials
     6 -- ~~  - cmake_modules
     7 -- ~~  - cpp_common
     8 -- ~~  - message_generation
     9 -- ~~  - message_runtime
    10 -- ~~  - rosbuild
    11 -- ~~  - rosclean
    12 -- ~~  - roscpp_core (metapackage)
    13 -- ~~  - roscpp_traits
    14 -- ~~  - rosgraph
    15 -- ~~  - roslang
    16 -- ~~  - rosmake
    17 -- ~~  - rosmaster
    18 -- ~~  - rospack
    19 -- ~~  - roslib
    20 -- ~~  - rosparam
    21 -- ~~  - rostime
    22 -- ~~  - roscpp_serialization
    23 -- ~~  - roslaunch
    24 -- ~~  - rosunit
    25 -- ~~  - rosconsole
    26 -- ~~  - std_msgs
    27 -- ~~  - rosgraph_msgs
    28 -- ~~  - xmlrpcpp
    29 -- ~~  - roscpp
    30 -- ~~  - rosout
    31 -- ~~  - topic_demo
    View Code

    ros不同的进程间通信似乎有两种方式:

    一是 走网络远程调用,序列化的方式

    二是 nodelet、bond_core这种方式

    我说ros的源码怎么这么大,扔了个opencv3进去两百多兆。

    2020-05.09-13:55

     1 hpyg@hpygComputer:~$ env | grep ROS
     2 ROS_ETC_DIR=/opt/ros/melodic/etc/ros
     3 ROS_ROOT=/opt/ros/melodic/share/ros
     4 ROS_MASTER_URI=http://localhost:11311
     5 ROS_VERSION=1
     6 ROS_PYTHON_VERSION=2
     7 ROS_PACKAGE_PATH=/home/hpyg/catkin_ws/src:/opt/ros/melodic/share
     8 ROSLISP_PACKAGE_DIRECTORIES=/home/hpyg/catkin_ws/devel/share/common-lisp
     9 ROS_DISTRO=melodic
    10 
    11 hpyg@hpygComputer:~$ env | grep ros
    12 LD_LIBRARY_PATH=/home/hpyg/catkin_ws/devel/lib:/opt/ros/melodic/lib:/usr/local/cuda-10.0/lib64
    13 ROS_ETC_DIR=/opt/ros/melodic/etc/ros
    14 CMAKE_PREFIX_PATH=/home/hpyg/catkin_ws/devel:/opt/ros/melodic
    15 ROS_ROOT=/opt/ros/melodic/share/ros
    16 PYTHONPATH=/home/hpyg/catkin_ws/devel/lib/python2.7/dist-packages:/opt/ros/melodic/lib/python2.7/dist-packages
    17 ROS_PACKAGE_PATH=/home/hpyg/catkin_ws/src:/opt/ros/melodic/share
    18 PATH=/opt/ros/melodic/bin:/home/hpyg/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/local/cuda/bin
    19 PKG_CONFIG_PATH=/home/hpyg/catkin_ws/devel/lib/pkgconfig:/opt/ros/melodic/lib/pkgconfig
  • 相关阅读:
    Go 协程(绿程/轻量级线程 用户态)--没有历史包袱
    Go 语言编码规范
    hexo 问题解决
    vue3中的watchEffect的参数
    开机提示0xc0000428无法验证此文件的数字签名的解决方法
    实现用户名的更换登陆
    element 新组件
    Object 常用方法
    Odoo中登录接口返回的session_id失效
    详细解析DLL构建CLR版本冲突问题
  • 原文地址:https://www.cnblogs.com/shepherd2015/p/12603986.html
Copyright © 2011-2022 走看看