Commit 65dbb56e authored by Jan Koniarik's avatar Jan Koniarik
Browse files

conditional nodes and updates to launch file parameters

parent 4ef5cd18
......@@ -125,7 +125,7 @@ default_leg: &DEFAULT_LEG
mirror: [0,0,0]
chain_root: coxa
channel_offset: 0
segments: # min( torque_needed / max_torque , 1 ) * ( stall_current - running_current ) + stall_current
segments:
coxa:
pos: [0,0,0]
rot: [0,0,0]
......
......@@ -74,6 +74,18 @@ def generate_robot_description():
return launch
def master_conditional_node(*args, **kwargs):
kwargs['if'] = "$(eval env('ROBOT_ADDRESS') == 'localhost')"
etree.SubElement(
*args,
**kwargs
)
kwargs['if'] = "$(eval env('ROBOT_ADDRESS') != 'localhost')"
etree.SubElement(
*args,
machine='master',
**kwargs
)
def generate_pwm_joints_node(xml_root, name, segments_map):
......@@ -84,7 +96,6 @@ def generate_pwm_joints_node(xml_root, name, segments_map):
type="pwm_joints",
name=name,
respawn="true",
machine="robot"
)
controllers = {
......@@ -151,7 +162,6 @@ def generate_pwm_joints_node(xml_root, name, segments_map):
output="screen",
ns=name,
args=" ".join(controllers.keys()),
machine="robot"
)
......@@ -163,7 +173,6 @@ def generate_state_publishers(element, joint_source_list):
name="robot_state_publisher",
pkg="robot_state_publisher",
type="robot_state_publisher",
machine="robot"
)
js_pub = etree.SubElement(
element,
......@@ -171,7 +180,6 @@ def generate_state_publishers(element, joint_source_list):
name="joint_state_publisher",
pkg="joint_state_publisher",
type="joint_state_publisher",
machine="robot"
)
js_params = etree.SubElement(js_pub, "rosparam")
......@@ -185,9 +193,10 @@ def generate_state_publishers(element, joint_source_list):
def generate_machines(element):
etree.SubElement(
element, "machine", name="master", address="$(env MASTER_ADDRESS)"
master = etree.SubElement(
element, "machine", name="master", address="$(env MASTER_ADDRESS)",
)
master.set('if', "$(eval env('ROBOT_ADDRESS') != 'localhost')")
robot = etree.SubElement(
element,
......@@ -195,8 +204,9 @@ def generate_machines(element):
name="robot",
address="$(env ROBOT_ADDRESS)",
default="true",
user="$(env ROBOT_USER)"
user="$(env ROBOT_USER)",
)
robot.set('if',"$(eval env('ROBOT_ADDRESS') != 'localhost')")
robot.set("env-loader", "~/setup.bash")
......@@ -208,8 +218,7 @@ def generate_control_layer(cfg):
generate_state_publishers(
launch,
["/control/leg/" + x + "/joint_states"
for x in cfg['legs'].keys()] + ["/control/gimbal/joint_states"]
["/control/joint_states"]
)
segments_map = list()
......@@ -258,22 +267,12 @@ def generate_user_layer(cfg):
launch = etree.Element('launch')
etree.SubElement(
master_conditional_node(
launch,
"node",
name="$(anon rviz)",
pkg="rviz",
type="rviz",
machine="master"
)
etree.SubElement(
launch,
"node",
name="$(anon rqt)",
pkg="rqt",
type="rqt",
machine="master"
type="rviz"
)
return launch
......@@ -292,6 +291,12 @@ def generate_main(cfg):
return launch
def generate_debug_joints(cfg):
launch = etree.Element('launch')
etree.SubElement( launch, "node", name="joint_marker", pkg="schpin_user", type="joint_markers.py")
return launch
def generate_launch_files(cfg):
""" generates all required launch files """
......@@ -301,6 +306,7 @@ def generate_launch_files(cfg):
"control_layer.launch": generate_control_layer(cfg),
"user_layer.launch": generate_user_layer(cfg),
"general.launch": generate_general(cfg),
"debug/joints.launch": generate_debug_joints(cfg),
"main.launch": generate_main(cfg),
}
......
......@@ -9,7 +9,7 @@ def render(filename, scad_cfg, mirror):
scad = "../scad/tmp.scad"
with open(scad, "w") as fd:
fd.write("include <model.scad>;\n $fn=128;")
fd.write("include <model.scad>;\n $fn=32;")
if mirror is not None:
fd.write("mirror({})".format([int(x) for x in mirror]))
args = ",".join([str(convert_scad(x)) for x in scad_cfg['args']])
......@@ -62,5 +62,5 @@ def render_stl(cfg):
)
render_chain(
cfg['gimbal']['segments'], cfg['gimbal']['chain_root'], folder="cam/", mirror=None
cfg['gimbal']['segments'], cfg['gimbal']['chain_root'], folder="gimbal/", mirror=None
)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment