Skip to content

Commit 875f75e

Browse files
author
Ivan Shalnov
committed
Added model parameter to the install script, inspired by TURTLEBOT3_MODEL env variable
1 parent 7b58310 commit 875f75e

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

src/robot_upstart/install_script.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ def get_argument_parser():
7171
p.add_argument("--systemd-after", type=str, metavar="After=",
7272
help="Set the string of the After= section"
7373
"of the generated Systemd service file")
74+
p.add_argument("--model", type=str, metavar="MODEL",
75+
help="Specify the model of your robot if not specified under ROBOT_MODEL")
7476

7577
return p
7678

@@ -88,8 +90,7 @@ def main():
8890
j = robot_upstart.Job(
8991
name=job_name, interface=args.interface, user=args.user,
9092
workspace_setup=args.setup, rosdistro=args.rosdistro,
91-
master_uri=args.master, log_path=args.logdir,
92-
systemd_after=args.systemd_after)
93+
master_uri=args.master, log_path=args.logdir, model=args.model, systemd_after=args.systemd_after)
9394

9495
for this_pkgpath in args.pkgpath:
9596
pkg, pkgpath = this_pkgpath.split('/', 1)

src/robot_upstart/job.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ class Job(object):
4040
""" Represents a ROS configuration to launch on machine startup. """
4141

4242
def __init__(self, name="ros", interface=None, user=None, workspace_setup=None,
43-
rosdistro=None, master_uri=None, log_path=None,
44-
systemd_after=None):
43+
rosdistro=None, master_uri=None, log_path=None, model=None, systemd_after=None):
4544
"""Construct a new Job definition.
4645
4746
:param name: Name of job to create. Defaults to "ros", but you might
@@ -68,6 +67,8 @@ def __init__(self, name="ros", interface=None, user=None, workspace_setup=None,
6867
default of using /tmp, it is the user's responsibility to manage log
6968
rotation.
7069
:type log_path: str
70+
:param model: Your robot model if not specified under ROBOT_MODEL.
71+
:type model: str
7172
"""
7273

7374
self.name = name
@@ -110,6 +111,16 @@ def __init__(self, name="ros", interface=None, user=None, workspace_setup=None,
110111
# startup job itself. List of strs.
111112
self.files = []
112113

114+
# Sets the model environment variable if provided, else results in
115+
# ROBOT_MODEL=ROBOT
116+
if model:
117+
self.model = name.upper() + '_MODEL=' + model
118+
else:
119+
try:
120+
self.model = name.upper() + '_MODEL=' + os.environ[name.upper() + '_MODEL']
121+
except KeyError:
122+
self.model = name.upper() + '_MODEL=ROBOT'
123+
113124
def add(self, package=None, filename=None, glob=None):
114125
""" Add launch or other configuration files to Job.
115126

templates/job-start.em

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ export ROS_MASTER_URI=@(master_uri)
6767
@[else]@
6868
export ROS_MASTER_URI=http://127.0.0.1:11311
6969
@[end if]@
70+
@[if model]@
71+
export @(model)
72+
@[end if]@
7073
export ROS_HOME=${ROS_HOME:=$(echo ~@(user))/.ros}
7174
export ROS_LOG_DIR=$log_path
7275

0 commit comments

Comments
 (0)