{"action":"created","comment":{"url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/comments/234550904","pull_request_review_id":176178616,"id":234550904,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNDU1MDkwNA==","diff_hunk":"@@ -0,0 +1,38 @@\n+/*\n+ * Copyright (c) 2018 Pilz GmbH & Co. KG\n+ *\n+ * This program is free software: you can redistribute it and/or modify\n+ * it under the terms of the GNU Lesser General Public License as published by\n+ * the Free Software Foundation, either version 3 of the License, or\n+ * (at your option) any later version.\n+\n+ * This program is distributed in the hope that it will be useful,\n+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+ * GNU Lesser General Public License for more details.\n+\n+ * You should have received a copy of the GNU Lesser General Public License\n+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.\n+ */\n+\n+#ifndef ROBOT_TRAJECTORY_HELPER_H\n+#define ROBOT_TRAJECTORY_HELPER_H\n+\n+#include <moveit/robot_trajectory/robot_trajectory.h>\n+\n+namespace pilz_trajectory_generation\n+{\n+\n+class RobotTrajectoryHelper","path":"pilz_trajectory_generation/include/pilz_trajectory_generation/robot_trajectory_helper.h","position":26,"original_position":26,"commit_id":"48559e797d8d6e9409ff6c475e871e85545d6d13","original_commit_id":"e81668732623edd040b9ea85ffcaa6ce05172152","user":{"login":"hslusarek","id":40654276,"node_id":"MDQ6VXNlcjQwNjU0Mjc2","avatar_url":"https://avatars0.githubusercontent.com/u/40654276?v=4","gravatar_id":"","url":"https://api.github.com/users/hslusarek","html_url":"https://github.com/hslusarek","followers_url":"https://api.github.com/users/hslusarek/followers","following_url":"https://api.github.com/users/hslusarek/following{/other_user}","gists_url":"https://api.github.com/users/hslusarek/gists{/gist_id}","starred_url":"https://api.github.com/users/hslusarek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hslusarek/subscriptions","organizations_url":"https://api.github.com/users/hslusarek/orgs","repos_url":"https://api.github.com/users/hslusarek/repos","events_url":"https://api.github.com/users/hslusarek/events{/privacy}","received_events_url":"https://api.github.com/users/hslusarek/received_events","type":"User","site_admin":false},"body":"Instead of introducing another helper class, I suggest working towards an upcoming refactoring. Like I see it, we have three different types of software components in the pilz_trajectory_generation package:\r\n* Firstly, we have the \"pure\" trajectory generators which take a `MotionPlanRequest` and generate a \"simple\" linear, cirucular or ptp trajectory.\r\n* Secondly, we have software components which I suggest calling `TrajectoryMerger`. The `TrajectoryBlender` class and your newly created `RobotTrajectoryHelper` belong to this type of software component. Simply put: They take two trajectories and merge them together (one way or another).\r\n* Thirdly, we have the software components which basically use the trajectory generators and trajectory mergers to actually do something. An example for these software components is the `CommandListManager`.\r\nBased on these considerations, I suggest to introduce a base class called `TrajectoryMerger` and derive a specific TrajectoryMerger which basically contains the functionality which you put into your `RobotTrajectoryHelper` class.","created_at":"2018-11-19T09:46:28Z","updated_at":"2018-11-19T09:47:29Z","html_url":"https://github.com/PilzDE/pilz_industrial_motion/pull/20#discussion_r234550904","pull_request_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/20","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/comments/234550904"},"html":{"href":"https://github.com/PilzDE/pilz_industrial_motion/pull/20#discussion_r234550904"},"pull_request":{"href":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/20"}}},"pull_request":{"url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/20","id":231877291,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMxODc3Mjkx","html_url":"https://github.com/PilzDE/pilz_industrial_motion/pull/20","diff_url":"https://github.com/PilzDE/pilz_industrial_motion/pull/20.diff","patch_url":"https://github.com/PilzDE/pilz_industrial_motion/pull/20.patch","issue_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/issues/20","number":20,"state":"open","locked":false,"title":"Fix/zero radius","user":{"login":"martiniil","id":35950815,"node_id":"MDQ6VXNlcjM1OTUwODE1","avatar_url":"https://avatars1.githubusercontent.com/u/35950815?v=4","gravatar_id":"","url":"https://api.github.com/users/martiniil","html_url":"https://github.com/martiniil","followers_url":"https://api.github.com/users/martiniil/followers","following_url":"https://api.github.com/users/martiniil/following{/other_user}","gists_url":"https://api.github.com/users/martiniil/gists{/gist_id}","starred_url":"https://api.github.com/users/martiniil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/martiniil/subscriptions","organizations_url":"https://api.github.com/users/martiniil/orgs","repos_url":"https://api.github.com/users/martiniil/repos","events_url":"https://api.github.com/users/martiniil/events{/privacy}","received_events_url":"https://api.github.com/users/martiniil/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-11-19T07:32:43Z","updated_at":"2018-11-19T09:47:29Z","closed_at":null,"merged_at":null,"merge_commit_sha":"cdd62c2428b67a42489d90c3fd7a1fbd6eb20865","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/20/commits","review_comments_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/20/comments","review_comment_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/issues/20/comments","statuses_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/statuses/48559e797d8d6e9409ff6c475e871e85545d6d13","head":{"label":"PilzDE:fix/zero_radius","ref":"fix/zero_radius","sha":"48559e797d8d6e9409ff6c475e871e85545d6d13","user":{"login":"PilzDE","id":29790749,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI5NzkwNzQ5","avatar_url":"https://avatars1.githubusercontent.com/u/29790749?v=4","gravatar_id":"","url":"https://api.github.com/users/PilzDE","html_url":"https://github.com/PilzDE","followers_url":"https://api.github.com/users/PilzDE/followers","following_url":"https://api.github.com/users/PilzDE/following{/other_user}","gists_url":"https://api.github.com/users/PilzDE/gists{/gist_id}","starred_url":"https://api.github.com/users/PilzDE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PilzDE/subscriptions","organizations_url":"https://api.github.com/users/PilzDE/orgs","repos_url":"https://api.github.com/users/PilzDE/repos","events_url":"https://api.github.com/users/PilzDE/events{/privacy}","received_events_url":"https://api.github.com/users/PilzDE/received_events","type":"Organization","site_admin":false},"repo":{"id":147808261,"node_id":"MDEwOlJlcG9zaXRvcnkxNDc4MDgyNjE=","name":"pilz_industrial_motion","full_name":"PilzDE/pilz_industrial_motion","private":false,"owner":{"login":"PilzDE","id":29790749,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI5NzkwNzQ5","avatar_url":"https://avatars1.githubusercontent.com/u/29790749?v=4","gravatar_id":"","url":"https://api.github.com/users/PilzDE","html_url":"https://github.com/PilzDE","followers_url":"https://api.github.com/users/PilzDE/followers","following_url":"https://api.github.com/users/PilzDE/following{/other_user}","gists_url":"https://api.github.com/users/PilzDE/gists{/gist_id}","starred_url":"https://api.github.com/users/PilzDE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PilzDE/subscriptions","organizations_url":"https://api.github.com/users/PilzDE/orgs","repos_url":"https://api.github.com/users/PilzDE/repos","events_url":"https://api.github.com/users/PilzDE/events{/privacy}","received_events_url":"https://api.github.com/users/PilzDE/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PilzDE/pilz_industrial_motion","description":null,"fork":false,"url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion","forks_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/forks","keys_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/teams","hooks_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/hooks","issue_events_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/issues/events{/number}","events_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/events","assignees_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/assignees{/user}","branches_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/branches{/branch}","tags_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/tags","blobs_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/git/refs{/sha}","trees_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/statuses/{sha}","languages_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/languages","stargazers_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/stargazers","contributors_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/contributors","subscribers_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/subscribers","subscription_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/subscription","commits_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/commits{/sha}","git_commits_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/git/commits{/sha}","comments_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/comments{/number}","issue_comment_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/issues/comments{/number}","contents_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/contents/{+path}","compare_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/merges","archive_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/downloads","issues_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/issues{/number}","pulls_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls{/number}","milestones_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/milestones{/number}","notifications_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/labels{/name}","releases_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/releases{/id}","deployments_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/deployments","created_at":"2018-09-07T10:22:30Z","updated_at":"2018-11-16T08:46:40Z","pushed_at":"2018-11-19T09:42:55Z","git_url":"git://github.com/PilzDE/pilz_industrial_motion.git","ssh_url":"git@github.com:PilzDE/pilz_industrial_motion.git","clone_url":"https://github.com/PilzDE/pilz_industrial_motion.git","svn_url":"https://github.com/PilzDE/pilz_industrial_motion","homepage":null,"size":2624,"stargazers_count":5,"watchers_count":5,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":3,"license":null,"forks":4,"open_issues":3,"watchers":5,"default_branch":"kinetic-devel"}},"base":{"label":"PilzDE:kinetic-devel","ref":"kinetic-devel","sha":"cc815b8ad2b25b02b76e5a1df5d4a3e0dc9a1771","user":{"login":"PilzDE","id":29790749,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI5NzkwNzQ5","avatar_url":"https://avatars1.githubusercontent.com/u/29790749?v=4","gravatar_id":"","url":"https://api.github.com/users/PilzDE","html_url":"https://github.com/PilzDE","followers_url":"https://api.github.com/users/PilzDE/followers","following_url":"https://api.github.com/users/PilzDE/following{/other_user}","gists_url":"https://api.github.com/users/PilzDE/gists{/gist_id}","starred_url":"https://api.github.com/users/PilzDE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PilzDE/subscriptions","organizations_url":"https://api.github.com/users/PilzDE/orgs","repos_url":"https://api.github.com/users/PilzDE/repos","events_url":"https://api.github.com/users/PilzDE/events{/privacy}","received_events_url":"https://api.github.com/users/PilzDE/received_events","type":"Organization","site_admin":false},"repo":{"id":147808261,"node_id":"MDEwOlJlcG9zaXRvcnkxNDc4MDgyNjE=","name":"pilz_industrial_motion","full_name":"PilzDE/pilz_industrial_motion","private":false,"owner":{"login":"PilzDE","id":29790749,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI5NzkwNzQ5","avatar_url":"https://avatars1.githubusercontent.com/u/29790749?v=4","gravatar_id":"","url":"https://api.github.com/users/PilzDE","html_url":"https://github.com/PilzDE","followers_url":"https://api.github.com/users/PilzDE/followers","following_url":"https://api.github.com/users/PilzDE/following{/other_user}","gists_url":"https://api.github.com/users/PilzDE/gists{/gist_id}","starred_url":"https://api.github.com/users/PilzDE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PilzDE/subscriptions","organizations_url":"https://api.github.com/users/PilzDE/orgs","repos_url":"https://api.github.com/users/PilzDE/repos","events_url":"https://api.github.com/users/PilzDE/events{/privacy}","received_events_url":"https://api.github.com/users/PilzDE/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PilzDE/pilz_industrial_motion","description":null,"fork":false,"url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion","forks_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/forks","keys_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/teams","hooks_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/hooks","issue_events_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/issues/events{/number}","events_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/events","assignees_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/assignees{/user}","branches_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/branches{/branch}","tags_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/tags","blobs_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/git/refs{/sha}","trees_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/statuses/{sha}","languages_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/languages","stargazers_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/stargazers","contributors_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/contributors","subscribers_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/subscribers","subscription_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/subscription","commits_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/commits{/sha}","git_commits_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/git/commits{/sha}","comments_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/comments{/number}","issue_comment_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/issues/comments{/number}","contents_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/contents/{+path}","compare_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/merges","archive_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/downloads","issues_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/issues{/number}","pulls_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls{/number}","milestones_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/milestones{/number}","notifications_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/labels{/name}","releases_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/releases{/id}","deployments_url":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/deployments","created_at":"2018-09-07T10:22:30Z","updated_at":"2018-11-16T08:46:40Z","pushed_at":"2018-11-19T09:42:55Z","git_url":"git://github.com/PilzDE/pilz_industrial_motion.git","ssh_url":"git@github.com:PilzDE/pilz_industrial_motion.git","clone_url":"https://github.com/PilzDE/pilz_industrial_motion.git","svn_url":"https://github.com/PilzDE/pilz_industrial_motion","homepage":null,"size":2624,"stargazers_count":5,"watchers_count":5,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":3,"license":null,"forks":4,"open_issues":3,"watchers":5,"default_branch":"kinetic-devel"}},"_links":{"self":{"href":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/20"},"html":{"href":"https://github.com/PilzDE/pilz_industrial_motion/pull/20"},"issue":{"href":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/issues/20"},"comments":{"href":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/issues/20/comments"},"review_comments":{"href":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/20/comments"},"review_comment":{"href":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/pulls/20/commits"},"statuses":{"href":"https://api.github.com/repos/PilzDE/pilz_industrial_motion/statuses/48559e797d8d6e9409ff6c475e871e85545d6d13"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"hslusarek"}}