![]() |
rmoss_base package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.9.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_base模块
简介
rmoss_base是rmoss_core 中的一个基础功能包,提供了与机器人底层STM32通信的相关功能,是计算机与机器人之间的数据桥梁,实现了数据收发功能。
- 通过rmoss_base给机器人底层STM32发生控制数据,来控制机器人行动。
- 接收机器人的底层STM32的数据,并发布成ROS topic,供程序使用。
同时,还支持二次开发,其中的数据包封装模块,串口驱动模块等模块,可以直接使用,开发自己的机器人通信模块,加速开发。
主要文件:
-
transporter_interface.hpp
: 定义通用数据传输设备接口 -
uart_transporter.hpp/cpp
: 串口设备通用驱动(实现了TransporterInterface
接口) -
fixed_packet.hpp
: 固定长度数据包,封装了数据加载,卸载功能,提供了数据包与字节流之间的相互转化操作(模板类,支持不同长度的包)。 -
fixed_packet_tool.hpp
: 固定数据包收发工具,可直接直接发送与接收数据包,封装底层操作(模板类,与fixed_packet.hpp
有关) -
simple_robot_base_node.hpp/cpp
: ROS顶层模块SimpleRobotBaseNode
,ROS与STM32通信示例。 -
simple_robot_base_main.cpp
:SimpleRobotBaseNode
节点的main()入口。
快速使用
提供了一个开发样例,可以快速验证,同时也为二次开发提供了参考。
运行节点,需要修改配置文件,并准备一个usb串口模块:
ros2 run rmoss_base simple_robot_base
-
SimpleRobotBaseNode
节点已经注册为rclcpp component
, 支持ROS Composition方式启动。
二次开发
FixedPacket模块类
// FixedPacket模块类
FixedPacket<16> packet; // 16 Byte定长数据包
FixedPacket<32> packet; // 32 Byte定长数据包
// 预定义数据包
FixedPacket packet; // 默认定长数据包,长度为16
FixedPacket16 packet; // 等价于FixedPacket<16>
FixedPacket32 packet; // 等价于FixedPacket<32>
FixedPacket64 packet; // 等价于FixedPacket<64>
数据包数据布局 (以16 Byte定长数据包为例)
数据头字节(0xff) | 数据字节 | 校验字节 | 数据尾字节(0x0d) |
---|---|---|---|
0(1Byte) | 1-13 (13Byte) | 14(1Byte) | 15(1Byte) |
数据包操作
FixedPacket<16> packet; // 新建对象
/*******自定义加载数据************/
float angle=10;
packet.load_data<float>(angle,3); // 一个参数为数据,第二个数据为数据位置(建议显式)
// 隐式装载
packet.load_data(angle,3);
/*******自定义卸载数据************/
float angle2=0;
packet.unload_data(angle,3);//取出数据(隐式,建议隐式)
/**********其他操作**************/
packet.clear(); // 清零数据包中的数据字节和校验字节
packet.copy_from(); // 拷贝并覆盖数据包中中的buffer
packet.buffer(); // 获取数据包中的buffer (const修饰,只读)
- 其中只有数据位字节才能使用
load_data()
和unload_data()
操作,校验字节可通过set_check_byte()
进行设置。
FixedPacketTool模板类
利用FixedPacketTool简化了数据传输流程,不需要考虑底层字节数据传输细节。
// 需要依赖通信设备,假设已经获得正常工作的通信设备。
TransporterInterface::SharedPtr transporter;
// 实例化数据包工具,初始化的时候,传入通信设备指针
FixedPacket16Tool::SharedPtr packet_tool_;
packet_tool_=std::make_shared<FixedPacketTool<16>>(transporter);
利用FixedPacketTool发送数据
#数据包
FixedPacket<16> packet;
packet.load_data<unsigned char(protocol_example::GimbalAngleControl,1);
packet.load_data<unsigned char>(0x00,2);
packet.load_data<float>(info->pitch_angle,3);
packet.load_data<float>(info->yaw_angle,7);
#发送
packet_tool_->send_packet(packet);
利用FixedPacketTool接收数据
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
rmoss_interfaces | |
geometry_msgs | |
ament_cmake | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_base at Robotics Stack Exchange
![]() |
rmoss_base package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.9.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_base模块
简介
rmoss_base是rmoss_core 中的一个基础功能包,提供了与机器人底层STM32通信的相关功能,是计算机与机器人之间的数据桥梁,实现了数据收发功能。
- 通过rmoss_base给机器人底层STM32发生控制数据,来控制机器人行动。
- 接收机器人的底层STM32的数据,并发布成ROS topic,供程序使用。
同时,还支持二次开发,其中的数据包封装模块,串口驱动模块等模块,可以直接使用,开发自己的机器人通信模块,加速开发。
主要文件:
-
transporter_interface.hpp
: 定义通用数据传输设备接口 -
uart_transporter.hpp/cpp
: 串口设备通用驱动(实现了TransporterInterface
接口) -
fixed_packet.hpp
: 固定长度数据包,封装了数据加载,卸载功能,提供了数据包与字节流之间的相互转化操作(模板类,支持不同长度的包)。 -
fixed_packet_tool.hpp
: 固定数据包收发工具,可直接直接发送与接收数据包,封装底层操作(模板类,与fixed_packet.hpp
有关) -
simple_robot_base_node.hpp/cpp
: ROS顶层模块SimpleRobotBaseNode
,ROS与STM32通信示例。 -
simple_robot_base_main.cpp
:SimpleRobotBaseNode
节点的main()入口。
快速使用
提供了一个开发样例,可以快速验证,同时也为二次开发提供了参考。
运行节点,需要修改配置文件,并准备一个usb串口模块:
ros2 run rmoss_base simple_robot_base
-
SimpleRobotBaseNode
节点已经注册为rclcpp component
, 支持ROS Composition方式启动。
二次开发
FixedPacket模块类
// FixedPacket模块类
FixedPacket<16> packet; // 16 Byte定长数据包
FixedPacket<32> packet; // 32 Byte定长数据包
// 预定义数据包
FixedPacket packet; // 默认定长数据包,长度为16
FixedPacket16 packet; // 等价于FixedPacket<16>
FixedPacket32 packet; // 等价于FixedPacket<32>
FixedPacket64 packet; // 等价于FixedPacket<64>
数据包数据布局 (以16 Byte定长数据包为例)
数据头字节(0xff) | 数据字节 | 校验字节 | 数据尾字节(0x0d) |
---|---|---|---|
0(1Byte) | 1-13 (13Byte) | 14(1Byte) | 15(1Byte) |
数据包操作
FixedPacket<16> packet; // 新建对象
/*******自定义加载数据************/
float angle=10;
packet.load_data<float>(angle,3); // 一个参数为数据,第二个数据为数据位置(建议显式)
// 隐式装载
packet.load_data(angle,3);
/*******自定义卸载数据************/
float angle2=0;
packet.unload_data(angle,3);//取出数据(隐式,建议隐式)
/**********其他操作**************/
packet.clear(); // 清零数据包中的数据字节和校验字节
packet.copy_from(); // 拷贝并覆盖数据包中中的buffer
packet.buffer(); // 获取数据包中的buffer (const修饰,只读)
- 其中只有数据位字节才能使用
load_data()
和unload_data()
操作,校验字节可通过set_check_byte()
进行设置。
FixedPacketTool模板类
利用FixedPacketTool简化了数据传输流程,不需要考虑底层字节数据传输细节。
// 需要依赖通信设备,假设已经获得正常工作的通信设备。
TransporterInterface::SharedPtr transporter;
// 实例化数据包工具,初始化的时候,传入通信设备指针
FixedPacket16Tool::SharedPtr packet_tool_;
packet_tool_=std::make_shared<FixedPacketTool<16>>(transporter);
利用FixedPacketTool发送数据
#数据包
FixedPacket<16> packet;
packet.load_data<unsigned char(protocol_example::GimbalAngleControl,1);
packet.load_data<unsigned char>(0x00,2);
packet.load_data<float>(info->pitch_angle,3);
packet.load_data<float>(info->yaw_angle,7);
#发送
packet_tool_->send_packet(packet);
利用FixedPacketTool接收数据
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
rmoss_interfaces | |
geometry_msgs | |
ament_cmake | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_base at Robotics Stack Exchange
![]() |
rmoss_base package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.9.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_base模块
简介
rmoss_base是rmoss_core 中的一个基础功能包,提供了与机器人底层STM32通信的相关功能,是计算机与机器人之间的数据桥梁,实现了数据收发功能。
- 通过rmoss_base给机器人底层STM32发生控制数据,来控制机器人行动。
- 接收机器人的底层STM32的数据,并发布成ROS topic,供程序使用。
同时,还支持二次开发,其中的数据包封装模块,串口驱动模块等模块,可以直接使用,开发自己的机器人通信模块,加速开发。
主要文件:
-
transporter_interface.hpp
: 定义通用数据传输设备接口 -
uart_transporter.hpp/cpp
: 串口设备通用驱动(实现了TransporterInterface
接口) -
fixed_packet.hpp
: 固定长度数据包,封装了数据加载,卸载功能,提供了数据包与字节流之间的相互转化操作(模板类,支持不同长度的包)。 -
fixed_packet_tool.hpp
: 固定数据包收发工具,可直接直接发送与接收数据包,封装底层操作(模板类,与fixed_packet.hpp
有关) -
simple_robot_base_node.hpp/cpp
: ROS顶层模块SimpleRobotBaseNode
,ROS与STM32通信示例。 -
simple_robot_base_main.cpp
:SimpleRobotBaseNode
节点的main()入口。
快速使用
提供了一个开发样例,可以快速验证,同时也为二次开发提供了参考。
运行节点,需要修改配置文件,并准备一个usb串口模块:
ros2 run rmoss_base simple_robot_base
-
SimpleRobotBaseNode
节点已经注册为rclcpp component
, 支持ROS Composition方式启动。
二次开发
FixedPacket模块类
// FixedPacket模块类
FixedPacket<16> packet; // 16 Byte定长数据包
FixedPacket<32> packet; // 32 Byte定长数据包
// 预定义数据包
FixedPacket packet; // 默认定长数据包,长度为16
FixedPacket16 packet; // 等价于FixedPacket<16>
FixedPacket32 packet; // 等价于FixedPacket<32>
FixedPacket64 packet; // 等价于FixedPacket<64>
数据包数据布局 (以16 Byte定长数据包为例)
数据头字节(0xff) | 数据字节 | 校验字节 | 数据尾字节(0x0d) |
---|---|---|---|
0(1Byte) | 1-13 (13Byte) | 14(1Byte) | 15(1Byte) |
数据包操作
FixedPacket<16> packet; // 新建对象
/*******自定义加载数据************/
float angle=10;
packet.load_data<float>(angle,3); // 一个参数为数据,第二个数据为数据位置(建议显式)
// 隐式装载
packet.load_data(angle,3);
/*******自定义卸载数据************/
float angle2=0;
packet.unload_data(angle,3);//取出数据(隐式,建议隐式)
/**********其他操作**************/
packet.clear(); // 清零数据包中的数据字节和校验字节
packet.copy_from(); // 拷贝并覆盖数据包中中的buffer
packet.buffer(); // 获取数据包中的buffer (const修饰,只读)
- 其中只有数据位字节才能使用
load_data()
和unload_data()
操作,校验字节可通过set_check_byte()
进行设置。
FixedPacketTool模板类
利用FixedPacketTool简化了数据传输流程,不需要考虑底层字节数据传输细节。
// 需要依赖通信设备,假设已经获得正常工作的通信设备。
TransporterInterface::SharedPtr transporter;
// 实例化数据包工具,初始化的时候,传入通信设备指针
FixedPacket16Tool::SharedPtr packet_tool_;
packet_tool_=std::make_shared<FixedPacketTool<16>>(transporter);
利用FixedPacketTool发送数据
#数据包
FixedPacket<16> packet;
packet.load_data<unsigned char(protocol_example::GimbalAngleControl,1);
packet.load_data<unsigned char>(0x00,2);
packet.load_data<float>(info->pitch_angle,3);
packet.load_data<float>(info->yaw_angle,7);
#发送
packet_tool_->send_packet(packet);
利用FixedPacketTool接收数据
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
rmoss_interfaces | |
geometry_msgs | |
ament_cmake | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_base at Robotics Stack Exchange
![]() |
rmoss_base package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.9.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_base模块
简介
rmoss_base是rmoss_core 中的一个基础功能包,提供了与机器人底层STM32通信的相关功能,是计算机与机器人之间的数据桥梁,实现了数据收发功能。
- 通过rmoss_base给机器人底层STM32发生控制数据,来控制机器人行动。
- 接收机器人的底层STM32的数据,并发布成ROS topic,供程序使用。
同时,还支持二次开发,其中的数据包封装模块,串口驱动模块等模块,可以直接使用,开发自己的机器人通信模块,加速开发。
主要文件:
-
transporter_interface.hpp
: 定义通用数据传输设备接口 -
uart_transporter.hpp/cpp
: 串口设备通用驱动(实现了TransporterInterface
接口) -
fixed_packet.hpp
: 固定长度数据包,封装了数据加载,卸载功能,提供了数据包与字节流之间的相互转化操作(模板类,支持不同长度的包)。 -
fixed_packet_tool.hpp
: 固定数据包收发工具,可直接直接发送与接收数据包,封装底层操作(模板类,与fixed_packet.hpp
有关) -
simple_robot_base_node.hpp/cpp
: ROS顶层模块SimpleRobotBaseNode
,ROS与STM32通信示例。 -
simple_robot_base_main.cpp
:SimpleRobotBaseNode
节点的main()入口。
快速使用
提供了一个开发样例,可以快速验证,同时也为二次开发提供了参考。
运行节点,需要修改配置文件,并准备一个usb串口模块:
ros2 run rmoss_base simple_robot_base
-
SimpleRobotBaseNode
节点已经注册为rclcpp component
, 支持ROS Composition方式启动。
二次开发
FixedPacket模块类
// FixedPacket模块类
FixedPacket<16> packet; // 16 Byte定长数据包
FixedPacket<32> packet; // 32 Byte定长数据包
// 预定义数据包
FixedPacket packet; // 默认定长数据包,长度为16
FixedPacket16 packet; // 等价于FixedPacket<16>
FixedPacket32 packet; // 等价于FixedPacket<32>
FixedPacket64 packet; // 等价于FixedPacket<64>
数据包数据布局 (以16 Byte定长数据包为例)
数据头字节(0xff) | 数据字节 | 校验字节 | 数据尾字节(0x0d) |
---|---|---|---|
0(1Byte) | 1-13 (13Byte) | 14(1Byte) | 15(1Byte) |
数据包操作
FixedPacket<16> packet; // 新建对象
/*******自定义加载数据************/
float angle=10;
packet.load_data<float>(angle,3); // 一个参数为数据,第二个数据为数据位置(建议显式)
// 隐式装载
packet.load_data(angle,3);
/*******自定义卸载数据************/
float angle2=0;
packet.unload_data(angle,3);//取出数据(隐式,建议隐式)
/**********其他操作**************/
packet.clear(); // 清零数据包中的数据字节和校验字节
packet.copy_from(); // 拷贝并覆盖数据包中中的buffer
packet.buffer(); // 获取数据包中的buffer (const修饰,只读)
- 其中只有数据位字节才能使用
load_data()
和unload_data()
操作,校验字节可通过set_check_byte()
进行设置。
FixedPacketTool模板类
利用FixedPacketTool简化了数据传输流程,不需要考虑底层字节数据传输细节。
// 需要依赖通信设备,假设已经获得正常工作的通信设备。
TransporterInterface::SharedPtr transporter;
// 实例化数据包工具,初始化的时候,传入通信设备指针
FixedPacket16Tool::SharedPtr packet_tool_;
packet_tool_=std::make_shared<FixedPacketTool<16>>(transporter);
利用FixedPacketTool发送数据
#数据包
FixedPacket<16> packet;
packet.load_data<unsigned char(protocol_example::GimbalAngleControl,1);
packet.load_data<unsigned char>(0x00,2);
packet.load_data<float>(info->pitch_angle,3);
packet.load_data<float>(info->yaw_angle,7);
#发送
packet_tool_->send_packet(packet);
利用FixedPacketTool接收数据
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
rmoss_interfaces | |
geometry_msgs | |
ament_cmake | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_base at Robotics Stack Exchange
![]() |
rmoss_base package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.9.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_base模块
简介
rmoss_base是rmoss_core 中的一个基础功能包,提供了与机器人底层STM32通信的相关功能,是计算机与机器人之间的数据桥梁,实现了数据收发功能。
- 通过rmoss_base给机器人底层STM32发生控制数据,来控制机器人行动。
- 接收机器人的底层STM32的数据,并发布成ROS topic,供程序使用。
同时,还支持二次开发,其中的数据包封装模块,串口驱动模块等模块,可以直接使用,开发自己的机器人通信模块,加速开发。
主要文件:
-
transporter_interface.hpp
: 定义通用数据传输设备接口 -
uart_transporter.hpp/cpp
: 串口设备通用驱动(实现了TransporterInterface
接口) -
fixed_packet.hpp
: 固定长度数据包,封装了数据加载,卸载功能,提供了数据包与字节流之间的相互转化操作(模板类,支持不同长度的包)。 -
fixed_packet_tool.hpp
: 固定数据包收发工具,可直接直接发送与接收数据包,封装底层操作(模板类,与fixed_packet.hpp
有关) -
simple_robot_base_node.hpp/cpp
: ROS顶层模块SimpleRobotBaseNode
,ROS与STM32通信示例。 -
simple_robot_base_main.cpp
:SimpleRobotBaseNode
节点的main()入口。
快速使用
提供了一个开发样例,可以快速验证,同时也为二次开发提供了参考。
运行节点,需要修改配置文件,并准备一个usb串口模块:
ros2 run rmoss_base simple_robot_base
-
SimpleRobotBaseNode
节点已经注册为rclcpp component
, 支持ROS Composition方式启动。
二次开发
FixedPacket模块类
// FixedPacket模块类
FixedPacket<16> packet; // 16 Byte定长数据包
FixedPacket<32> packet; // 32 Byte定长数据包
// 预定义数据包
FixedPacket packet; // 默认定长数据包,长度为16
FixedPacket16 packet; // 等价于FixedPacket<16>
FixedPacket32 packet; // 等价于FixedPacket<32>
FixedPacket64 packet; // 等价于FixedPacket<64>
数据包数据布局 (以16 Byte定长数据包为例)
数据头字节(0xff) | 数据字节 | 校验字节 | 数据尾字节(0x0d) |
---|---|---|---|
0(1Byte) | 1-13 (13Byte) | 14(1Byte) | 15(1Byte) |
数据包操作
FixedPacket<16> packet; // 新建对象
/*******自定义加载数据************/
float angle=10;
packet.load_data<float>(angle,3); // 一个参数为数据,第二个数据为数据位置(建议显式)
// 隐式装载
packet.load_data(angle,3);
/*******自定义卸载数据************/
float angle2=0;
packet.unload_data(angle,3);//取出数据(隐式,建议隐式)
/**********其他操作**************/
packet.clear(); // 清零数据包中的数据字节和校验字节
packet.copy_from(); // 拷贝并覆盖数据包中中的buffer
packet.buffer(); // 获取数据包中的buffer (const修饰,只读)
- 其中只有数据位字节才能使用
load_data()
和unload_data()
操作,校验字节可通过set_check_byte()
进行设置。
FixedPacketTool模板类
利用FixedPacketTool简化了数据传输流程,不需要考虑底层字节数据传输细节。
// 需要依赖通信设备,假设已经获得正常工作的通信设备。
TransporterInterface::SharedPtr transporter;
// 实例化数据包工具,初始化的时候,传入通信设备指针
FixedPacket16Tool::SharedPtr packet_tool_;
packet_tool_=std::make_shared<FixedPacketTool<16>>(transporter);
利用FixedPacketTool发送数据
#数据包
FixedPacket<16> packet;
packet.load_data<unsigned char(protocol_example::GimbalAngleControl,1);
packet.load_data<unsigned char>(0x00,2);
packet.load_data<float>(info->pitch_angle,3);
packet.load_data<float>(info->yaw_angle,7);
#发送
packet_tool_->send_packet(packet);
利用FixedPacketTool接收数据
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
rmoss_interfaces | |
geometry_msgs | |
ament_cmake | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_base at Robotics Stack Exchange
![]() |
rmoss_base package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.9.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_base模块
简介
rmoss_base是rmoss_core 中的一个基础功能包,提供了与机器人底层STM32通信的相关功能,是计算机与机器人之间的数据桥梁,实现了数据收发功能。
- 通过rmoss_base给机器人底层STM32发生控制数据,来控制机器人行动。
- 接收机器人的底层STM32的数据,并发布成ROS topic,供程序使用。
同时,还支持二次开发,其中的数据包封装模块,串口驱动模块等模块,可以直接使用,开发自己的机器人通信模块,加速开发。
主要文件:
-
transporter_interface.hpp
: 定义通用数据传输设备接口 -
uart_transporter.hpp/cpp
: 串口设备通用驱动(实现了TransporterInterface
接口) -
fixed_packet.hpp
: 固定长度数据包,封装了数据加载,卸载功能,提供了数据包与字节流之间的相互转化操作(模板类,支持不同长度的包)。 -
fixed_packet_tool.hpp
: 固定数据包收发工具,可直接直接发送与接收数据包,封装底层操作(模板类,与fixed_packet.hpp
有关) -
simple_robot_base_node.hpp/cpp
: ROS顶层模块SimpleRobotBaseNode
,ROS与STM32通信示例。 -
simple_robot_base_main.cpp
:SimpleRobotBaseNode
节点的main()入口。
快速使用
提供了一个开发样例,可以快速验证,同时也为二次开发提供了参考。
运行节点,需要修改配置文件,并准备一个usb串口模块:
ros2 run rmoss_base simple_robot_base
-
SimpleRobotBaseNode
节点已经注册为rclcpp component
, 支持ROS Composition方式启动。
二次开发
FixedPacket模块类
// FixedPacket模块类
FixedPacket<16> packet; // 16 Byte定长数据包
FixedPacket<32> packet; // 32 Byte定长数据包
// 预定义数据包
FixedPacket packet; // 默认定长数据包,长度为16
FixedPacket16 packet; // 等价于FixedPacket<16>
FixedPacket32 packet; // 等价于FixedPacket<32>
FixedPacket64 packet; // 等价于FixedPacket<64>
数据包数据布局 (以16 Byte定长数据包为例)
数据头字节(0xff) | 数据字节 | 校验字节 | 数据尾字节(0x0d) |
---|---|---|---|
0(1Byte) | 1-13 (13Byte) | 14(1Byte) | 15(1Byte) |
数据包操作
FixedPacket<16> packet; // 新建对象
/*******自定义加载数据************/
float angle=10;
packet.load_data<float>(angle,3); // 一个参数为数据,第二个数据为数据位置(建议显式)
// 隐式装载
packet.load_data(angle,3);
/*******自定义卸载数据************/
float angle2=0;
packet.unload_data(angle,3);//取出数据(隐式,建议隐式)
/**********其他操作**************/
packet.clear(); // 清零数据包中的数据字节和校验字节
packet.copy_from(); // 拷贝并覆盖数据包中中的buffer
packet.buffer(); // 获取数据包中的buffer (const修饰,只读)
- 其中只有数据位字节才能使用
load_data()
和unload_data()
操作,校验字节可通过set_check_byte()
进行设置。
FixedPacketTool模板类
利用FixedPacketTool简化了数据传输流程,不需要考虑底层字节数据传输细节。
// 需要依赖通信设备,假设已经获得正常工作的通信设备。
TransporterInterface::SharedPtr transporter;
// 实例化数据包工具,初始化的时候,传入通信设备指针
FixedPacket16Tool::SharedPtr packet_tool_;
packet_tool_=std::make_shared<FixedPacketTool<16>>(transporter);
利用FixedPacketTool发送数据
#数据包
FixedPacket<16> packet;
packet.load_data<unsigned char(protocol_example::GimbalAngleControl,1);
packet.load_data<unsigned char>(0x00,2);
packet.load_data<float>(info->pitch_angle,3);
packet.load_data<float>(info->yaw_angle,7);
#发送
packet_tool_->send_packet(packet);
利用FixedPacketTool接收数据
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
rmoss_interfaces | |
geometry_msgs | |
ament_cmake | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_base at Robotics Stack Exchange
![]() |
rmoss_base package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.9.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_base模块
简介
rmoss_base是rmoss_core 中的一个基础功能包,提供了与机器人底层STM32通信的相关功能,是计算机与机器人之间的数据桥梁,实现了数据收发功能。
- 通过rmoss_base给机器人底层STM32发生控制数据,来控制机器人行动。
- 接收机器人的底层STM32的数据,并发布成ROS topic,供程序使用。
同时,还支持二次开发,其中的数据包封装模块,串口驱动模块等模块,可以直接使用,开发自己的机器人通信模块,加速开发。
主要文件:
-
transporter_interface.hpp
: 定义通用数据传输设备接口 -
uart_transporter.hpp/cpp
: 串口设备通用驱动(实现了TransporterInterface
接口) -
fixed_packet.hpp
: 固定长度数据包,封装了数据加载,卸载功能,提供了数据包与字节流之间的相互转化操作(模板类,支持不同长度的包)。 -
fixed_packet_tool.hpp
: 固定数据包收发工具,可直接直接发送与接收数据包,封装底层操作(模板类,与fixed_packet.hpp
有关) -
simple_robot_base_node.hpp/cpp
: ROS顶层模块SimpleRobotBaseNode
,ROS与STM32通信示例。 -
simple_robot_base_main.cpp
:SimpleRobotBaseNode
节点的main()入口。
快速使用
提供了一个开发样例,可以快速验证,同时也为二次开发提供了参考。
运行节点,需要修改配置文件,并准备一个usb串口模块:
ros2 run rmoss_base simple_robot_base
-
SimpleRobotBaseNode
节点已经注册为rclcpp component
, 支持ROS Composition方式启动。
二次开发
FixedPacket模块类
// FixedPacket模块类
FixedPacket<16> packet; // 16 Byte定长数据包
FixedPacket<32> packet; // 32 Byte定长数据包
// 预定义数据包
FixedPacket packet; // 默认定长数据包,长度为16
FixedPacket16 packet; // 等价于FixedPacket<16>
FixedPacket32 packet; // 等价于FixedPacket<32>
FixedPacket64 packet; // 等价于FixedPacket<64>
数据包数据布局 (以16 Byte定长数据包为例)
数据头字节(0xff) | 数据字节 | 校验字节 | 数据尾字节(0x0d) |
---|---|---|---|
0(1Byte) | 1-13 (13Byte) | 14(1Byte) | 15(1Byte) |
数据包操作
FixedPacket<16> packet; // 新建对象
/*******自定义加载数据************/
float angle=10;
packet.load_data<float>(angle,3); // 一个参数为数据,第二个数据为数据位置(建议显式)
// 隐式装载
packet.load_data(angle,3);
/*******自定义卸载数据************/
float angle2=0;
packet.unload_data(angle,3);//取出数据(隐式,建议隐式)
/**********其他操作**************/
packet.clear(); // 清零数据包中的数据字节和校验字节
packet.copy_from(); // 拷贝并覆盖数据包中中的buffer
packet.buffer(); // 获取数据包中的buffer (const修饰,只读)
- 其中只有数据位字节才能使用
load_data()
和unload_data()
操作,校验字节可通过set_check_byte()
进行设置。
FixedPacketTool模板类
利用FixedPacketTool简化了数据传输流程,不需要考虑底层字节数据传输细节。
// 需要依赖通信设备,假设已经获得正常工作的通信设备。
TransporterInterface::SharedPtr transporter;
// 实例化数据包工具,初始化的时候,传入通信设备指针
FixedPacket16Tool::SharedPtr packet_tool_;
packet_tool_=std::make_shared<FixedPacketTool<16>>(transporter);
利用FixedPacketTool发送数据
#数据包
FixedPacket<16> packet;
packet.load_data<unsigned char(protocol_example::GimbalAngleControl,1);
packet.load_data<unsigned char>(0x00,2);
packet.load_data<float>(info->pitch_angle,3);
packet.load_data<float>(info->yaw_angle,7);
#发送
packet_tool_->send_packet(packet);
利用FixedPacketTool接收数据
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
rmoss_interfaces | |
geometry_msgs | |
ament_cmake | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_base at Robotics Stack Exchange
![]() |
rmoss_base package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.9.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_base模块
简介
rmoss_base是rmoss_core 中的一个基础功能包,提供了与机器人底层STM32通信的相关功能,是计算机与机器人之间的数据桥梁,实现了数据收发功能。
- 通过rmoss_base给机器人底层STM32发生控制数据,来控制机器人行动。
- 接收机器人的底层STM32的数据,并发布成ROS topic,供程序使用。
同时,还支持二次开发,其中的数据包封装模块,串口驱动模块等模块,可以直接使用,开发自己的机器人通信模块,加速开发。
主要文件:
-
transporter_interface.hpp
: 定义通用数据传输设备接口 -
uart_transporter.hpp/cpp
: 串口设备通用驱动(实现了TransporterInterface
接口) -
fixed_packet.hpp
: 固定长度数据包,封装了数据加载,卸载功能,提供了数据包与字节流之间的相互转化操作(模板类,支持不同长度的包)。 -
fixed_packet_tool.hpp
: 固定数据包收发工具,可直接直接发送与接收数据包,封装底层操作(模板类,与fixed_packet.hpp
有关) -
simple_robot_base_node.hpp/cpp
: ROS顶层模块SimpleRobotBaseNode
,ROS与STM32通信示例。 -
simple_robot_base_main.cpp
:SimpleRobotBaseNode
节点的main()入口。
快速使用
提供了一个开发样例,可以快速验证,同时也为二次开发提供了参考。
运行节点,需要修改配置文件,并准备一个usb串口模块:
ros2 run rmoss_base simple_robot_base
-
SimpleRobotBaseNode
节点已经注册为rclcpp component
, 支持ROS Composition方式启动。
二次开发
FixedPacket模块类
// FixedPacket模块类
FixedPacket<16> packet; // 16 Byte定长数据包
FixedPacket<32> packet; // 32 Byte定长数据包
// 预定义数据包
FixedPacket packet; // 默认定长数据包,长度为16
FixedPacket16 packet; // 等价于FixedPacket<16>
FixedPacket32 packet; // 等价于FixedPacket<32>
FixedPacket64 packet; // 等价于FixedPacket<64>
数据包数据布局 (以16 Byte定长数据包为例)
数据头字节(0xff) | 数据字节 | 校验字节 | 数据尾字节(0x0d) |
---|---|---|---|
0(1Byte) | 1-13 (13Byte) | 14(1Byte) | 15(1Byte) |
数据包操作
FixedPacket<16> packet; // 新建对象
/*******自定义加载数据************/
float angle=10;
packet.load_data<float>(angle,3); // 一个参数为数据,第二个数据为数据位置(建议显式)
// 隐式装载
packet.load_data(angle,3);
/*******自定义卸载数据************/
float angle2=0;
packet.unload_data(angle,3);//取出数据(隐式,建议隐式)
/**********其他操作**************/
packet.clear(); // 清零数据包中的数据字节和校验字节
packet.copy_from(); // 拷贝并覆盖数据包中中的buffer
packet.buffer(); // 获取数据包中的buffer (const修饰,只读)
- 其中只有数据位字节才能使用
load_data()
和unload_data()
操作,校验字节可通过set_check_byte()
进行设置。
FixedPacketTool模板类
利用FixedPacketTool简化了数据传输流程,不需要考虑底层字节数据传输细节。
// 需要依赖通信设备,假设已经获得正常工作的通信设备。
TransporterInterface::SharedPtr transporter;
// 实例化数据包工具,初始化的时候,传入通信设备指针
FixedPacket16Tool::SharedPtr packet_tool_;
packet_tool_=std::make_shared<FixedPacketTool<16>>(transporter);
利用FixedPacketTool发送数据
#数据包
FixedPacket<16> packet;
packet.load_data<unsigned char(protocol_example::GimbalAngleControl,1);
packet.load_data<unsigned char>(0x00,2);
packet.load_data<float>(info->pitch_angle,3);
packet.load_data<float>(info->yaw_angle,7);
#发送
packet_tool_->send_packet(packet);
利用FixedPacketTool接收数据
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
rmoss_interfaces | |
geometry_msgs | |
ament_cmake | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmoss_core |
Launch files
Messages
Services
Plugins
Recent questions tagged rmoss_base at Robotics Stack Exchange
![]() |
rmoss_base package from rmoss_core repormoss_base rmoss_cam rmoss_core rmoss_projectile_motion rmoss_util |
ROS Distro
|
Package Summary
Tags | No category tags. |
Version | 0.9.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | RoboMaster OSS中的基础项目,为RoboMaster提供通用基础功能模块包,如相机模块,弹道运动模块等。 |
Checkout URI | https://github.com/robomaster-oss/rmoss_core.git |
VCS Type | git |
VCS Version | humble |
Last Updated | 2023-04-17 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | ros2 robomaster |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- zhenpeng ge
Authors
rmoss_base模块
简介
rmoss_base是rmoss_core 中的一个基础功能包,提供了与机器人底层STM32通信的相关功能,是计算机与机器人之间的数据桥梁,实现了数据收发功能。
- 通过rmoss_base给机器人底层STM32发生控制数据,来控制机器人行动。
- 接收机器人的底层STM32的数据,并发布成ROS topic,供程序使用。
同时,还支持二次开发,其中的数据包封装模块,串口驱动模块等模块,可以直接使用,开发自己的机器人通信模块,加速开发。
主要文件:
-
transporter_interface.hpp
: 定义通用数据传输设备接口 -
uart_transporter.hpp/cpp
: 串口设备通用驱动(实现了TransporterInterface
接口) -
fixed_packet.hpp
: 固定长度数据包,封装了数据加载,卸载功能,提供了数据包与字节流之间的相互转化操作(模板类,支持不同长度的包)。 -
fixed_packet_tool.hpp
: 固定数据包收发工具,可直接直接发送与接收数据包,封装底层操作(模板类,与fixed_packet.hpp
有关) -
simple_robot_base_node.hpp/cpp
: ROS顶层模块SimpleRobotBaseNode
,ROS与STM32通信示例。 -
simple_robot_base_main.cpp
:SimpleRobotBaseNode
节点的main()入口。
快速使用
提供了一个开发样例,可以快速验证,同时也为二次开发提供了参考。
运行节点,需要修改配置文件,并准备一个usb串口模块:
ros2 run rmoss_base simple_robot_base
-
SimpleRobotBaseNode
节点已经注册为rclcpp component
, 支持ROS Composition方式启动。
二次开发
FixedPacket模块类
// FixedPacket模块类
FixedPacket<16> packet; // 16 Byte定长数据包
FixedPacket<32> packet; // 32 Byte定长数据包
// 预定义数据包
FixedPacket packet; // 默认定长数据包,长度为16
FixedPacket16 packet; // 等价于FixedPacket<16>
FixedPacket32 packet; // 等价于FixedPacket<32>
FixedPacket64 packet; // 等价于FixedPacket<64>
数据包数据布局 (以16 Byte定长数据包为例)
数据头字节(0xff) | 数据字节 | 校验字节 | 数据尾字节(0x0d) |
---|---|---|---|
0(1Byte) | 1-13 (13Byte) | 14(1Byte) | 15(1Byte) |
数据包操作
FixedPacket<16> packet; // 新建对象
/*******自定义加载数据************/
float angle=10;
packet.load_data<float>(angle,3); // 一个参数为数据,第二个数据为数据位置(建议显式)
// 隐式装载
packet.load_data(angle,3);
/*******自定义卸载数据************/
float angle2=0;
packet.unload_data(angle,3);//取出数据(隐式,建议隐式)
/**********其他操作**************/
packet.clear(); // 清零数据包中的数据字节和校验字节
packet.copy_from(); // 拷贝并覆盖数据包中中的buffer
packet.buffer(); // 获取数据包中的buffer (const修饰,只读)
- 其中只有数据位字节才能使用
load_data()
和unload_data()
操作,校验字节可通过set_check_byte()
进行设置。
FixedPacketTool模板类
利用FixedPacketTool简化了数据传输流程,不需要考虑底层字节数据传输细节。
// 需要依赖通信设备,假设已经获得正常工作的通信设备。
TransporterInterface::SharedPtr transporter;
// 实例化数据包工具,初始化的时候,传入通信设备指针
FixedPacket16Tool::SharedPtr packet_tool_;
packet_tool_=std::make_shared<FixedPacketTool<16>>(transporter);
利用FixedPacketTool发送数据
#数据包
FixedPacket<16> packet;
packet.load_data<unsigned char(protocol_example::GimbalAngleControl,1);
packet.load_data<unsigned char>(0x00,2);
packet.load_data<float>(info->pitch_angle,3);
packet.load_data<float>(info->yaw_angle,7);
#发送
packet_tool_->send_packet(packet);
利用FixedPacketTool接收数据
File truncated at 100 lines see the full file
Package Dependencies
Deps | Name |
---|---|
rclcpp | |
rmoss_interfaces | |
geometry_msgs | |
ament_cmake | |
ament_lint_auto | |
ament_lint_common |
System Dependencies
Dependant Packages
Name | Deps |
---|---|
rmoss_core |