• ros


    ros - 机器人操作系统

    查看ROS版本

    首先在终端中输入roscore,
    然后打开新的标签页,输入rosparam list,
    最后输入rosparam  get /rosdistro
    

    环境变量设置

    echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
    (相当于sudo gedit ~/.bashrc, 然后在最后一行中加入/opt/ros/kinetic/setup.bash)
    source ~/.bashrc
    如果使用zsh代替bash,那么:
    echo "source /opt/ros/kinetic/setup.zsh" >> ~/.zshrc
    source ~/.zshrc
    

    创建ROS工作空间

    $ mkdir -p ~/catkin_ws/src
    $ cd ~/catkin_ws
    $ catkin_make
    $ catkin_make install ##(optionally)
    

    工作空间目录下会有build和devel两个文件夹, 其中catkin_make命令相当于

    $ mkdir build
    $ cd build
    $ cmake ..
    $ make 
    $ make install ##(optionally)
    
    • 源码空间(src):用于存放功能包源代码
    • 编译空间(build):用于存放编译产生的缓存信息、配置文件和其他中间文件
    • 开发空间(devel):用于存放编译后的程序,如二进制代码。

    创建catkin功能包

    $ cd ~/catkin_ws/src
    $ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp
    

    前面是功能包名字,后面是依赖项,执行后在功能包目录下包含package.xml和CMakeLists.txt文件。感觉比较少用到,基本上都是在现有功能包上修改得到新功能包的。

    功能包架构

    • include/package_name/
    • src/
    • msg/
    • srv/
    • cfg/
    • doc/
    • script/
    • CMakeLists.txt
    • Package.xml

    查找功能包依赖项

    $ rospack depends1 packagename(主要依赖项)
    $  rospack depends packagename(所有依赖项)
    

    几个概念

    • 功能包

    功能包构成ROS中的原子级,。一个功能包具有用于创建ROS程序的最小结构和最少内容。它可以包含运行时的进程(节点)、配置文件等。

    • 功能包清单

    功能包清单提供有关功能包、许可证、依赖关系、编译标志等信息。由一个名为package.xml文件管理。

    • 元功能包

    元功能包的功能是将几个具有某些相关功能的功能包组织在一起。

    • 元功能包清单

    与功能包清单类似,但是结构上有一定的限制。

    • 消息类型

    消息是进程发送给其他进程的信息,ros有很多标准类型的消息,自定义的消息类型以.msg文件形式存放。

    • 服务类型

    服务文件以.srv文件形式存放,为ros中由每个进程提供的服务定义请求和响应数据结构。

    常见命令集合

    查找功能包:rospack find packagename   返回功能包的路径信息
    切换到功能包目录下: roscd packagename   可以配合pwd命令输出当前路径信息
    输出功能包下文件信息:rosls packagename    与ls在绝对路径下执行不同
    

    记录数据rosbag

    mkdir ~/bagfiles
    cd ~/bagfiles
    rosbag record -a (记录所有主题的数据)
    rosbag info <your bagfile>
    rosbag play <your bagfile>
    rosbag play -r 2 <your bagfile>
    rosbag record -o subset /turtle1/cmd_vel /turtle/pose (记录部分主题的数据)
    

    节点node相关命令

    $ rosnode list   列出所有正在运行的节点(rosnode list -h查看更多功能)
    $ rosnode info /nodename   列出节点的信息
    $ rosnode ping nodename    测试节点的连接性
    $ rosnode kill nodename 
    $ rosnode  cleanup 将无法访问节点的注册信息消除
    

    主题topic相关命令

    $ rostopic list 列出所有的主题(rostopic list -h查看更多的功能)
    $ rostopic echo topicname (rostopic echo -h)
    $ rostopic type /topicname 得到topic的msg类型名
    $ rosmsg show msgname
    $ rostopic pub [topic] [msg_type] [args]
    

    服务service相关指令

    rosservice list
    rosservice call
    rosservice type
    rosservice type
    rosservice find
    

    消息message相关指令

    rosmsg list
    rosmsg package
    rosmsg packages
    

    参数param相关指令

    rosparam set
    rosparam get
    rosparam load 
    rosparam dump
    rosparam delete
    rosparam list
    

    rosrun相关指令

    $ rosrun packagename nodename   运行节点
    $ rosrun rqt_graph rqt_graph  节点主题动态图
    $ rosrun rqt_plot rqt_plot
    $ rosrun rqt_console rqt_console
    $ rosrun rqt_logger_level rqt_logger_level
    
    $ roslaunch [package] [filename.launch]
    
  • 相关阅读:
    Linux下Bind error: Address already in use处理
    详解基本TCP套接字函数
    C/C++常用头文件及函数汇总
    Centos编译Unix网络编程(第三版)卷1的源代码
    C++ 多线程中使用cout还是printf
    VIM常用指令
    Linux C头文件查找与动态库搜索
    linux常用头文件详解
    linux makefile自动生成
    ubuntu开机出现memtest86,重启也无法取消的原因
  • 原文地址:https://www.cnblogs.com/ChrisCoder/p/9927220.html
Copyright © 2020-2023  润新知