Skip to content
Snippets Groups Projects
Commit 52b05de7 authored by Johannes Mey's avatar Johannes Mey
Browse files

use better cell names, add simulated cell for MGs

parent 9e75b8a4
No related branches found
No related tags found
No related merge requests found
Showing
with 535 additions and 14 deletions
{
"objects": [
{
"id": "wheel_1",
"pos": {
"x": 0.28,
"y": 0.28,
"z": 0.06
},
"size": {
"length": 0.12,
"width": 0.12,
"height": 0.12
},
"orientation": {
"w": 1
},
"color": {
"r": 0.15,
"g": 0.15,
"b": 0.15
}
},
{
"id": "wheel_2",
"pos": {
"x": -0.28,
"y": -0.28,
"z": 0.06
},
"size": {
"length": 0.12,
"width": 0.12,
"height": 0.12
},
"orientation": {
"w": 1
},
"color": {
"r": 0.15,
"g": 0.15,
"b": 0.15
}
},
{
"id": "wheel_3",
"pos": {
"x": -0.28,
"y": 0.28,
"z": 0.06
},
"size": {
"length": 0.12,
"width": 0.12,
"height": 0.12
},
"orientation": {
"w": 1
},
"color": {
"r": 0.15,
"g": 0.15,
"b": 0.15
}
},
{
"id": "wheel_4",
"pos": {
"x": 0.28,
"y": -0.28,
"z": 0.06
},
"size": {
"length": 0.12,
"width": 0.12,
"height": 0.12
},
"orientation": {
"w": 1
},
"color": {
"r": 0.15,
"g": 0.15,
"b": 0.15
}
},
{
"id": "table_body_front",
"pos": {
"x": 0.345,
"z": 0.5
},
"size": {
"length": 0.005,
"width": 0.69,
"height": 0.76
},
"orientation": {
"w": 1
},
"color": {
"r": 0.15,
"g": 0.15,
"b": 0.15
}
},
{
"id": "table_body_back",
"pos": {
"x": -0.345,
"z": 0.45
},
"size": {
"length": 0.005,
"width": 0.69,
"height": 0.66
},
"orientation": {
"w": 1
},
"color": {
"r": 0.15,
"g": 0.15,
"b": 0.15
}
},
{
"id": "table_body_left",
"pos": {
"y": 0.345,
"z": 0.5
},
"size": {
"length": 0.69,
"width": 0.005,
"height": 0.76
},
"orientation": {
"w": 1
},
"color": {
"r": 0.15,
"g": 0.15,
"b": 0.15
}
},
{
"id": "table_body_right",
"pos": {
"y": -0.345,
"z": 0.5
},
"size": {
"length": 0.69,
"width": 0.005,
"height": 0.76
},
"orientation": {
"w": 1
},
"color": {
"r": 0.15,
"g": 0.15,
"b": 0.15
}
},
{
"id": "table-top",
"pos": {
"z": 0.885
},
"size": {
"length": 0.8,
"width": 0.8,
"height": 0.01
},
"orientation": {
"w": 1
},
"color": {
"r": 0.15,
"g": 0.15,
"b": 0.15
}
},
{
"id": "left_panel",
"pos": {
"z": 0.885,
"y": -0.6525
},
"size": {
"length": 0.7,
"width": 0.5,
"height": 0.01
},
"orientation": {
"w": 1
},
"color": {
"r": 0.15,
"g": 0.15,
"b": 0.15
}
},
{
"id": "right_panel",
"pos": {
"z": 0.885,
"y": 0.6525
},
"size": {
"length": 0.7,
"width": 0.5,
"height": 0.01
},
"orientation": {
"w": 1
},
"color": {
"r": 0.15,
"g": 0.15,
"b": 0.15
}
},
{
"id": "D",
"type": "BIN",
"pos": {
"x": -0.23,
"y": 0.67,
"z": 0.9425
},
"size": {
"length": 0.24,
"width": 0.17,
"height": 0.105
},
"orientation": {
"w": 1
},
"color": {
"r": 0.2,
"g": 0.2,
"b": 0.2
}
},
{
"id": "C",
"type": "BIN",
"pos": {
"x": -0.23,
"y": 0.49,
"z": 0.9425
},
"size": {
"length": 0.24,
"width": 0.17,
"height": 0.105
},
"orientation": {
"w": 1
},
"color": {
"r": 0.4,
"g": 0.4,
"b": 0.4
}
},
{
"id": "B",
"type": "BIN",
"pos": {
"x": -0.23,
"y": -0.49,
"z": 0.9425
},
"size": {
"length": 0.24,
"width": 0.17,
"height": 0.105
},
"orientation": {
"w": 1
},
"color": {
"r": 0.6,
"g": 0.6,
"b": 0.6
}
},
{
"id": "A",
"type": "BIN",
"pos": {
"x": -0.23,
"y": -0.67,
"z": 0.9425
},
"size": {
"length": 0.24,
"width": 0.17,
"height": 0.105
},
"orientation": {
"w": 1
},
"color": {
"r": 0.8,
"g": 0.8,
"b": 0.8
}
},
{
"id": "bigYellow",
"type": "BOX",
"pos": {
"x": 0.2,
"y": 0.05,
"z": 0.9403
},
"size": {
"length": 0.0318,
"width": 0.0636,
"height": 0.1006
},
"orientation": {
"w": 1
},
"color": {
"r": 1,
"g": 1
}
},
{
"id": "bigGreen",
"type": "BOX",
"pos": {
"x": 0.3,
"y": 0.3,
"z": 0.9355
},
"size": {
"length": 0.0318,
"width": 0.0636,
"height": 0.091
},
"orientation": {
"w": 1
},
"color": {
"g": 1
}
},
{
"id": "bigBlue",
"type": "BOX",
"pos": {
"x": 0.1,
"y": -0.25,
"z": 0.9355
},
"size": {
"length": 0.0318,
"width": 0.0636,
"height": 0.091
},
"orientation": {
"w": 1
},
"color": {
"b": 1
}
},
{
"id": "smallBlue",
"type": "BOX",
"pos": {
"x": 0.1,
"y": 0.2,
"z": 0.9307
},
"size": {
"length": 0.0318,
"width": 0.0318,
"height": 0.0814
},
"orientation": {
"w": 1
},
"color": {
"b": 1
}
},
{
"id": "smallYellow",
"type": "BOX",
"pos": {
"x": 0.3,
"y": -0.2,
"z": 0.9307
},
"size": {
"length": 0.0318,
"width": 0.0318,
"height": 0.0814
},
"orientation": {
"w": 1
},
"color": {
"r": 1,
"g": 1
}
},
{
"id": "smallRed",
"type": "BOX",
"pos": {
"x": 0.15,
"y": -0.15,
"z": 0.9307
},
"size": {
"length": 0.0318,
"width": 0.0318,
"height": 0.0814
},
"orientation": {
"w": 1
},
"color": {
"r": 1
}
},
{
"id": "arm",
"type": "ARM",
"pos": {
"z": 0.89,
"x": -0.22
},
"size": {},
"orientation": {
"w": 1
},
"color": {
"r": 1,
"g": 1,
"b": 1
}
}
]
}
# create json file using
# yq eval -o=json config_scene_ceti-table-1-full-grey.yaml > config_scene_ceti-table-1-full-grey.json
{ 'objects': [
# table
# height: 12 cm wheels, 76 cm body, 1 cm table-top = 89 cm total
# wheels width/depth/height 12*12*12
# body width/depth/height 69*69*76
# table-top width/depth/height 80*80*1
# panels are 50*70, with 0.5 cm distance to the table-top
# height of both is 12 + 76 + .5 = 88.5
# their centre is at 40 + 0.25 + 25 = 65.25
{ 'id': 'wheel_1','pos': { 'x': 0.28,'y': 0.28,'z': 0.06 },'size': { 'length': 0.12,'width': 0.12,'height': 0.12 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
{ 'id': 'wheel_2','pos': { 'x': -0.28,'y': -0.28,'z': 0.06 },'size': { 'length': 0.12,'width': 0.12,'height': 0.12 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
{ 'id': 'wheel_3','pos': { 'x': -0.28,'y': 0.28,'z': 0.06 },'size': { 'length': 0.12,'width': 0.12,'height': 0.12 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
{ 'id': 'wheel_4','pos': { 'x': 0.28,'y': -0.28,'z': 0.06 },'size': { 'length': 0.12,'width': 0.12,'height': 0.12 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
# a filled table and a backplate going all the way up is not possible, because of the oversized collision model of the robot
# { 'id': 'table_body','pos': { 'z': 0.50 },'size': { 'length': .69,'width': 0.69,'height': 0.76 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
{ 'id': 'table_body_front','pos': { 'x': .345, 'z': 0.50 },'size': { 'length': 0.005,'width': 0.69,'height': 0.76 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
{ 'id': 'table_body_back', 'pos': { 'x': -.345, 'z': 0.45 },'size': { 'length': 0.005,'width': 0.69,'height': 0.66 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
{ 'id': 'table_body_left', 'pos': { 'y': .345, 'z': 0.50 },'size': { 'length': 0.69,'width': 0.005,'height': 0.76 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
{ 'id': 'table_body_right','pos': { 'y': -.345, 'z': 0.50 },'size': { 'length': 0.69,'width': 0.005,'height': 0.76 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
{ 'id': 'table-top', 'pos': { 'z': 0.885 },'size': { 'length': 0.8,'width': 0.8,'height': 0.01 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
{ 'id': 'left_panel', 'pos': { 'z': 0.885, 'y': -0.6525 },'size': { 'length': 0.7,'width': 0.5,'height': 0.01 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
{ 'id': 'right_panel', 'pos': { 'z': 0.885, 'y': 0.6525 },'size': { 'length': 0.7,'width': 0.5,'height': 0.01 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
# { 'id': 'front_panel', 'pos': { 'z': 0.885, 'x': 0.6525 },'size': { 'length': 0.5,'width': 0.7,'height': 0.01 },'orientation': { 'w': 1 },'color': { 'r': 0.15,'g': 0.15,'b': 0.15 } },
# bins width/depth/height 28.5*19*15.5
# their height is 89 + 7.75 = 0.9675 m
# the width is 31.8 or 63.6
# if they stand on a panel edge, they stand at 40 + 0.5 + 14.25 = 54.75
# their x location is N*19 + 9.5 - 35 = N*20 - 25.5 = -25.5 and -5.5 and 14.5 if they have 1 cm distance
{ 'id': 'D','type': 'BIN','pos': { 'x': -0.23,'y': 0.67,'z': 0.9425 },'size': { 'length': 0.24,'width': 0.17,'height': 0.105 },'orientation': { 'w': 1 },'color': { 'r': 0.2, 'g': 0.2, 'b': 0.2 } },
{ 'id': 'C','type': 'BIN','pos': { 'x': -0.23,'y': 0.49,'z': 0.9425 },'size': { 'length': 0.24,'width': 0.17,'height': 0.105 },'orientation': { 'w': 1 },'color': { 'r': 0.4, 'g': 0.4, 'b': 0.4 } },
{ 'id': 'B','type': 'BIN','pos': { 'x': -0.23,'y': -0.49,'z': 0.9425 },'size': { 'length': 0.24,'width': 0.17,'height': 0.105 },'orientation': { 'w': 1 },'color': { 'r': 0.6, 'g': 0.6, 'b': 0.6 } },
{ 'id': 'A','type': 'BIN','pos': { 'x': -0.23,'y': -0.67,'z': 0.9425 },'size': { 'length': 0.24,'width': 0.17,'height': 0.105 },'orientation': { 'w': 1 },'color': { 'r': 0.8, 'g': 0.8, 'b': 0.8 } },
{ 'id': 'bigYellow','type': 'BOX','pos': { 'x': 0.20,'y': 0.05,'z': 0.940300 },'size': { 'length': .0318, 'width': .0636,'height': 0.100600 },'orientation': { 'w': 1 },'color': { 'r': 1, 'g': 1 } },
{ 'id': 'bigGreen','type': 'BOX','pos': { 'x': 0.30,'y': 0.30,'z': 0.935500 },'size': { 'length': .0318, 'width': .0636,'height': 0.091000 },'orientation': { 'w': 1 },'color': { 'g': 1 } },
{ 'id': 'bigBlue','type': 'BOX','pos': { 'x': 0.10,'y': -0.25,'z': 0.935500 },'size': { 'length': .0318, 'width': .0636,'height': 0.091000 },'orientation': { 'w': 1 },'color': { 'b': 1 } },
{ 'id': 'smallBlue','type': 'BOX','pos': { 'x': 0.10,'y': 0.20,'z': 0.930700 },'size': { 'length': .0318, 'width': .0318,'height': 0.081400 },'orientation': { 'w': 1 },'color': { 'b': 1 } },
{ 'id': 'smallYellow','type': 'BOX','pos': { 'x': 0.30,'y': -0.20,'z': 0.930700 },'size': { 'length': .0318, 'width': .0318,'height': 0.081400 },'orientation': { 'w': 1 },'color': { 'r': 1, 'g': 1 } },
{ 'id': 'smallRed','type': 'BOX','pos': { 'x': 0.15,'y': -0.15,'z': 0.930700 },'size': { 'length': .0318, 'width': .0318,'height': 0.081400 },'orientation': { 'w': 1 },'color': { 'r': 1 } },
{ 'id': 'arm','type': 'ARM','pos': { 'z': 0.89 , 'x': -0.22 },'size': { },'orientation': { 'w': 1 },'color': { 'r': 1.00,'g': 1.00,'b': 1.00 } }
] }
......@@ -6,9 +6,9 @@
<include file="$(find ccf)/launch/noop-sim_setup.launch"/>
<param name="/connector_node_ros_ccf/topics/command" value="/ceti_cell_empty/command"/>
<param name="/connector_node_ros_ccf/topics/command" value="/ceti_cell_1/command"/>
<node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell_empty" output="screen">
<node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell_1" output="screen">
<param name="arm" type="string" value="arm"/>
<param name="scene_observer" type="string" value="object_locator/scene/update"/>
<param name="mqtt_server" type="yaml" value="$(arg mqtt_server)"/>
......
......@@ -6,9 +6,9 @@
<include file="$(find ccf)/launch/noop-sim_setup.launch"/>
<param name="/connector_node_ros_ccf/topics/command" value="/ceti_cell_empty/command"/>
<param name="/connector_node_ros_ccf/topics/command" value="/ceti_cell_1/command"/>
<node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell_empty" output="screen">
<node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell_1" output="screen">
<param name="arm" type="string" value="arm"/>
<param name="scene_observer" type="string" value="object_locator/scene/update"/>
<param name="mqtt_server" type="yaml" value="$(arg mqtt_server)"/>
......
<launch>
<!-- MQTT server for communication with client cells -->
<arg name="mqtt_server" default="tcp://localhost:1883"
doc="address of the mqtt server for the connection to the controller"/>
<include file="$(find ccf)/launch/noop-sim_setup.launch"/>
<param name="/connector_node_ros_ccf/topics/command" value="/ceti_cell_1/command"/>
<node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell_1" output="screen">
<param name="arm" type="string" value="arm"/>
<param name="scene_observer" type="string" value="object_locator/scene/update"/>
<param name="mqtt_server" type="yaml" value="$(arg mqtt_server)"/>
<param name="scene" type="string"
value="$(find ccf_immersive_sorting)/config/config_scene_ceti-table-1-full-grey.json"/>
</node>
</launch>
......@@ -12,9 +12,9 @@
<arg name="load_gripper" value="true"/>
</include>
<param name="/connector_node_ros_ccf/topics/command" value="/ceti_cell_empty/command"/>
<param name="/connector_node_ros_ccf/topics/command" value="/ceti_cell_1/command"/>
<node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell_empty" output="screen">
<node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell_1" output="screen">
<param name="arm" type="string" value="arm"/>
<param name="scene_observer" type="string" value="object_locator/scene/update"/>
<param name="mqtt_server" type="yaml" value="$(arg mqtt_server)"/>
......
......@@ -12,9 +12,9 @@
<arg name="load_gripper" value="true"/>
</include>
<param name="/connector_node_ros_ccf/topics/command" value="/ceti_cell_empty/command"/>
<param name="/connector_node_ros_ccf/topics/command" value="/ceti_cell_1/command"/>
<node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell_empty" output="screen">
<node pkg="ccf_immersive_sorting" type="moveit_sorting_controller" name="ceti_cell_1" output="screen">
<param name="arm" type="string" value="arm"/>
<param name="scene_observer" type="string" value="object_locator/scene/update"/>
<param name="mqtt_server" type="yaml" value="$(arg mqtt_server)"/>
......
......@@ -2,7 +2,7 @@
<arg name="connection_address" default="tcp://*:6576" doc="connection address for NNG scene-based selection"/>
<arg name="mqtt_server" default="tcp://127.0.0.1:1883" doc="MQTT server for communication with client cells"/>
<arg name="client_controllers" default="['ceti_cell_1', 'ceti_cell_2', 'ads-cell', 'st-cell', 'ceti_cell_empty']"
<arg name="client_controllers" default="['ceti_cell_1', 'ceti_cell_2', 'ads-cell', 'st-cell']"
doc="potential client cell names"/>
<node pkg="ccf_immersive_sorting" type="main_controller" name="main_controller" output="screen">
......
......@@ -2,7 +2,7 @@
<arg name="connection_address" default="tcp://*:6576" doc="connection address for NNG scene-based selection"/>
<arg name="mqtt_server" default="tcp://127.0.0.1:1883" doc="MQTT server for communication with client cells"/>
<arg name="client_controllers" default="['ceti_cell_1', 'ceti_cell_2', 'ads-cell', 'st-cell', 'ceti_cell_empty']"
<arg name="client_controllers" default="['ceti_cell_1', 'ceti_cell_2', 'ads-cell', 'st-cell']"
doc="potential client cell names"/>
<node pkg="ccf_immersive_sorting" type="main_controller" name="main_controller" output="screen">
......
......@@ -2,7 +2,7 @@
<arg name="connection_address" default="tcp://*:6576" doc="connection address for NNG scene-based selection"/>
<arg name="mqtt_server" default="tcp://127.0.0.1:1883" doc="MQTT server for communication with client cells"/>
<arg name="client_controllers" default="['ceti_cell_1', 'ceti_cell_2', 'ads-cell', 'st-cell', 'ceti_cell_empty']"
<arg name="client_controllers" default="['ceti_cell_1', 'ceti_cell_2', 'ads-cell', 'st-cell']"
doc="potential client cell names"/>
<node pkg="ccf_immersive_sorting" type="main_controller" name="main_controller" output="screen">
......
......@@ -58,7 +58,7 @@ int main(int argc, char** argv)
controller.addConnection(std::move(connection));
auto client_controllers = getPrivateParameter<std::vector<std::string>>(
"client_controllers", { "ceti_cell_1", "ceti_cell_2", "ads-cell", "st-cell", "ceti_cell_empty" });
"client_controllers", { "ceti_cell_1", "ceti_cell_2", "ads-cell", "st-cell" });
auto mqtt_server = getPrivateParameter<std::string>("mqtt_server", "tcp://127.0.0.1:1883");
// create an empty task
......
......@@ -18,7 +18,7 @@
#include "ccf/connection/MqttConnection.h"
#include "ccf/util/NodeUtil.h"
std::string NODE_NAME = "ceti_cell_empty";
std::string NODE_NAME = "ceti_cell_1";
using CetiRosToolbox::getParameter;
using CetiRosToolbox::getPrivateParameter;
......
......@@ -68,7 +68,8 @@ int main(int argc, char** argv)
std::make_unique<MqttConnection>(mqttServer, ros::this_node::getName());
mqtt_connection->listen(getParameter<std::string>(n, "topics/selection", "selection"));
auto other_cell_scene_listener_topic =
getPrivateParameter<std::string>("other_cell_listener", "/ceti_cell_empty/scene/update");
getPrivateParameter<std::string>("other_cell_listener", "/ceti_cell_1"
"/scene/update");
auto other_cell_delta_update_topic =
getPrivateParameter<std::string>("other_cell_delta_updates", "object_locator/scene/update");
mqtt_connection->listen(other_cell_scene_listener_topic);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment