|
@@ -273,7 +273,7 @@ void Dispatch_process::Main()
|
|
{
|
|
{
|
|
std::this_thread::sleep_for(std::chrono::microseconds(1));
|
|
std::this_thread::sleep_for(std::chrono::microseconds(1));
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
|
std::this_thread::sleep_for(std::chrono::milliseconds(1));
|
|
-// std::this_thread::sleep_for(std::chrono::seconds(1));
|
|
|
|
|
|
+ std::this_thread::sleep_for(std::chrono::seconds(1));
|
|
// std::cout << " huli test :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: " << " m_dispatch_process_status = " << m_dispatch_process_status << std::endl;
|
|
// std::cout << " huli test :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: " << " m_dispatch_process_status = " << m_dispatch_process_status << std::endl;
|
|
|
|
|
|
switch ( (Dispatch_process_status)m_dispatch_process_status )
|
|
switch ( (Dispatch_process_status)m_dispatch_process_status )
|
|
@@ -976,18 +976,7 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
check_task_status(m_dispatch_carrier_node.mp_main_carrier_task, m_dispatch_carrier_node.m_dispatch_control_status);
|
|
check_task_status(m_dispatch_carrier_node.mp_main_carrier_task, m_dispatch_carrier_node.m_dispatch_control_status);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CARRIER_PICKUP_29://小跑车 进入车位
|
|
|
|
- {
|
|
|
|
- carrier_move_y(get_dispatch_control_command_key(m_dispatch_carrier_node), tp_main_carrier, tp_main_carrier_task, tp_dispatch_coordinates, tp_dispatch_coordinates->m_carrier_default_y_leave);
|
|
|
|
- m_dispatch_carrier_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_carrier_node.m_dispatch_control_status+1);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- case DISPATCH_CARRIER_PICKUP_30:
|
|
|
|
- {
|
|
|
|
- check_task_status(m_dispatch_carrier_node.mp_main_carrier_task, m_dispatch_carrier_node.m_dispatch_control_status);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- case DISPATCH_CARRIER_PICKUP_31://把任务从一级升到三级, 准备取车
|
|
|
|
|
|
+ case DISPATCH_CARRIER_PICKUP_29://把任务从一级升到三级, 准备取车
|
|
{
|
|
{
|
|
m_dispatch_carrier_node.m_error = m_dispatch_carrier_node.mp_main_carrier->change_task_level(Dispatch_device_base::Dispatch_task_level::DISPATCH_TASK_ONE_LEVEL, Dispatch_device_base::Dispatch_task_level::DISPATCH_TASK_THREE_LEVEL);
|
|
m_dispatch_carrier_node.m_error = m_dispatch_carrier_node.mp_main_carrier->change_task_level(Dispatch_device_base::Dispatch_task_level::DISPATCH_TASK_ONE_LEVEL, Dispatch_device_base::Dispatch_task_level::DISPATCH_TASK_THREE_LEVEL);
|
|
if ( m_dispatch_carrier_node.m_error == Error_code::SUCCESS )
|
|
if ( m_dispatch_carrier_node.m_error == Error_code::SUCCESS )
|
|
@@ -1000,6 +989,17 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
+ case DISPATCH_CARRIER_PICKUP_30://小跑车 进入车位
|
|
|
|
+ {
|
|
|
|
+ carrier_move_y(get_dispatch_control_command_key(m_dispatch_carrier_node), tp_main_carrier, tp_main_carrier_task, tp_dispatch_coordinates, tp_dispatch_coordinates->m_carrier_default_y_leave);
|
|
|
|
+ m_dispatch_carrier_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_carrier_node.m_dispatch_control_status+1);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ case DISPATCH_CARRIER_PICKUP_31:
|
|
|
|
+ {
|
|
|
|
+ check_task_status(m_dispatch_carrier_node.mp_main_carrier_task, m_dispatch_carrier_node.m_dispatch_control_status);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
case DISPATCH_CARRIER_PICKUP_32://小跑车 夹车
|
|
case DISPATCH_CARRIER_PICKUP_32://小跑车 夹车
|
|
{
|
|
{
|
|
carrier_move_c(get_dispatch_control_command_key(m_dispatch_carrier_node), tp_main_carrier, tp_main_carrier_task, tp_dispatch_coordinates, Carrier_task::Clamp_motion::E_CLAMP_TIGHT);
|
|
carrier_move_c(get_dispatch_control_command_key(m_dispatch_carrier_node), tp_main_carrier, tp_main_carrier_task, tp_dispatch_coordinates, Carrier_task::Clamp_motion::E_CLAMP_TIGHT);
|
|
@@ -1305,7 +1305,7 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
case DISPATCH_CARRIER_PICKUP_52://等待机器人把车从搬运器上面取走
|
|
case DISPATCH_CARRIER_PICKUP_52://等待机器人把车从搬运器上面取走
|
|
{
|
|
{
|
|
// 等待机器人把车从搬运器上面取走
|
|
// 等待机器人把车从搬运器上面取走
|
|
- if ( m_dispatch_catcher_node.m_dispatch_control_status >= DISPATCH_CATCHER_PICKUP_21 )
|
|
|
|
|
|
+ if ( m_dispatch_catcher_node.m_dispatch_control_status >= DISPATCH_CATCHER_PICKUP_22 )
|
|
{
|
|
{
|
|
if ( tp_main_carrier->get_device_id() == 2 )
|
|
if ( tp_main_carrier->get_device_id() == 2 )
|
|
{
|
|
{
|
|
@@ -1317,6 +1317,7 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
m_dispatch_carrier_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_carrier_node.m_dispatch_control_status+1);
|
|
m_dispatch_carrier_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_carrier_node.m_dispatch_control_status+1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ //else 无限等待
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
case DISPATCH_CARRIER_PICKUP_53://搬运器退回电梯井
|
|
case DISPATCH_CARRIER_PICKUP_53://搬运器退回电梯井
|
|
@@ -1400,7 +1401,7 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
{
|
|
{
|
|
t_following_x = tp_dispatch_coordinates->m_carrier_coordinates_map[m_dispatch_destination+1].x;
|
|
t_following_x = tp_dispatch_coordinates->m_carrier_coordinates_map[m_dispatch_destination+1].x;
|
|
}
|
|
}
|
|
- carrier_move_x(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_carrier, tp_main_carrier_task, tp_dispatch_coordinates, t_following_x);
|
|
|
|
|
|
+ carrier_move_x(get_dispatch_control_command_key(m_dispatch_carrier_node), tp_main_carrier, tp_main_carrier_task, tp_dispatch_coordinates, t_following_x);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
case DISPATCH_CARRIER_PICKUP_71:
|
|
case DISPATCH_CARRIER_PICKUP_71:
|
|
@@ -1417,10 +1418,10 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- if ( m_dispatch_catcher_node.m_dispatch_control_status >= DISPATCH_CATCHER_PICKUP_31 )
|
|
|
|
|
|
+ if ( m_dispatch_catcher_node.m_dispatch_control_status >= DISPATCH_CATCHER_PICKUP_34 )
|
|
{
|
|
{
|
|
float t_x = tp_dispatch_coordinates->m_carrier_coordinates_map[m_dispatch_destination].x;
|
|
float t_x = tp_dispatch_coordinates->m_carrier_coordinates_map[m_dispatch_destination].x;
|
|
- carrier_move_x(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_carrier, tp_main_carrier_task, tp_dispatch_coordinates, t_x);
|
|
|
|
|
|
+ carrier_move_x(get_dispatch_control_command_key(m_dispatch_carrier_node), tp_main_carrier, tp_main_carrier_task, tp_dispatch_coordinates, t_x);
|
|
m_dispatch_carrier_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_carrier_node.m_dispatch_control_status+1);
|
|
m_dispatch_carrier_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_carrier_node.m_dispatch_control_status+1);
|
|
}
|
|
}
|
|
//else 无限等待
|
|
//else 无限等待
|
|
@@ -1564,7 +1565,7 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
}
|
|
}
|
|
case DISPATCH_CATCHER_PICKUP_2://机器人 准备开始, 需要同步任务单和设备真实数据
|
|
case DISPATCH_CATCHER_PICKUP_2://机器人 准备开始, 需要同步任务单和设备真实数据
|
|
{
|
|
{
|
|
- //搬运器 准备开始, 需要同步任务单和设备真实数据.//注意了:连接设备只是预约, 设备不一定立刻执行.所以需要在连接成功之后进行数据同步
|
|
|
|
|
|
+ //机器人 准备开始, 需要同步任务单和设备真实数据.//注意了:连接设备只是预约, 设备不一定立刻执行.所以需要在连接成功之后进行数据同步
|
|
catcher_ready_to_start(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_catcher, tp_main_catcher_task, tp_dispatch_coordinates);
|
|
catcher_ready_to_start(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_catcher, tp_main_catcher_task, tp_dispatch_coordinates);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
break;
|
|
break;
|
|
@@ -1677,7 +1678,6 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
}
|
|
}
|
|
//else 无限等待
|
|
//else 无限等待
|
|
-
|
|
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
case DISPATCH_CATCHER_PICKUP_10://机器手调整到 对接搬运器的姿态
|
|
case DISPATCH_CATCHER_PICKUP_10://机器手调整到 对接搬运器的姿态
|
|
@@ -1734,26 +1734,40 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_12://机器手 z轴下降, 空间加锁
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_12://机器手 准备下降抓车之前, 等待搬运器就位, 然后把一级任务升到三级
|
|
{
|
|
{
|
|
- //等待搬运器就位, 2楼交接的空间由搬运器加锁, 机器人下降时就不判断了, 强制加锁即可.
|
|
|
|
- if ( m_dispatch_carrier_node.m_dispatch_control_status >=999 )
|
|
|
|
|
|
+ //等待搬运器就位, 把一级任务升到三级
|
|
|
|
+ if ( m_dispatch_carrier_node.m_dispatch_control_status >= Dispatch_process::Dispatch_control_status::DISPATCH_CARRIER_PICKUP_52 )
|
|
{
|
|
{
|
|
- if ( m_dispatch_catcher_node.m_following_flag )
|
|
|
|
|
|
+ m_dispatch_catcher_node.m_error = m_dispatch_catcher_node.mp_main_catcher->change_task_level(Dispatch_device_base::Dispatch_task_level::DISPATCH_TASK_ONE_LEVEL, Dispatch_device_base::Dispatch_task_level::DISPATCH_TASK_THREE_LEVEL);
|
|
|
|
+ if ( m_dispatch_catcher_node.m_error == Error_code::SUCCESS )
|
|
{
|
|
{
|
|
- int t_terminal = m_dispatch_destination - 1100;
|
|
|
|
- int temp = (t_terminal-1)%2;
|
|
|
|
- int t_column = 4 + ((t_terminal-1)/2)*3 + temp*2 -1;
|
|
|
|
- m_dispatch_catcher_node.m_error = tp_dispatch_coordinates->catcher_force_space_lock(0, t_column-1,
|
|
|
|
- 2, t_column+1,
|
|
|
|
- tp_main_catcher->get_device_id());
|
|
|
|
|
|
+ m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ m_dispatch_catcher_node.m_dispatch_control_status = Dispatch_process::Dispatch_control_status::DISPATCH_CONTROL_FAULT;
|
|
}
|
|
}
|
|
- m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
|
|
}
|
|
}
|
|
//else 无限等待
|
|
//else 无限等待
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_13://机器手 z轴下降
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_13://机器手 z轴下降, 空间加锁
|
|
|
|
+ {
|
|
|
|
+ //2楼交接的空间已经由搬运器加锁, 机器人下降时就不判断了, 强制加锁即可.
|
|
|
|
+ if ( m_dispatch_catcher_node.m_following_flag )//去3楼取车不用加锁
|
|
|
|
+ {
|
|
|
|
+ int t_terminal = m_dispatch_destination - 1100;
|
|
|
|
+ int temp = (t_terminal-1)%2;
|
|
|
|
+ int t_column = 4 + ((t_terminal-1)/2)*3 + temp*2 -1;
|
|
|
|
+ m_dispatch_catcher_node.m_error = tp_dispatch_coordinates->catcher_force_space_lock(0, t_column-1,
|
|
|
|
+ 2, t_column+1,
|
|
|
|
+ tp_main_catcher->get_device_id());
|
|
|
|
+ }
|
|
|
|
+ m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_14://机器手 z轴下降
|
|
{
|
|
{
|
|
float t_z = 0;
|
|
float t_z = 0;
|
|
if ( m_dispatch_catcher_node.m_following_flag )
|
|
if ( m_dispatch_catcher_node.m_following_flag )
|
|
@@ -1770,12 +1784,12 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_14:
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_15:
|
|
{
|
|
{
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_15://修正轴距, 如果轴距大于3000mm, 那么就要修正轴距.
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_16://修正轴距, 如果轴距大于3000mm, 那么就要修正轴距.
|
|
{
|
|
{
|
|
float temp_wheel_base = tp_main_catcher->m_actual_d1 + tp_main_catcher->m_actual_d2 + tp_dispatch_coordinates->m_catcher_d1_d2_distance;
|
|
float temp_wheel_base = tp_main_catcher->m_actual_d1 + tp_main_catcher->m_actual_d2 + tp_dispatch_coordinates->m_catcher_d1_d2_distance;
|
|
//修正轴距, 如果轴距大于3000mm, 那么就要修正轴距.
|
|
//修正轴距, 如果轴距大于3000mm, 那么就要修正轴距.
|
|
@@ -1790,23 +1804,23 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_16:
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_17:
|
|
{
|
|
{
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_17://机器手 夹车
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_18://机器手 夹车
|
|
{
|
|
{
|
|
catcher_move_c(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_catcher, tp_main_catcher_task, tp_dispatch_coordinates, Catcher_task::Clamp_motion::E_CLAMP_TIGHT);
|
|
catcher_move_c(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_catcher, tp_main_catcher_task, tp_dispatch_coordinates, Catcher_task::Clamp_motion::E_CLAMP_TIGHT);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_18:
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_19:
|
|
{
|
|
{
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_19://机器手 z轴上升, 上升190mm就足以
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_20://机器手 z轴上升, 上升190mm就足以
|
|
{
|
|
{
|
|
float t_z = 0;
|
|
float t_z = 0;
|
|
if ( m_dispatch_catcher_node.m_following_flag )
|
|
if ( m_dispatch_catcher_node.m_following_flag )
|
|
@@ -1821,12 +1835,12 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_20:
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_21:
|
|
{
|
|
{
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_21://机器手调整到 准备把车放到地面的姿态
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_22://机器手调整到 准备把车放到地面的姿态
|
|
{
|
|
{
|
|
float t_x = tp_dispatch_coordinates->m_carrier_coordinates_map[m_dispatch_destination].x;
|
|
float t_x = tp_dispatch_coordinates->m_carrier_coordinates_map[m_dispatch_destination].x;
|
|
float t_y = tp_dispatch_coordinates->m_carrier_coordinates_map[m_dispatch_destination].y;
|
|
float t_y = tp_dispatch_coordinates->m_carrier_coordinates_map[m_dispatch_destination].y;
|
|
@@ -1843,46 +1857,70 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_22:
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_23:
|
|
{
|
|
{
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_23://机器手 z轴下降 到地面放车
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_24://等待搬运器离开后, 机器人就可以下降了
|
|
{
|
|
{
|
|
- float t_z = tp_dispatch_coordinates->m_catcher_1th_floor_z;
|
|
|
|
//等待搬运器离开后, 机器人就可以下降了
|
|
//等待搬运器离开后, 机器人就可以下降了
|
|
- if ( m_dispatch_carrier_node.m_dispatch_control_status >=999 )
|
|
|
|
|
|
+ if ( (m_dispatch_carrier_node.m_dispatch_control_status >= Dispatch_process::Dispatch_control_status::DISPATCH_CARRIER_PICKUP_55 &&
|
|
|
|
+ m_dispatch_carrier_node.m_dispatch_control_status <= Dispatch_process::Dispatch_control_status::DISPATCH_CARRIER_PICKUP_57)
|
|
|
|
+ || (m_dispatch_carrier_node.m_dispatch_control_status >= Dispatch_process::Dispatch_control_status::DISPATCH_CARRIER_PICKUP_72 &&
|
|
|
|
+ m_dispatch_carrier_node.m_dispatch_control_status <= Dispatch_process::Dispatch_control_status::DISPATCH_CARRIER_PICKUP_74)
|
|
|
|
+ || (m_dispatch_carrier_node.m_dispatch_control_status == Dispatch_process::Dispatch_control_status::DISPATCH_CARRIER_PICKUP_END) )
|
|
{
|
|
{
|
|
- catcher_move_z(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_catcher, tp_main_catcher_task, tp_dispatch_coordinates, t_z);
|
|
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
}
|
|
}
|
|
- else if(m_dispatch_carrier_node.m_dispatch_control_status >=998 &&
|
|
|
|
|
|
+ else if(m_dispatch_carrier_node.m_dispatch_control_status == Dispatch_process::Dispatch_control_status::DISPATCH_CARRIER_PICKUP_54 &&
|
|
Common_data::approximate_difference(tp_main_carrier->m_actual_x, tp_main_catcher->m_actual_x, tp_dispatch_coordinates->m_separated_distance_x) == false )
|
|
Common_data::approximate_difference(tp_main_carrier->m_actual_x, tp_main_catcher->m_actual_x, tp_dispatch_coordinates->m_separated_distance_x) == false )
|
|
{
|
|
{
|
|
- catcher_move_z(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_catcher, tp_main_catcher_task, tp_dispatch_coordinates, t_z);
|
|
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
}
|
|
}
|
|
//else 无限等待
|
|
//else 无限等待
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_24:
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_25://机器人z轴下降, 判断空间锁
|
|
|
|
+ {
|
|
|
|
+ int t_terminal = m_dispatch_destination - 1100;
|
|
|
|
+ int temp = (t_terminal-1)%2;
|
|
|
|
+ int t_column = 4 + ((t_terminal-1)/2)*3 + temp*2 -1;
|
|
|
|
+ m_dispatch_catcher_node.m_error = tp_dispatch_coordinates->catcher_try_space_lock(0, t_column-1,
|
|
|
|
+ 2, t_column+1,
|
|
|
|
+ tp_main_catcher->get_device_id());
|
|
|
|
+
|
|
|
|
+ //判断结果
|
|
|
|
+ if ( m_dispatch_catcher_node.m_error == Error_code::SUCCESS )
|
|
|
|
+ {
|
|
|
|
+ m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
|
|
+ }
|
|
|
|
+ //else 无限等待
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_26://机器人下降到地面放车
|
|
|
|
+ {
|
|
|
|
+ catcher_move_z(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_catcher, tp_main_catcher_task, tp_dispatch_coordinates, tp_dispatch_coordinates->m_catcher_1th_floor_z);
|
|
|
|
+ m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_27:
|
|
{
|
|
{
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_25://机器手 松开夹杆
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_28://机器手 松开夹杆
|
|
{
|
|
{
|
|
catcher_move_c(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_catcher, tp_main_catcher_task, tp_dispatch_coordinates, Catcher_task::Clamp_motion::E_CLAMP_LOOSE);
|
|
catcher_move_c(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_catcher, tp_main_catcher_task, tp_dispatch_coordinates, Catcher_task::Clamp_motion::E_CLAMP_LOOSE);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_26:
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_29:
|
|
{
|
|
{
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_27://机器手调整到 正常待机的姿态(调节夹杆和轴距)
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_30://机器手调整到 正常待机的姿态(调节夹杆和轴距)
|
|
{
|
|
{
|
|
if ( tp_main_catcher->m_actual_clamp_motion1 != Dispatch_device_base::Clamp_motion::E_CLAMP_LOOSE ||
|
|
if ( tp_main_catcher->m_actual_clamp_motion1 != Dispatch_device_base::Clamp_motion::E_CLAMP_LOOSE ||
|
|
tp_main_catcher->m_actual_d1 + tp_main_catcher->m_actual_d2 + tp_dispatch_coordinates->m_catcher_d1_d2_distance >
|
|
tp_main_catcher->m_actual_d1 + tp_main_catcher->m_actual_d2 + tp_dispatch_coordinates->m_catcher_d1_d2_distance >
|
|
@@ -1898,18 +1936,18 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_28:
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_31:
|
|
{
|
|
{
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_29://机器手 调整z轴, z轴上升到4楼
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_32://机器手 调整z轴, z轴上升到4楼
|
|
{
|
|
{
|
|
catcher_move_z(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_catcher, tp_main_catcher_task, tp_dispatch_coordinates, tp_dispatch_coordinates->m_catcher_4th_floor_z);
|
|
catcher_move_z(get_dispatch_control_command_key(m_dispatch_catcher_node), tp_main_catcher, tp_main_catcher_task, tp_dispatch_coordinates, tp_dispatch_coordinates->m_catcher_4th_floor_z);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
m_dispatch_catcher_node.m_dispatch_control_status = (Dispatch_process::Dispatch_control_status)(m_dispatch_catcher_node.m_dispatch_control_status+1);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_30://机器人释放 空间锁
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_33://机器人释放 空间锁
|
|
{
|
|
{
|
|
m_dispatch_catcher_node.m_error = check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
m_dispatch_catcher_node.m_error = check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
if ( m_dispatch_catcher_node.m_error == Error_code::SUCCESS )
|
|
if ( m_dispatch_catcher_node.m_error == Error_code::SUCCESS )
|
|
@@ -1918,7 +1956,7 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_31://3楼的搬运器跟随到机器人下方
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_34://3楼的搬运器跟随到机器人下方
|
|
{
|
|
{
|
|
//如果后面有一级存车任务, 那么就跳过
|
|
//如果后面有一级存车任务, 那么就跳过
|
|
if ( m_dispatch_catcher_node.m_following_flag &&
|
|
if ( m_dispatch_catcher_node.m_following_flag &&
|
|
@@ -1934,12 +1972,12 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_32:
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_35:
|
|
{
|
|
{
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
check_task_status(m_dispatch_catcher_node.mp_main_catcher_task, m_dispatch_catcher_node.m_dispatch_control_status);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- case DISPATCH_CATCHER_PICKUP_33://主搬运器 断连
|
|
|
|
|
|
+ case DISPATCH_CATCHER_PICKUP_36://主搬运器 断连
|
|
{
|
|
{
|
|
disconnect_dispatch_device(m_dispatch_catcher_node.mp_main_catcher, m_dispatch_catcher_node.mp_main_catcher_task);
|
|
disconnect_dispatch_device(m_dispatch_catcher_node.mp_main_catcher, m_dispatch_catcher_node.mp_main_catcher_task);
|
|
if ( m_dispatch_catcher_node.m_following_flag )
|
|
if ( m_dispatch_catcher_node.m_following_flag )
|
|
@@ -1961,6 +1999,47 @@ Error_manager Dispatch_process::dispatch_control_motion_pickup()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ std::cout << " huli test :::: " << " =========================================================== = " << 1 << std::endl;
|
|
|
|
+ std::cout << " huli test :::: " << " m_dispatch_carrier_node.m_dispatch_control_status = " << m_dispatch_carrier_node.m_dispatch_control_status << std::endl;
|
|
|
|
+ if ( tp_main_carrier != NULL )
|
|
|
|
+ {
|
|
|
|
+ std::cout << " huli test :::: " << " tp_main_carrier->get_device_id() = " << tp_main_carrier->get_device_id() << std::endl;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ std::cout << " huli test :::: " << " tp_main_carrier->get_device_id() = " << -1 << std::endl;
|
|
|
|
+ }
|
|
|
|
+ if ( tp_avoid_catcher != NULL )
|
|
|
|
+ {
|
|
|
|
+ std::cout << " huli test :::: " << " tp_avoid_catcher->get_device_id() = " << tp_avoid_catcher->get_device_id() << std::endl;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ std::cout << " huli test :::: " << " tp_avoid_catcher->get_device_id() = " << -1 << std::endl;
|
|
|
|
+ }
|
|
|
|
+ std::cout << " huli test :::: " << " -------------------------- = " << 2 << std::endl;
|
|
|
|
+ std::cout << " huli test :::: " << " m_dispatch_catcher_node.m_dispatch_control_status = " << m_dispatch_catcher_node.m_dispatch_control_status << std::endl;
|
|
|
|
+ if ( tp_main_catcher != NULL )
|
|
|
|
+ {
|
|
|
|
+ std::cout << " huli test :::: " << " tp_main_catcher->get_device_id() = " << tp_main_catcher->get_device_id() << std::endl;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ std::cout << " huli test :::: " << " tp_main_catcher->get_device_id() = " << -1 << std::endl;
|
|
|
|
+ }
|
|
|
|
+ if ( tp_following_carrier != NULL )
|
|
|
|
+ {
|
|
|
|
+ std::cout << " huli test :::: " << " tp_following_carrier->get_device_id() = " << tp_following_carrier->get_device_id() << std::endl;
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ std::cout << " huli test :::: " << " tp_following_carrier->get_device_id() = " << -1 << std::endl;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ char ch;
|
|
|
|
+ std::cin >> ch ;
|
|
|
|
+
|
|
|
|
+
|
|
//结果汇总
|
|
//结果汇总
|
|
if ( m_dispatch_carrier_node.m_dispatch_control_status == DISPATCH_CARRIER_PICKUP_END &&
|
|
if ( m_dispatch_carrier_node.m_dispatch_control_status == DISPATCH_CARRIER_PICKUP_END &&
|
|
m_dispatch_catcher_node.m_dispatch_control_status == DISPATCH_CATCHER_PICKUP_END)
|
|
m_dispatch_catcher_node.m_dispatch_control_status == DISPATCH_CATCHER_PICKUP_END)
|