Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Jan Koniarik
schpin-robot
Commits
65dbb56e
Commit
65dbb56e
authored
Nov 29, 2017
by
Jan Koniarik
Browse files
conditional nodes and updates to launch file parameters
parent
4ef5cd18
Changes
3
Hide whitespace changes
Inline
Side-by-side
schpin_tote/src/config.yaml
View file @
65dbb56e
...
...
@@ -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
]
...
...
schpin_tote/src/lib/launch.py
View file @
65dbb56e
...
...
@@ -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
),
}
...
...
schpin_tote/src/lib/stl.py
View file @
65dbb56e
...
...
@@ -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
)
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment