目录
2.发布函数ros::Publisher <参数> = nh.advertise()
8.节点状态ros::ok() | rospy.shutdown()
致谢:ROS赵虚左老师
Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
参考赵虚左老师的实战教程
【ROS官方API文档】http://wiki.ros.org/APIs
Ctrl + Shift + B # Vscode快速编译C++
一、【自带工具】topic_tools
ROS的自带工具说明
【topic_tools官网】http://wiki.ros.org/topic_tools
二、【基本消息类型】common_msgs
【commom_msgs官网】
三、【C++接口】roscpp
【roscpp官网】https://docs.ros.org/en/api/roscpp/html/
1.初始化ros::init()
void init(int &argc, char **argv, const std::string& name, uint32_t options = 0);
该函数可以解析并使用节点启动时传入的参数(通过参数设置节点名称、命名空间...)
该函数有多个重载版本,如果使用NodeHandle建议调用该版本。
\param argc 参数个数
\param argv 参数列表
\param name 节点名称,需要保证其唯一性,不允许包含命名空间
\param options 节点启动选项,被封装进了ros::init_options
2.发布函数ros::Publisher <参数> = nh.advertise()
主要是ros::nodehandle节柄
Publisher advertise(const std::string& topic, uint32_t queue_size, bool latch = false)
\brief 根据话题生成发布对象
在 ROS master 注册并返回一个发布者对象,该对象可以发布消息
使用示例如下:
ros::Publisher pub = handle.advertise<std_msgs::Empty>("my_topic", 1);
\param topic 发布消息使用的话题
\param queue_size 等待发送给订阅者的最大消息数量
\param latch (optional) 如果为 true,该话题发布的最后一条消息将被保存,并且后期当有订阅者连接时会将该消息发送给订阅者
\return 调用成功时,会返回一个发布对象
3.回调函数ros::spin()
ROSCPP_DECL void spin();
进入循环处理回调
ROSCPP_DECL void spinOnce();
\brief 处理一轮回调
一般应用场景:
在循环体内,处理所有可用的回调函数
4.时间函数ros::Time()
5.持续时间:ros::Duration()
6.时间运算
7.定时器ros::Timer()
回旋函数cb :里面的时间事件TimerEvent
8.节点状态ros::ok() | rospy.shutdown()
9.输出日志函数ROS_INFO()
- DEBUG(调试):只在调试时使用,此类消息不会输出到控制台;
- INFO(信息):标准消息,一般用于说明系统内正在执行的操作;
- WARN(警告):提醒一些异常情况,但程序仍然可以执行;
- ERROR(错误):提示错误信息,此类错误会影响程序运行;
- FATAL(严重错误):此类错误将阻止节点继续运行。
ROS_DEBUG()
ROS_INFO()
ROS_WARN()
ROS_ERROR()
ROS_FATAL()
四、【Python接口】rospy
【rospy官网】http://docs.ros.org/en/api/rospy/html/
ros官方暂时还未维护好.......
1.初始化rospy.init_node()
2.发布函数rospy.Publisher()
3.回调函数rospy.spin()
和C++一样的
4.时间函数rospy.Time.now()
time1 = rospy.Time(100) 设置时间
5.持续时间rospy.Duration()
6.时间运算
7.定时器rospy.Timer()
回调函数: 是一个事件event
定时器:
My_Timer = rospy.Timer(<间隔时间>, <回调函数>, <是否一次性>)
8.节点状态rospy.is_shutdown()
判断节点状态:
rospy.is_shutdown()
关闭节点:
rospy.signal_shutdown("注释")
关闭节点且执行回调函数:
rospy.on_shutdown(<回调函数>)
9.输出日志函数rospy.loginfo()
- DEBUG(调试):只在调试时使用,此类消息不会输出到控制台;
- INFO(信息):标准消息,一般用于说明系统内正在执行的操作;
- WARN(警告):提醒一些异常情况,但程序仍然可以执行;
- ERROR(错误):提示错误信息,此类错误会影响程序运行;
- FATAL(严重错误):此类错误将阻止节点继续运行。
rospy.logdebug("hello,debug") # 不会输出
rospy.loginfo("hello,info") # 默认白色字体
rospy.logwarn("hello,warn") # 默认黄色字体
rospy.logerr("hello,error") # 默认红色字体
rospy.logfatal("hello,fatal") # 默认红色字体
2023.11.10-12
渝北仙桃数据谷