ROS基础

一、ROS测试
命令行1键入:roscore
命令行2键入:rosrun turtlesim turtlesim_node(此时会弹出图形化界面)
命令行3键入:rosrun turtlesim turtle_teleop_key(在3中可以通过上下左右控制2中乌龟的运动)

二、ROS创建
1.创建ros工程(下面ros_workspace为工作空间名称、helloworld为功能包名称)
mkdir -p ros_workspace/src
cd ros_workspace/
catkin_make #创建工作空间
cd src/
catkin_create_pkg helloworld roscpp rospy std_msgs #创建功能包
其中roscpp是使用C++实现的库,而rospy则是使用python实现的库,std_msgs是标准消息库,创建ROS功能包时,一般都会依赖这三个库实现。
注意: 在ROS中,虽然实现同一功能时,C++和Python可以互换,但是具体选择哪种语言,需要视需求而定,因为两种语言相较而言:C++运行效率高但是编码效率低,而Python则反之,基于二者互补的特点,ROS设计者分别设计了roscpp与rospy库,前者旨在成为ROS的高性能库,而后者则一般用于对性能无要求的场景,旨在提高开发效率。
2.在功能包src文件中写cpp
3.编辑功能包下的Cmakelist.txt文件
add_executable(节点命名 src/步骤2的源文件名.cpp)
target_link_libraries(与上面一致的节点命名 ${catkin_LIBRARIES})
4.进入工作空间目录ros_demo/并编译
catkin_make
5.运行
开终端打开ros
roscore
新开终端运行程序
cd 工作空间
source ./devel/setup.bash
rosrun 功能包名 节点名
6.新开终端自动刷新环境,使用上更方便
echo "source ~/ros_workspace/devel/setup.bash" >> ~/.bashrc

三、vscode
code . #工作空间运行打开vscode
当ROS__INFO 终端输出有中文时,会出现乱码
INFO: ????????????????????????
解决办法:在函数开头加入下面代码的任意一句
setlocale(LC_CTYPE, "zh_CN.utf8");
setlocale(LC_ALL, "");

四、launch
node包含的某个节点
pkg功能包
type被运行的节点文件
name为节点命名
output设置日志的输出目标
<launch>
    <node pkg="turtlesim" type="turtlesim_node" name="turtle_GUI"/>
    <node pkg="turtlesim" type="turtle_teleop_key" name="turtle_key"/>
    <node pkg="helloworld" type="helloworld" name="hello" output="screen"/>
</launch>
运行 roslaunch 包名 launch文件名

五、工具
计算图:键入: rqt_graph 或 rosrun rqt_graph rqt_graph

rosnode -h
    rosnode ping    test connectivity to node
        rosnode list    list active nodes
        rosnode info    print information about node
        rosnode machine list nodes running on a particular machine or list machines
        rosnode kill    kill a running node
        rosnode cleanup purge registration information of unreachable nodes
rostopic -h
    rostopic bw     display bandwidth used by topic
        rostopic delay  display delay of topic from timestamp in header
        rostopic echo   print messages to screen
        rostopic find   find topics by type
        rostopic hz     display publishing rate of topic    
        rostopic info   print information about active topic
        rostopic list   list active topics
        rostopic pub    publish data to topic
        rostopic type   print topic or field type
rosservice -r
        rosservice args print service arguments
        rosservice call call the service with the provided args
        rosservice find find services by service type
        rosservice info print information about service
        rosservice list list active services
        rosservice type print service type
        rosservice uri  print service ROSRPC uri
rosmsg -h
    rosmsg show     Show message description
        rosmsg info     Alias for rosmsg show
        rosmsg list     List all messages
        rosmsg md5      Display message md5sum
        rosmsg package  List messages in a package
        rosmsg packages List packages that contain messages
rossrv -h
    rossrv show     Show service description
        rossrv info     Alias for rossrv show
        rossrv list     List all services
        rossrv md5      Display service md5sum
        rossrv package  List services in a package
        rossrv packages List packages that contain services
rosparam -h
    rosparam set    set parameter
        rosparam get    get parameter
        rosparam load   load parameters from file
        rosparam dump   dump parameters to file
        rosparam delete delete parameter
        rosparam list   list parameter names

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值