ROS基础与进阶之路

核心概念(4点):

主节点(Master)
roscore
节点(Node)
运行节点:rosrun package_name node_name

查看激活节点列表:rosnode list

列出节点信息:rosnode info node_name

节点崩溃,清除节点注册信息:rosnode cleanup

话题(Topic)
查看激活话题:rostopic list -v

显示topic实时内容:rostopic echo /topic_name

显示话题信息:rostopic info /topic_name

显示topic发布频率(查看传感器数据发布频率):rostopic hz /topic_name

消息(Message)
定义话题(topic)类型的数据结构(整型、浮点型、布尔型、字符串),格式*.msg

查看话题的消息类型:rostopic type /topic_name

深入查看message信息:rosmsg info message_type

列出所有message:rosmsg list

显示message内字段定义:rosmsg show message_name
例:rosmsg show sensor_msgs/LaserScan

qt构建系统:

https://www.pianshen.com/article/9444937581/
写节点
发布者节点:
1.初始化 ROS 系统

2.创建NodeHandle

3.用NodeHandle广播将要在 chatter 话题上发布 std_msgs/String 类型的消息

4.设置发布频率

5.进入循环,定义并发布msg

订阅者节点:
1.定义回调函数

2.初始化ROS系统,
同时可以指定节点名称ros::init(argc,argv,"save_cloud");

3.创建NodeHandle

4.用NodeHandle订阅 chatter 话题,当消息到达,调用 chatterCallback() 函数

5.进入自循环,等待消息的到达

CMakeList.txt:
添加可执行代码add_executable(lesson1_laser_scan_node src/laser_scan_node.cpp)
可执行文件名称:lesson1_laser_scan_node
源代码路径:src/laser_scan_node.cpp

目标链接库:target_link_libraries(lesson1_laser_scan_node ${catkin_LIBRARIES)
可执行文件名称:lesson1_laser_scan_node

ROS_INFO_STREAM打印绿色

ROS_INFO_STREAM("\033[1;32m----> Feature Extraction Started.\033[0m");

----> Feature Extraction Started.变为绿色
记得改完源代码后编译

ROS坐标系

map: 地图坐标系,世界坐标系,静止不动
odom: 里程计坐标系,相对于map来说,一般情况下静止。有时会变动(定位节点为了修正机器人的位姿从而改变了map->odom间的坐标变换)
base_link: 机器人旋转中心的坐标系,相对于odom来说base_link是运动的
laser_link: 激光雷达的坐标系,相对于base_link来说是静止的

map -> odom -> base_link -> laser_link TF树
可用rqt或rviz可视化

ROS用TF2作为管理坐标系的库,教程:http://wiki.ros.org/tf2/Tutorials
https://blog.csdn.net/tiancailx/article/details/111312853#t1

参数服务器

nh.param("image_topic", image_topic_, std::string("/sensor/image"));1 个参数image_topic: 如果在launch文件里有值,则赋给第 2 个参数
第 3 个参数: 默认值,1 个参数无值时起作用

使用bag包时间

launch文件中加入:

<param name="/use_sim_time" value="true" />

播包时:

rosbag play --clock xx.bag

bag包加速

rosbag play --clock -r 2 *.bagh 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值