No version for distro humble showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description 16th National College Student’s Intelligent Car Competition Code 第十六届智能汽车竞赛讯飞智慧餐厅代码
Checkout URI https://github.com/ht-hlf/car_competition.git
VCS Type git
VCS Version master
Last Updated 2023-01-27
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ucar_controller package

Additional Links

No additional links.

Maintainers

  • iflytek

Authors

No additional authors.

[TOC]

1. 全部功能

1.1 里程计与底盘的坐标变换是否发布由参数实时配置

参数名称:publish_odom_tf

  1. 设置为true: 发布 odom -> base_link的坐标变换
  2. 设置为false: 不发布 odom -> base_link的坐标变换

注,以下运动相关服务优先度大于实时运动控制(cmd_vel)当服务完成后才会继续执行实时控制。(手柄的优先级更高,不过不涉及web接口,此处不详细描述。手柄 > 运动服务 > cmd_vel)

1.2 停止运动服务

服务名:stop_move (基于速度、距离、角度的运动) 用途:调用后立即终止正在运行的time_movevel_dist_move。 并回到cmd控制模式 服务数据类型:std_srvs/Trigger.srv

---
bool success                  #运动结束时返回true,异常返回false
string message                #返回的字符串信息

返回枚举:

  1. 成功停止
res.success = true;
res.message = "Move stopped ";

  1. 不在move模式,不需要停止
res.success = false;
res.message = "Not in MOTOR_MODE_MOVE.";

1.3 实时控制

方式:发布话题。 话题名:cmd_vel msg类型:geometry_msgs/Twist.msg

geometry_msgs/Vector3 linear
  float64 x                   # x方向线速度
  float64 y                   # y方向线速度
  float64 z                   # 无效
geometry_msgs/Vector3 angular
  float64 x                   # 无效
  float64 y                   # 无效
  float64 z                   # z轴角速度

1.4 设置灯光效果

服务名:get_battery_state 服务数据类型:aicar_controller/GetBatteryInfo.srv

uint8 MODE_NORMAL = 0 # 常亮
uint8 MODE_BLINK  = 1 # 闪烁
uint8 MODE_BREATH = 2 # 呼吸

uint8   mode_type   # 灯光模式
float64 frequency   # 模式频率(常亮模式自动忽略)
uint8 red_value   # 红色光亮度范围(0-255)
uint8 green_value # 绿色光亮度范围(0-255)
uint8 blue_value  # 蓝色光亮度范围(0-255)
---
bool success        # 设置是否成功
string message      # 异常log信息

response枚举: 1、设置失败(可能与MUC通信异常) res.success = false; res.message = “Can’t connect base’s MCU.”; 2、设置成功 res.success = true; res.message = “Set LED success.”;

1.5 底盘电池信息发布(仅电池剩余电量百分比有效,即:percentage)

话题名:battery_state sensor_msgs/BatteryState.msg

``` POWER_SUPPLY_STATUS_UNKNOWN = 0 # 未知 POWER_SUPPLY_STATUS_CHARGING = 1 # 充电 POWER_SUPPLY_STATUS_DISCHARGING = 2 # 放电中 POWER_SUPPLY_STATUS_NOT_CHARGING = 3 # 未充电 POWER_SUPPLY_STATUS_FULL = 4 # 满电 POWER_SUPPLY_HEALTH_UNKNOWN = 0 # 未知 POWER_SUPPLY_HEALTH_GOOD = 1 # 良好 POWER_SUPPLY_HEALTH_OVERHEAT = 2 # 过热 POWER_SUPPLY_HEALTH_DEAD = 3 # 没电 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4 # 过电压 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5 # 未知错误 POWER_SUPPLY_HEALTH_COLD = 6 # 过冷 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7 # POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8 # POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0 # 未知 POWER_SUPPLY_TECHNOLOGY_NIMH = 1 # Ni-MH battery 镍氢电池 POWER_SUPPLY_TECHNOLOGY_LION = 2 # Li-ion battery 锂离子电池 POWER_SUPPLY_TECHNOLOGY_LIPO = 3 # Li-Po battery 锂聚合物电池 POWER_SUPPLY_TECHNOLOGY_LIFE = 4 # li-Fe battery 锂铁电池 POWER_SUPPLY_TECHNOLOGY_NICD = 5 # NiCd battery 镍镉电池 POWER_SUPPLY_TECHNOLOGY_LIMN = 6 # LiMn battery 锂锰电池

std_msgs/Header header

File truncated at 100 lines see the full file

CHANGELOG

串口通讯协议(20200416):

1. 帧定义

1.1 STM32 Write数据帧

  起始位 指令版本 数据长度 里程脉冲 电池百分比 校验和
字节数 2 1 1 8 1 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x76(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + 电池百分比 的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

注:该版本电机编码率为270(一圈输出270个脉冲)

E: 电池百分比:剩余电量百分比(估计值)。 F: 校验和:起始位+指令版本+数据长度+里程脉冲+电池百分比

1.2 STM32 READ数据帧

  起始位 指令版本 数据长度 里程脉冲 LED控制 校验和
字节数 2 1 1 8 3 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x75(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + LED控制的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

E: LED的rgb控制

uint8_t  green_value;
uint8_t  red_value;
uint8_t  blue_value;

F: 校验和:起始位+指令版本+数据长度+里程脉冲+LED控制

1.3 校验和函数

bool checkCS(int len){
  uint8_t cs = 0;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_read_[i];
	}
  return pack_read_[len - 1] == cs;
}
void setCS(int len)
{
	uint8_t cs = 0x00;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_write_[i];
	}
	pack_write_[len - 1] = cs;
}

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged ucar_controller at Robotics Stack Exchange

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description 16th National College Student’s Intelligent Car Competition Code 第十六届智能汽车竞赛讯飞智慧餐厅代码
Checkout URI https://github.com/ht-hlf/car_competition.git
VCS Type git
VCS Version master
Last Updated 2023-01-27
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ucar_controller package

Additional Links

No additional links.

Maintainers

  • iflytek

Authors

No additional authors.

[TOC]

1. 全部功能

1.1 里程计与底盘的坐标变换是否发布由参数实时配置

参数名称:publish_odom_tf

  1. 设置为true: 发布 odom -> base_link的坐标变换
  2. 设置为false: 不发布 odom -> base_link的坐标变换

注,以下运动相关服务优先度大于实时运动控制(cmd_vel)当服务完成后才会继续执行实时控制。(手柄的优先级更高,不过不涉及web接口,此处不详细描述。手柄 > 运动服务 > cmd_vel)

1.2 停止运动服务

服务名:stop_move (基于速度、距离、角度的运动) 用途:调用后立即终止正在运行的time_movevel_dist_move。 并回到cmd控制模式 服务数据类型:std_srvs/Trigger.srv

---
bool success                  #运动结束时返回true,异常返回false
string message                #返回的字符串信息

返回枚举:

  1. 成功停止
res.success = true;
res.message = "Move stopped ";

  1. 不在move模式,不需要停止
res.success = false;
res.message = "Not in MOTOR_MODE_MOVE.";

1.3 实时控制

方式:发布话题。 话题名:cmd_vel msg类型:geometry_msgs/Twist.msg

geometry_msgs/Vector3 linear
  float64 x                   # x方向线速度
  float64 y                   # y方向线速度
  float64 z                   # 无效
geometry_msgs/Vector3 angular
  float64 x                   # 无效
  float64 y                   # 无效
  float64 z                   # z轴角速度

1.4 设置灯光效果

服务名:get_battery_state 服务数据类型:aicar_controller/GetBatteryInfo.srv

uint8 MODE_NORMAL = 0 # 常亮
uint8 MODE_BLINK  = 1 # 闪烁
uint8 MODE_BREATH = 2 # 呼吸

uint8   mode_type   # 灯光模式
float64 frequency   # 模式频率(常亮模式自动忽略)
uint8 red_value   # 红色光亮度范围(0-255)
uint8 green_value # 绿色光亮度范围(0-255)
uint8 blue_value  # 蓝色光亮度范围(0-255)
---
bool success        # 设置是否成功
string message      # 异常log信息

response枚举: 1、设置失败(可能与MUC通信异常) res.success = false; res.message = “Can’t connect base’s MCU.”; 2、设置成功 res.success = true; res.message = “Set LED success.”;

1.5 底盘电池信息发布(仅电池剩余电量百分比有效,即:percentage)

话题名:battery_state sensor_msgs/BatteryState.msg

``` POWER_SUPPLY_STATUS_UNKNOWN = 0 # 未知 POWER_SUPPLY_STATUS_CHARGING = 1 # 充电 POWER_SUPPLY_STATUS_DISCHARGING = 2 # 放电中 POWER_SUPPLY_STATUS_NOT_CHARGING = 3 # 未充电 POWER_SUPPLY_STATUS_FULL = 4 # 满电 POWER_SUPPLY_HEALTH_UNKNOWN = 0 # 未知 POWER_SUPPLY_HEALTH_GOOD = 1 # 良好 POWER_SUPPLY_HEALTH_OVERHEAT = 2 # 过热 POWER_SUPPLY_HEALTH_DEAD = 3 # 没电 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4 # 过电压 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5 # 未知错误 POWER_SUPPLY_HEALTH_COLD = 6 # 过冷 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7 # POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8 # POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0 # 未知 POWER_SUPPLY_TECHNOLOGY_NIMH = 1 # Ni-MH battery 镍氢电池 POWER_SUPPLY_TECHNOLOGY_LION = 2 # Li-ion battery 锂离子电池 POWER_SUPPLY_TECHNOLOGY_LIPO = 3 # Li-Po battery 锂聚合物电池 POWER_SUPPLY_TECHNOLOGY_LIFE = 4 # li-Fe battery 锂铁电池 POWER_SUPPLY_TECHNOLOGY_NICD = 5 # NiCd battery 镍镉电池 POWER_SUPPLY_TECHNOLOGY_LIMN = 6 # LiMn battery 锂锰电池

std_msgs/Header header

File truncated at 100 lines see the full file

CHANGELOG

串口通讯协议(20200416):

1. 帧定义

1.1 STM32 Write数据帧

  起始位 指令版本 数据长度 里程脉冲 电池百分比 校验和
字节数 2 1 1 8 1 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x76(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + 电池百分比 的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

注:该版本电机编码率为270(一圈输出270个脉冲)

E: 电池百分比:剩余电量百分比(估计值)。 F: 校验和:起始位+指令版本+数据长度+里程脉冲+电池百分比

1.2 STM32 READ数据帧

  起始位 指令版本 数据长度 里程脉冲 LED控制 校验和
字节数 2 1 1 8 3 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x75(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + LED控制的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

E: LED的rgb控制

uint8_t  green_value;
uint8_t  red_value;
uint8_t  blue_value;

F: 校验和:起始位+指令版本+数据长度+里程脉冲+LED控制

1.3 校验和函数

bool checkCS(int len){
  uint8_t cs = 0;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_read_[i];
	}
  return pack_read_[len - 1] == cs;
}
void setCS(int len)
{
	uint8_t cs = 0x00;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_write_[i];
	}
	pack_write_[len - 1] = cs;
}

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged ucar_controller at Robotics Stack Exchange

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description 16th National College Student’s Intelligent Car Competition Code 第十六届智能汽车竞赛讯飞智慧餐厅代码
Checkout URI https://github.com/ht-hlf/car_competition.git
VCS Type git
VCS Version master
Last Updated 2023-01-27
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ucar_controller package

Additional Links

No additional links.

Maintainers

  • iflytek

Authors

No additional authors.

[TOC]

1. 全部功能

1.1 里程计与底盘的坐标变换是否发布由参数实时配置

参数名称:publish_odom_tf

  1. 设置为true: 发布 odom -> base_link的坐标变换
  2. 设置为false: 不发布 odom -> base_link的坐标变换

注,以下运动相关服务优先度大于实时运动控制(cmd_vel)当服务完成后才会继续执行实时控制。(手柄的优先级更高,不过不涉及web接口,此处不详细描述。手柄 > 运动服务 > cmd_vel)

1.2 停止运动服务

服务名:stop_move (基于速度、距离、角度的运动) 用途:调用后立即终止正在运行的time_movevel_dist_move。 并回到cmd控制模式 服务数据类型:std_srvs/Trigger.srv

---
bool success                  #运动结束时返回true,异常返回false
string message                #返回的字符串信息

返回枚举:

  1. 成功停止
res.success = true;
res.message = "Move stopped ";

  1. 不在move模式,不需要停止
res.success = false;
res.message = "Not in MOTOR_MODE_MOVE.";

1.3 实时控制

方式:发布话题。 话题名:cmd_vel msg类型:geometry_msgs/Twist.msg

geometry_msgs/Vector3 linear
  float64 x                   # x方向线速度
  float64 y                   # y方向线速度
  float64 z                   # 无效
geometry_msgs/Vector3 angular
  float64 x                   # 无效
  float64 y                   # 无效
  float64 z                   # z轴角速度

1.4 设置灯光效果

服务名:get_battery_state 服务数据类型:aicar_controller/GetBatteryInfo.srv

uint8 MODE_NORMAL = 0 # 常亮
uint8 MODE_BLINK  = 1 # 闪烁
uint8 MODE_BREATH = 2 # 呼吸

uint8   mode_type   # 灯光模式
float64 frequency   # 模式频率(常亮模式自动忽略)
uint8 red_value   # 红色光亮度范围(0-255)
uint8 green_value # 绿色光亮度范围(0-255)
uint8 blue_value  # 蓝色光亮度范围(0-255)
---
bool success        # 设置是否成功
string message      # 异常log信息

response枚举: 1、设置失败(可能与MUC通信异常) res.success = false; res.message = “Can’t connect base’s MCU.”; 2、设置成功 res.success = true; res.message = “Set LED success.”;

1.5 底盘电池信息发布(仅电池剩余电量百分比有效,即:percentage)

话题名:battery_state sensor_msgs/BatteryState.msg

``` POWER_SUPPLY_STATUS_UNKNOWN = 0 # 未知 POWER_SUPPLY_STATUS_CHARGING = 1 # 充电 POWER_SUPPLY_STATUS_DISCHARGING = 2 # 放电中 POWER_SUPPLY_STATUS_NOT_CHARGING = 3 # 未充电 POWER_SUPPLY_STATUS_FULL = 4 # 满电 POWER_SUPPLY_HEALTH_UNKNOWN = 0 # 未知 POWER_SUPPLY_HEALTH_GOOD = 1 # 良好 POWER_SUPPLY_HEALTH_OVERHEAT = 2 # 过热 POWER_SUPPLY_HEALTH_DEAD = 3 # 没电 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4 # 过电压 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5 # 未知错误 POWER_SUPPLY_HEALTH_COLD = 6 # 过冷 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7 # POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8 # POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0 # 未知 POWER_SUPPLY_TECHNOLOGY_NIMH = 1 # Ni-MH battery 镍氢电池 POWER_SUPPLY_TECHNOLOGY_LION = 2 # Li-ion battery 锂离子电池 POWER_SUPPLY_TECHNOLOGY_LIPO = 3 # Li-Po battery 锂聚合物电池 POWER_SUPPLY_TECHNOLOGY_LIFE = 4 # li-Fe battery 锂铁电池 POWER_SUPPLY_TECHNOLOGY_NICD = 5 # NiCd battery 镍镉电池 POWER_SUPPLY_TECHNOLOGY_LIMN = 6 # LiMn battery 锂锰电池

std_msgs/Header header

File truncated at 100 lines see the full file

CHANGELOG

串口通讯协议(20200416):

1. 帧定义

1.1 STM32 Write数据帧

  起始位 指令版本 数据长度 里程脉冲 电池百分比 校验和
字节数 2 1 1 8 1 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x76(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + 电池百分比 的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

注:该版本电机编码率为270(一圈输出270个脉冲)

E: 电池百分比:剩余电量百分比(估计值)。 F: 校验和:起始位+指令版本+数据长度+里程脉冲+电池百分比

1.2 STM32 READ数据帧

  起始位 指令版本 数据长度 里程脉冲 LED控制 校验和
字节数 2 1 1 8 3 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x75(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + LED控制的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

E: LED的rgb控制

uint8_t  green_value;
uint8_t  red_value;
uint8_t  blue_value;

F: 校验和:起始位+指令版本+数据长度+里程脉冲+LED控制

1.3 校验和函数

bool checkCS(int len){
  uint8_t cs = 0;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_read_[i];
	}
  return pack_read_[len - 1] == cs;
}
void setCS(int len)
{
	uint8_t cs = 0x00;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_write_[i];
	}
	pack_write_[len - 1] = cs;
}

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged ucar_controller at Robotics Stack Exchange

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description 16th National College Student’s Intelligent Car Competition Code 第十六届智能汽车竞赛讯飞智慧餐厅代码
Checkout URI https://github.com/ht-hlf/car_competition.git
VCS Type git
VCS Version master
Last Updated 2023-01-27
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ucar_controller package

Additional Links

No additional links.

Maintainers

  • iflytek

Authors

No additional authors.

[TOC]

1. 全部功能

1.1 里程计与底盘的坐标变换是否发布由参数实时配置

参数名称:publish_odom_tf

  1. 设置为true: 发布 odom -> base_link的坐标变换
  2. 设置为false: 不发布 odom -> base_link的坐标变换

注,以下运动相关服务优先度大于实时运动控制(cmd_vel)当服务完成后才会继续执行实时控制。(手柄的优先级更高,不过不涉及web接口,此处不详细描述。手柄 > 运动服务 > cmd_vel)

1.2 停止运动服务

服务名:stop_move (基于速度、距离、角度的运动) 用途:调用后立即终止正在运行的time_movevel_dist_move。 并回到cmd控制模式 服务数据类型:std_srvs/Trigger.srv

---
bool success                  #运动结束时返回true,异常返回false
string message                #返回的字符串信息

返回枚举:

  1. 成功停止
res.success = true;
res.message = "Move stopped ";

  1. 不在move模式,不需要停止
res.success = false;
res.message = "Not in MOTOR_MODE_MOVE.";

1.3 实时控制

方式:发布话题。 话题名:cmd_vel msg类型:geometry_msgs/Twist.msg

geometry_msgs/Vector3 linear
  float64 x                   # x方向线速度
  float64 y                   # y方向线速度
  float64 z                   # 无效
geometry_msgs/Vector3 angular
  float64 x                   # 无效
  float64 y                   # 无效
  float64 z                   # z轴角速度

1.4 设置灯光效果

服务名:get_battery_state 服务数据类型:aicar_controller/GetBatteryInfo.srv

uint8 MODE_NORMAL = 0 # 常亮
uint8 MODE_BLINK  = 1 # 闪烁
uint8 MODE_BREATH = 2 # 呼吸

uint8   mode_type   # 灯光模式
float64 frequency   # 模式频率(常亮模式自动忽略)
uint8 red_value   # 红色光亮度范围(0-255)
uint8 green_value # 绿色光亮度范围(0-255)
uint8 blue_value  # 蓝色光亮度范围(0-255)
---
bool success        # 设置是否成功
string message      # 异常log信息

response枚举: 1、设置失败(可能与MUC通信异常) res.success = false; res.message = “Can’t connect base’s MCU.”; 2、设置成功 res.success = true; res.message = “Set LED success.”;

1.5 底盘电池信息发布(仅电池剩余电量百分比有效,即:percentage)

话题名:battery_state sensor_msgs/BatteryState.msg

``` POWER_SUPPLY_STATUS_UNKNOWN = 0 # 未知 POWER_SUPPLY_STATUS_CHARGING = 1 # 充电 POWER_SUPPLY_STATUS_DISCHARGING = 2 # 放电中 POWER_SUPPLY_STATUS_NOT_CHARGING = 3 # 未充电 POWER_SUPPLY_STATUS_FULL = 4 # 满电 POWER_SUPPLY_HEALTH_UNKNOWN = 0 # 未知 POWER_SUPPLY_HEALTH_GOOD = 1 # 良好 POWER_SUPPLY_HEALTH_OVERHEAT = 2 # 过热 POWER_SUPPLY_HEALTH_DEAD = 3 # 没电 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4 # 过电压 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5 # 未知错误 POWER_SUPPLY_HEALTH_COLD = 6 # 过冷 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7 # POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8 # POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0 # 未知 POWER_SUPPLY_TECHNOLOGY_NIMH = 1 # Ni-MH battery 镍氢电池 POWER_SUPPLY_TECHNOLOGY_LION = 2 # Li-ion battery 锂离子电池 POWER_SUPPLY_TECHNOLOGY_LIPO = 3 # Li-Po battery 锂聚合物电池 POWER_SUPPLY_TECHNOLOGY_LIFE = 4 # li-Fe battery 锂铁电池 POWER_SUPPLY_TECHNOLOGY_NICD = 5 # NiCd battery 镍镉电池 POWER_SUPPLY_TECHNOLOGY_LIMN = 6 # LiMn battery 锂锰电池

std_msgs/Header header

File truncated at 100 lines see the full file

CHANGELOG

串口通讯协议(20200416):

1. 帧定义

1.1 STM32 Write数据帧

  起始位 指令版本 数据长度 里程脉冲 电池百分比 校验和
字节数 2 1 1 8 1 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x76(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + 电池百分比 的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

注:该版本电机编码率为270(一圈输出270个脉冲)

E: 电池百分比:剩余电量百分比(估计值)。 F: 校验和:起始位+指令版本+数据长度+里程脉冲+电池百分比

1.2 STM32 READ数据帧

  起始位 指令版本 数据长度 里程脉冲 LED控制 校验和
字节数 2 1 1 8 3 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x75(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + LED控制的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

E: LED的rgb控制

uint8_t  green_value;
uint8_t  red_value;
uint8_t  blue_value;

F: 校验和:起始位+指令版本+数据长度+里程脉冲+LED控制

1.3 校验和函数

bool checkCS(int len){
  uint8_t cs = 0;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_read_[i];
	}
  return pack_read_[len - 1] == cs;
}
void setCS(int len)
{
	uint8_t cs = 0x00;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_write_[i];
	}
	pack_write_[len - 1] = cs;
}

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged ucar_controller at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description 16th National College Student’s Intelligent Car Competition Code 第十六届智能汽车竞赛讯飞智慧餐厅代码
Checkout URI https://github.com/ht-hlf/car_competition.git
VCS Type git
VCS Version master
Last Updated 2023-01-27
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ucar_controller package

Additional Links

No additional links.

Maintainers

  • iflytek

Authors

No additional authors.

[TOC]

1. 全部功能

1.1 里程计与底盘的坐标变换是否发布由参数实时配置

参数名称:publish_odom_tf

  1. 设置为true: 发布 odom -> base_link的坐标变换
  2. 设置为false: 不发布 odom -> base_link的坐标变换

注,以下运动相关服务优先度大于实时运动控制(cmd_vel)当服务完成后才会继续执行实时控制。(手柄的优先级更高,不过不涉及web接口,此处不详细描述。手柄 > 运动服务 > cmd_vel)

1.2 停止运动服务

服务名:stop_move (基于速度、距离、角度的运动) 用途:调用后立即终止正在运行的time_movevel_dist_move。 并回到cmd控制模式 服务数据类型:std_srvs/Trigger.srv

---
bool success                  #运动结束时返回true,异常返回false
string message                #返回的字符串信息

返回枚举:

  1. 成功停止
res.success = true;
res.message = "Move stopped ";

  1. 不在move模式,不需要停止
res.success = false;
res.message = "Not in MOTOR_MODE_MOVE.";

1.3 实时控制

方式:发布话题。 话题名:cmd_vel msg类型:geometry_msgs/Twist.msg

geometry_msgs/Vector3 linear
  float64 x                   # x方向线速度
  float64 y                   # y方向线速度
  float64 z                   # 无效
geometry_msgs/Vector3 angular
  float64 x                   # 无效
  float64 y                   # 无效
  float64 z                   # z轴角速度

1.4 设置灯光效果

服务名:get_battery_state 服务数据类型:aicar_controller/GetBatteryInfo.srv

uint8 MODE_NORMAL = 0 # 常亮
uint8 MODE_BLINK  = 1 # 闪烁
uint8 MODE_BREATH = 2 # 呼吸

uint8   mode_type   # 灯光模式
float64 frequency   # 模式频率(常亮模式自动忽略)
uint8 red_value   # 红色光亮度范围(0-255)
uint8 green_value # 绿色光亮度范围(0-255)
uint8 blue_value  # 蓝色光亮度范围(0-255)
---
bool success        # 设置是否成功
string message      # 异常log信息

response枚举: 1、设置失败(可能与MUC通信异常) res.success = false; res.message = “Can’t connect base’s MCU.”; 2、设置成功 res.success = true; res.message = “Set LED success.”;

1.5 底盘电池信息发布(仅电池剩余电量百分比有效,即:percentage)

话题名:battery_state sensor_msgs/BatteryState.msg

``` POWER_SUPPLY_STATUS_UNKNOWN = 0 # 未知 POWER_SUPPLY_STATUS_CHARGING = 1 # 充电 POWER_SUPPLY_STATUS_DISCHARGING = 2 # 放电中 POWER_SUPPLY_STATUS_NOT_CHARGING = 3 # 未充电 POWER_SUPPLY_STATUS_FULL = 4 # 满电 POWER_SUPPLY_HEALTH_UNKNOWN = 0 # 未知 POWER_SUPPLY_HEALTH_GOOD = 1 # 良好 POWER_SUPPLY_HEALTH_OVERHEAT = 2 # 过热 POWER_SUPPLY_HEALTH_DEAD = 3 # 没电 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4 # 过电压 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5 # 未知错误 POWER_SUPPLY_HEALTH_COLD = 6 # 过冷 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7 # POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8 # POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0 # 未知 POWER_SUPPLY_TECHNOLOGY_NIMH = 1 # Ni-MH battery 镍氢电池 POWER_SUPPLY_TECHNOLOGY_LION = 2 # Li-ion battery 锂离子电池 POWER_SUPPLY_TECHNOLOGY_LIPO = 3 # Li-Po battery 锂聚合物电池 POWER_SUPPLY_TECHNOLOGY_LIFE = 4 # li-Fe battery 锂铁电池 POWER_SUPPLY_TECHNOLOGY_NICD = 5 # NiCd battery 镍镉电池 POWER_SUPPLY_TECHNOLOGY_LIMN = 6 # LiMn battery 锂锰电池

std_msgs/Header header

File truncated at 100 lines see the full file

CHANGELOG

串口通讯协议(20200416):

1. 帧定义

1.1 STM32 Write数据帧

  起始位 指令版本 数据长度 里程脉冲 电池百分比 校验和
字节数 2 1 1 8 1 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x76(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + 电池百分比 的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

注:该版本电机编码率为270(一圈输出270个脉冲)

E: 电池百分比:剩余电量百分比(估计值)。 F: 校验和:起始位+指令版本+数据长度+里程脉冲+电池百分比

1.2 STM32 READ数据帧

  起始位 指令版本 数据长度 里程脉冲 LED控制 校验和
字节数 2 1 1 8 3 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x75(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + LED控制的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

E: LED的rgb控制

uint8_t  green_value;
uint8_t  red_value;
uint8_t  blue_value;

F: 校验和:起始位+指令版本+数据长度+里程脉冲+LED控制

1.3 校验和函数

bool checkCS(int len){
  uint8_t cs = 0;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_read_[i];
	}
  return pack_read_[len - 1] == cs;
}
void setCS(int len)
{
	uint8_t cs = 0x00;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_write_[i];
	}
	pack_write_[len - 1] = cs;
}

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged ucar_controller at Robotics Stack Exchange

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description 16th National College Student’s Intelligent Car Competition Code 第十六届智能汽车竞赛讯飞智慧餐厅代码
Checkout URI https://github.com/ht-hlf/car_competition.git
VCS Type git
VCS Version master
Last Updated 2023-01-27
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ucar_controller package

Additional Links

No additional links.

Maintainers

  • iflytek

Authors

No additional authors.

[TOC]

1. 全部功能

1.1 里程计与底盘的坐标变换是否发布由参数实时配置

参数名称:publish_odom_tf

  1. 设置为true: 发布 odom -> base_link的坐标变换
  2. 设置为false: 不发布 odom -> base_link的坐标变换

注,以下运动相关服务优先度大于实时运动控制(cmd_vel)当服务完成后才会继续执行实时控制。(手柄的优先级更高,不过不涉及web接口,此处不详细描述。手柄 > 运动服务 > cmd_vel)

1.2 停止运动服务

服务名:stop_move (基于速度、距离、角度的运动) 用途:调用后立即终止正在运行的time_movevel_dist_move。 并回到cmd控制模式 服务数据类型:std_srvs/Trigger.srv

---
bool success                  #运动结束时返回true,异常返回false
string message                #返回的字符串信息

返回枚举:

  1. 成功停止
res.success = true;
res.message = "Move stopped ";

  1. 不在move模式,不需要停止
res.success = false;
res.message = "Not in MOTOR_MODE_MOVE.";

1.3 实时控制

方式:发布话题。 话题名:cmd_vel msg类型:geometry_msgs/Twist.msg

geometry_msgs/Vector3 linear
  float64 x                   # x方向线速度
  float64 y                   # y方向线速度
  float64 z                   # 无效
geometry_msgs/Vector3 angular
  float64 x                   # 无效
  float64 y                   # 无效
  float64 z                   # z轴角速度

1.4 设置灯光效果

服务名:get_battery_state 服务数据类型:aicar_controller/GetBatteryInfo.srv

uint8 MODE_NORMAL = 0 # 常亮
uint8 MODE_BLINK  = 1 # 闪烁
uint8 MODE_BREATH = 2 # 呼吸

uint8   mode_type   # 灯光模式
float64 frequency   # 模式频率(常亮模式自动忽略)
uint8 red_value   # 红色光亮度范围(0-255)
uint8 green_value # 绿色光亮度范围(0-255)
uint8 blue_value  # 蓝色光亮度范围(0-255)
---
bool success        # 设置是否成功
string message      # 异常log信息

response枚举: 1、设置失败(可能与MUC通信异常) res.success = false; res.message = “Can’t connect base’s MCU.”; 2、设置成功 res.success = true; res.message = “Set LED success.”;

1.5 底盘电池信息发布(仅电池剩余电量百分比有效,即:percentage)

话题名:battery_state sensor_msgs/BatteryState.msg

``` POWER_SUPPLY_STATUS_UNKNOWN = 0 # 未知 POWER_SUPPLY_STATUS_CHARGING = 1 # 充电 POWER_SUPPLY_STATUS_DISCHARGING = 2 # 放电中 POWER_SUPPLY_STATUS_NOT_CHARGING = 3 # 未充电 POWER_SUPPLY_STATUS_FULL = 4 # 满电 POWER_SUPPLY_HEALTH_UNKNOWN = 0 # 未知 POWER_SUPPLY_HEALTH_GOOD = 1 # 良好 POWER_SUPPLY_HEALTH_OVERHEAT = 2 # 过热 POWER_SUPPLY_HEALTH_DEAD = 3 # 没电 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4 # 过电压 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5 # 未知错误 POWER_SUPPLY_HEALTH_COLD = 6 # 过冷 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7 # POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8 # POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0 # 未知 POWER_SUPPLY_TECHNOLOGY_NIMH = 1 # Ni-MH battery 镍氢电池 POWER_SUPPLY_TECHNOLOGY_LION = 2 # Li-ion battery 锂离子电池 POWER_SUPPLY_TECHNOLOGY_LIPO = 3 # Li-Po battery 锂聚合物电池 POWER_SUPPLY_TECHNOLOGY_LIFE = 4 # li-Fe battery 锂铁电池 POWER_SUPPLY_TECHNOLOGY_NICD = 5 # NiCd battery 镍镉电池 POWER_SUPPLY_TECHNOLOGY_LIMN = 6 # LiMn battery 锂锰电池

std_msgs/Header header

File truncated at 100 lines see the full file

CHANGELOG

串口通讯协议(20200416):

1. 帧定义

1.1 STM32 Write数据帧

  起始位 指令版本 数据长度 里程脉冲 电池百分比 校验和
字节数 2 1 1 8 1 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x76(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + 电池百分比 的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

注:该版本电机编码率为270(一圈输出270个脉冲)

E: 电池百分比:剩余电量百分比(估计值)。 F: 校验和:起始位+指令版本+数据长度+里程脉冲+电池百分比

1.2 STM32 READ数据帧

  起始位 指令版本 数据长度 里程脉冲 LED控制 校验和
字节数 2 1 1 8 3 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x75(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + LED控制的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

E: LED的rgb控制

uint8_t  green_value;
uint8_t  red_value;
uint8_t  blue_value;

F: 校验和:起始位+指令版本+数据长度+里程脉冲+LED控制

1.3 校验和函数

bool checkCS(int len){
  uint8_t cs = 0;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_read_[i];
	}
  return pack_read_[len - 1] == cs;
}
void setCS(int len)
{
	uint8_t cs = 0x00;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_write_[i];
	}
	pack_write_[len - 1] = cs;
}

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged ucar_controller at Robotics Stack Exchange

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description 16th National College Student’s Intelligent Car Competition Code 第十六届智能汽车竞赛讯飞智慧餐厅代码
Checkout URI https://github.com/ht-hlf/car_competition.git
VCS Type git
VCS Version master
Last Updated 2023-01-27
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ucar_controller package

Additional Links

No additional links.

Maintainers

  • iflytek

Authors

No additional authors.

[TOC]

1. 全部功能

1.1 里程计与底盘的坐标变换是否发布由参数实时配置

参数名称:publish_odom_tf

  1. 设置为true: 发布 odom -> base_link的坐标变换
  2. 设置为false: 不发布 odom -> base_link的坐标变换

注,以下运动相关服务优先度大于实时运动控制(cmd_vel)当服务完成后才会继续执行实时控制。(手柄的优先级更高,不过不涉及web接口,此处不详细描述。手柄 > 运动服务 > cmd_vel)

1.2 停止运动服务

服务名:stop_move (基于速度、距离、角度的运动) 用途:调用后立即终止正在运行的time_movevel_dist_move。 并回到cmd控制模式 服务数据类型:std_srvs/Trigger.srv

---
bool success                  #运动结束时返回true,异常返回false
string message                #返回的字符串信息

返回枚举:

  1. 成功停止
res.success = true;
res.message = "Move stopped ";

  1. 不在move模式,不需要停止
res.success = false;
res.message = "Not in MOTOR_MODE_MOVE.";

1.3 实时控制

方式:发布话题。 话题名:cmd_vel msg类型:geometry_msgs/Twist.msg

geometry_msgs/Vector3 linear
  float64 x                   # x方向线速度
  float64 y                   # y方向线速度
  float64 z                   # 无效
geometry_msgs/Vector3 angular
  float64 x                   # 无效
  float64 y                   # 无效
  float64 z                   # z轴角速度

1.4 设置灯光效果

服务名:get_battery_state 服务数据类型:aicar_controller/GetBatteryInfo.srv

uint8 MODE_NORMAL = 0 # 常亮
uint8 MODE_BLINK  = 1 # 闪烁
uint8 MODE_BREATH = 2 # 呼吸

uint8   mode_type   # 灯光模式
float64 frequency   # 模式频率(常亮模式自动忽略)
uint8 red_value   # 红色光亮度范围(0-255)
uint8 green_value # 绿色光亮度范围(0-255)
uint8 blue_value  # 蓝色光亮度范围(0-255)
---
bool success        # 设置是否成功
string message      # 异常log信息

response枚举: 1、设置失败(可能与MUC通信异常) res.success = false; res.message = “Can’t connect base’s MCU.”; 2、设置成功 res.success = true; res.message = “Set LED success.”;

1.5 底盘电池信息发布(仅电池剩余电量百分比有效,即:percentage)

话题名:battery_state sensor_msgs/BatteryState.msg

``` POWER_SUPPLY_STATUS_UNKNOWN = 0 # 未知 POWER_SUPPLY_STATUS_CHARGING = 1 # 充电 POWER_SUPPLY_STATUS_DISCHARGING = 2 # 放电中 POWER_SUPPLY_STATUS_NOT_CHARGING = 3 # 未充电 POWER_SUPPLY_STATUS_FULL = 4 # 满电 POWER_SUPPLY_HEALTH_UNKNOWN = 0 # 未知 POWER_SUPPLY_HEALTH_GOOD = 1 # 良好 POWER_SUPPLY_HEALTH_OVERHEAT = 2 # 过热 POWER_SUPPLY_HEALTH_DEAD = 3 # 没电 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4 # 过电压 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5 # 未知错误 POWER_SUPPLY_HEALTH_COLD = 6 # 过冷 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7 # POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8 # POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0 # 未知 POWER_SUPPLY_TECHNOLOGY_NIMH = 1 # Ni-MH battery 镍氢电池 POWER_SUPPLY_TECHNOLOGY_LION = 2 # Li-ion battery 锂离子电池 POWER_SUPPLY_TECHNOLOGY_LIPO = 3 # Li-Po battery 锂聚合物电池 POWER_SUPPLY_TECHNOLOGY_LIFE = 4 # li-Fe battery 锂铁电池 POWER_SUPPLY_TECHNOLOGY_NICD = 5 # NiCd battery 镍镉电池 POWER_SUPPLY_TECHNOLOGY_LIMN = 6 # LiMn battery 锂锰电池

std_msgs/Header header

File truncated at 100 lines see the full file

CHANGELOG

串口通讯协议(20200416):

1. 帧定义

1.1 STM32 Write数据帧

  起始位 指令版本 数据长度 里程脉冲 电池百分比 校验和
字节数 2 1 1 8 1 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x76(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + 电池百分比 的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

注:该版本电机编码率为270(一圈输出270个脉冲)

E: 电池百分比:剩余电量百分比(估计值)。 F: 校验和:起始位+指令版本+数据长度+里程脉冲+电池百分比

1.2 STM32 READ数据帧

  起始位 指令版本 数据长度 里程脉冲 LED控制 校验和
字节数 2 1 1 8 3 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x75(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + LED控制的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

E: LED的rgb控制

uint8_t  green_value;
uint8_t  red_value;
uint8_t  blue_value;

F: 校验和:起始位+指令版本+数据长度+里程脉冲+LED控制

1.3 校验和函数

bool checkCS(int len){
  uint8_t cs = 0;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_read_[i];
	}
  return pack_read_[len - 1] == cs;
}
void setCS(int len)
{
	uint8_t cs = 0x00;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_write_[i];
	}
	pack_write_[len - 1] = cs;
}

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged ucar_controller at Robotics Stack Exchange

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description 16th National College Student’s Intelligent Car Competition Code 第十六届智能汽车竞赛讯飞智慧餐厅代码
Checkout URI https://github.com/ht-hlf/car_competition.git
VCS Type git
VCS Version master
Last Updated 2023-01-27
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ucar_controller package

Additional Links

No additional links.

Maintainers

  • iflytek

Authors

No additional authors.

[TOC]

1. 全部功能

1.1 里程计与底盘的坐标变换是否发布由参数实时配置

参数名称:publish_odom_tf

  1. 设置为true: 发布 odom -> base_link的坐标变换
  2. 设置为false: 不发布 odom -> base_link的坐标变换

注,以下运动相关服务优先度大于实时运动控制(cmd_vel)当服务完成后才会继续执行实时控制。(手柄的优先级更高,不过不涉及web接口,此处不详细描述。手柄 > 运动服务 > cmd_vel)

1.2 停止运动服务

服务名:stop_move (基于速度、距离、角度的运动) 用途:调用后立即终止正在运行的time_movevel_dist_move。 并回到cmd控制模式 服务数据类型:std_srvs/Trigger.srv

---
bool success                  #运动结束时返回true,异常返回false
string message                #返回的字符串信息

返回枚举:

  1. 成功停止
res.success = true;
res.message = "Move stopped ";

  1. 不在move模式,不需要停止
res.success = false;
res.message = "Not in MOTOR_MODE_MOVE.";

1.3 实时控制

方式:发布话题。 话题名:cmd_vel msg类型:geometry_msgs/Twist.msg

geometry_msgs/Vector3 linear
  float64 x                   # x方向线速度
  float64 y                   # y方向线速度
  float64 z                   # 无效
geometry_msgs/Vector3 angular
  float64 x                   # 无效
  float64 y                   # 无效
  float64 z                   # z轴角速度

1.4 设置灯光效果

服务名:get_battery_state 服务数据类型:aicar_controller/GetBatteryInfo.srv

uint8 MODE_NORMAL = 0 # 常亮
uint8 MODE_BLINK  = 1 # 闪烁
uint8 MODE_BREATH = 2 # 呼吸

uint8   mode_type   # 灯光模式
float64 frequency   # 模式频率(常亮模式自动忽略)
uint8 red_value   # 红色光亮度范围(0-255)
uint8 green_value # 绿色光亮度范围(0-255)
uint8 blue_value  # 蓝色光亮度范围(0-255)
---
bool success        # 设置是否成功
string message      # 异常log信息

response枚举: 1、设置失败(可能与MUC通信异常) res.success = false; res.message = “Can’t connect base’s MCU.”; 2、设置成功 res.success = true; res.message = “Set LED success.”;

1.5 底盘电池信息发布(仅电池剩余电量百分比有效,即:percentage)

话题名:battery_state sensor_msgs/BatteryState.msg

``` POWER_SUPPLY_STATUS_UNKNOWN = 0 # 未知 POWER_SUPPLY_STATUS_CHARGING = 1 # 充电 POWER_SUPPLY_STATUS_DISCHARGING = 2 # 放电中 POWER_SUPPLY_STATUS_NOT_CHARGING = 3 # 未充电 POWER_SUPPLY_STATUS_FULL = 4 # 满电 POWER_SUPPLY_HEALTH_UNKNOWN = 0 # 未知 POWER_SUPPLY_HEALTH_GOOD = 1 # 良好 POWER_SUPPLY_HEALTH_OVERHEAT = 2 # 过热 POWER_SUPPLY_HEALTH_DEAD = 3 # 没电 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4 # 过电压 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5 # 未知错误 POWER_SUPPLY_HEALTH_COLD = 6 # 过冷 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7 # POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8 # POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0 # 未知 POWER_SUPPLY_TECHNOLOGY_NIMH = 1 # Ni-MH battery 镍氢电池 POWER_SUPPLY_TECHNOLOGY_LION = 2 # Li-ion battery 锂离子电池 POWER_SUPPLY_TECHNOLOGY_LIPO = 3 # Li-Po battery 锂聚合物电池 POWER_SUPPLY_TECHNOLOGY_LIFE = 4 # li-Fe battery 锂铁电池 POWER_SUPPLY_TECHNOLOGY_NICD = 5 # NiCd battery 镍镉电池 POWER_SUPPLY_TECHNOLOGY_LIMN = 6 # LiMn battery 锂锰电池

std_msgs/Header header

File truncated at 100 lines see the full file

CHANGELOG

串口通讯协议(20200416):

1. 帧定义

1.1 STM32 Write数据帧

  起始位 指令版本 数据长度 里程脉冲 电池百分比 校验和
字节数 2 1 1 8 1 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x76(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + 电池百分比 的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

注:该版本电机编码率为270(一圈输出270个脉冲)

E: 电池百分比:剩余电量百分比(估计值)。 F: 校验和:起始位+指令版本+数据长度+里程脉冲+电池百分比

1.2 STM32 READ数据帧

  起始位 指令版本 数据长度 里程脉冲 LED控制 校验和
字节数 2 1 1 8 3 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x75(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + LED控制的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

E: LED的rgb控制

uint8_t  green_value;
uint8_t  red_value;
uint8_t  blue_value;

F: 校验和:起始位+指令版本+数据长度+里程脉冲+LED控制

1.3 校验和函数

bool checkCS(int len){
  uint8_t cs = 0;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_read_[i];
	}
  return pack_read_[len - 1] == cs;
}
void setCS(int len)
{
	uint8_t cs = 0x00;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_write_[i];
	}
	pack_write_[len - 1] = cs;
}

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged ucar_controller at Robotics Stack Exchange

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.

Package Summary

Tags No category tags.
Version 1.1.0
License BSD
Build type CATKIN
Use RECOMMENDED

Repository Summary

Description 16th National College Student’s Intelligent Car Competition Code 第十六届智能汽车竞赛讯飞智慧餐厅代码
Checkout URI https://github.com/ht-hlf/car_competition.git
VCS Type git
VCS Version master
Last Updated 2023-01-27
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

The ucar_controller package

Additional Links

No additional links.

Maintainers

  • iflytek

Authors

No additional authors.

[TOC]

1. 全部功能

1.1 里程计与底盘的坐标变换是否发布由参数实时配置

参数名称:publish_odom_tf

  1. 设置为true: 发布 odom -> base_link的坐标变换
  2. 设置为false: 不发布 odom -> base_link的坐标变换

注,以下运动相关服务优先度大于实时运动控制(cmd_vel)当服务完成后才会继续执行实时控制。(手柄的优先级更高,不过不涉及web接口,此处不详细描述。手柄 > 运动服务 > cmd_vel)

1.2 停止运动服务

服务名:stop_move (基于速度、距离、角度的运动) 用途:调用后立即终止正在运行的time_movevel_dist_move。 并回到cmd控制模式 服务数据类型:std_srvs/Trigger.srv

---
bool success                  #运动结束时返回true,异常返回false
string message                #返回的字符串信息

返回枚举:

  1. 成功停止
res.success = true;
res.message = "Move stopped ";

  1. 不在move模式,不需要停止
res.success = false;
res.message = "Not in MOTOR_MODE_MOVE.";

1.3 实时控制

方式:发布话题。 话题名:cmd_vel msg类型:geometry_msgs/Twist.msg

geometry_msgs/Vector3 linear
  float64 x                   # x方向线速度
  float64 y                   # y方向线速度
  float64 z                   # 无效
geometry_msgs/Vector3 angular
  float64 x                   # 无效
  float64 y                   # 无效
  float64 z                   # z轴角速度

1.4 设置灯光效果

服务名:get_battery_state 服务数据类型:aicar_controller/GetBatteryInfo.srv

uint8 MODE_NORMAL = 0 # 常亮
uint8 MODE_BLINK  = 1 # 闪烁
uint8 MODE_BREATH = 2 # 呼吸

uint8   mode_type   # 灯光模式
float64 frequency   # 模式频率(常亮模式自动忽略)
uint8 red_value   # 红色光亮度范围(0-255)
uint8 green_value # 绿色光亮度范围(0-255)
uint8 blue_value  # 蓝色光亮度范围(0-255)
---
bool success        # 设置是否成功
string message      # 异常log信息

response枚举: 1、设置失败(可能与MUC通信异常) res.success = false; res.message = “Can’t connect base’s MCU.”; 2、设置成功 res.success = true; res.message = “Set LED success.”;

1.5 底盘电池信息发布(仅电池剩余电量百分比有效,即:percentage)

话题名:battery_state sensor_msgs/BatteryState.msg

``` POWER_SUPPLY_STATUS_UNKNOWN = 0 # 未知 POWER_SUPPLY_STATUS_CHARGING = 1 # 充电 POWER_SUPPLY_STATUS_DISCHARGING = 2 # 放电中 POWER_SUPPLY_STATUS_NOT_CHARGING = 3 # 未充电 POWER_SUPPLY_STATUS_FULL = 4 # 满电 POWER_SUPPLY_HEALTH_UNKNOWN = 0 # 未知 POWER_SUPPLY_HEALTH_GOOD = 1 # 良好 POWER_SUPPLY_HEALTH_OVERHEAT = 2 # 过热 POWER_SUPPLY_HEALTH_DEAD = 3 # 没电 POWER_SUPPLY_HEALTH_OVERVOLTAGE = 4 # 过电压 POWER_SUPPLY_HEALTH_UNSPEC_FAILURE = 5 # 未知错误 POWER_SUPPLY_HEALTH_COLD = 6 # 过冷 POWER_SUPPLY_HEALTH_WATCHDOG_TIMER_EXPIRE = 7 # POWER_SUPPLY_HEALTH_SAFETY_TIMER_EXPIRE = 8 # POWER_SUPPLY_TECHNOLOGY_UNKNOWN = 0 # 未知 POWER_SUPPLY_TECHNOLOGY_NIMH = 1 # Ni-MH battery 镍氢电池 POWER_SUPPLY_TECHNOLOGY_LION = 2 # Li-ion battery 锂离子电池 POWER_SUPPLY_TECHNOLOGY_LIPO = 3 # Li-Po battery 锂聚合物电池 POWER_SUPPLY_TECHNOLOGY_LIFE = 4 # li-Fe battery 锂铁电池 POWER_SUPPLY_TECHNOLOGY_NICD = 5 # NiCd battery 镍镉电池 POWER_SUPPLY_TECHNOLOGY_LIMN = 6 # LiMn battery 锂锰电池

std_msgs/Header header

File truncated at 100 lines see the full file

CHANGELOG

串口通讯协议(20200416):

1. 帧定义

1.1 STM32 Write数据帧

  起始位 指令版本 数据长度 里程脉冲 电池百分比 校验和
字节数 2 1 1 8 1 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x76(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + 电池百分比 的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

注:该版本电机编码率为270(一圈输出270个脉冲)

E: 电池百分比:剩余电量百分比(估计值)。 F: 校验和:起始位+指令版本+数据长度+里程脉冲+电池百分比

1.2 STM32 READ数据帧

  起始位 指令版本 数据长度 里程脉冲 LED控制 校验和
字节数 2 1 1 8 3 1
数值 A B C D E F

A: 起始位: 0x63(l) 0x75(h) B: 指令版本: 待定============================= C: 数据长度: 里程脉冲 + LED控制的数据长度。 D: 里程脉冲:4个轮式里程计的脉冲数据。数值代表每个通讯周期内编码器累计的脉冲读数(正负区分正反转)。

int16_t pluse_w1;
int16_t pluse_w2;
int16_t pluse_w3;
int16_t pluse_w4;

E: LED的rgb控制

uint8_t  green_value;
uint8_t  red_value;
uint8_t  blue_value;

F: 校验和:起始位+指令版本+数据长度+里程脉冲+LED控制

1.3 校验和函数

bool checkCS(int len){
  uint8_t cs = 0;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_read_[i];
	}
  return pack_read_[len - 1] == cs;
}
void setCS(int len)
{
	uint8_t cs = 0x00;
	for (size_t i = 0; i < len - 1; i++)
	{
		cs += pack_write_[i];
	}
	pack_write_[len - 1] = cs;
}

Dependant Packages

No known dependants.

Launch files

Messages

No message files found.

Plugins

No plugins found.

Recent questions tagged ucar_controller at Robotics Stack Exchange